Мои самые простые контроллеры ASP.NET MVC 2 выполняют вызовы моего уровня обслуживания и сопоставляют модели представлений с сущностями, использующими AutoMapper.Все выглядит фантастически, и нет повторяющегося кода.
Однако, когда я попадаю в сценарии, где у меня подобное поведение, у меня возникают проблемы с балансировкой принципа единой ответственности (SRP)с Не повторяйся (СУХОЙ).Примером этого может быть необходимость добавления / редактирования транспортных средств, в которых некоторые свойства / поведение являются общими, в то время как другие являются уникальными для конкретного транспортного средства.
Если я стремлюсь к действительно тонким контроллерам (таким образом соблюдая принцип единой ответственности),Я заканчиваю тем, что повторяю код и в представлениях, и в контроллерах с небольшими изменениями (заголовок, метки полей, видимость полей, значения раскрывающегося списка, критерии выбора и т.связывание слишком большого количества логики в одном контроллере / представлении, и оно становится раздутым.
Каковы некоторые способы адресации повторяющегося кода в контроллерах / представлениях?Я не говорю о коде базы данных, который может быть передан в хранилище.Я не говорю о бизнес-логике, которая может быть учтена на уровне обслуживания.Я ищу инструменты и / или практические правила, которые помогут мне найти лучшее решение в сценарии, описанном выше.