Организация решений ASP.NET MVC - PullRequest
0 голосов
/ 26 января 2012

Я работаю над большим приложением ASP.NET MVC 3 уже несколько месяцев. Только в конце проекта я понял, что мои контроллеры ОГРОМНЫ! Часть проблемы с этими огромными контроллерами заключалась в том, что я не мог их тестировать.

С тех пор я разделил обязанности контролеров на четыре задачи (на мой взгляд):

  • навигация
  • преобразование идентификаторов в объекты данных
  • модели здания для отображения
  • универсальная бизнес-логика

Поскольку некоторая бизнес-логика является общей для клиентского и серверного кода, нет смысла смешивать ее с логикой построителя модели представления. Итак, я сразу вижу необходимость как минимум в двух проектах: построителя моделей представлений и бизнес-логики общего назначения.

Я понял, что навигация должна быть ответственностью контроллера, так что логика остается в проекте MVC.

Я немного обеспокоен тем, какой проект должен отвечать за преобразование идентификаторов в объекты данных. Первоначально я возложил на это ответственность класса строителей бизнес-классов / моделей представлений. Однако я думаю, что я хотел бы, чтобы эти классы работали в основном с полностью построенными объектами. Итак, я не уверен, где в коде это преобразование должно иметь место. Кажется, не имеет значения, где я делаю преобразование, код дублируется. Я думал о создании адаптеров в соответствующих проектах, которые выполняют эти преобразования, а затем вызывают фактический класс построителя моделей бизнес-класса / представления.

  • Кто-нибудь работал в проекте ASP.NET MVC, который вышел за рамки одного проекта?
  • Как изменится логика, чтобы уменьшить размер контроллеров и обеспечить возможность проверки кода?

1 Ответ

1 голос
/ 26 января 2012
  • Кто-нибудь работал в проекте ASP.NET MVC, который вышел за рамки одного проекта?

Да.

  • Как изменится логика, чтобы уменьшить размер контроллеров и обеспечить возможность проверки кода?

Путем размещения контроллеров на диете .

...