ASP.Net MVC Architecture - расположение моделей представления - PullRequest
3 голосов
/ 19 ноября 2009

В данный момент у нас хорошо работает MVC-проект приличного размера, я начал смотреть на ре-факторинг и у меня возник вопрос.

В настоящее время уровень данных и уровень обслуживания хранятся в отдельной библиотеке классов. Контроллеры загружают объекты данных (сгенерированные из linq2sql) из сервисного уровня, который выполняет любую логическую проверку, а затем преобразует их в модели представления (используя Auto-Mapper).

Вместо этого должны ли ViewModels быть возвращены непосредственно из сервиса?

Ответы [ 2 ]

4 голосов
/ 19 ноября 2009

Определенно нет!

Целью ViewModel является посредничество между представлением и «реальными» объектами данных - оно полностью зависит от вида. Поэтому слои, отличные от вашего графического интерфейса, даже не должны знать, что такая модель существует, если вы хотите сохранить четкое разделение проблем ...

2 голосов
/ 19 ноября 2009

Я бы сказал нет. Суть службы заключается в том, что она может использоваться многими различными проектами, имеющими отношение к вашему бизнес-уровню. Я ожидаю, что это будет с точки зрения ваших бизнес-объектов. Модели представлений специфичны для приложения MVC, и поэтому я ожидаю, что они будут отделены от уровня обслуживания. Обратите внимание, что они часто охватывают как бизнес-данные, так и «служебные» данные для приложения, и могут инкапсулировать несколько бизнес-объектов. Я думаю, что я продолжу преобразовывать их в ваш контроллер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...