2009-11-19 3 views
3

У нас есть проект MVC с приличным размером, хорошо работающий на данный момент, я начал смотреть на некоторые повторные факторинг, и у меня есть вопрос.ASP.Net MVC Architecture - Местоположение ViewModels

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

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

ответ

4

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

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

+0

Для получения дополнительной информации проверьте этот URL: http://planetofcoders.blogspot.com/2011/06/mvc-architecture-in-aspnet.html – 2011-06-05 08:40:53

2

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

+0

Это то, что я думал. Спасибо, я оставлю это открытым для других мнений. – LiamB