Я никогда раньше не работал с шаблоном проектирования MVC, а недавно я начал работать над проектом, используя ASP.NET MVC.
Я использую ActiveRecord в качестве уровня данных.
Я также использую модели представления (уникальные для каждого представления) и AutoMapper для сопоставления моих моделей представления с сущностями EntityFramework.
За несколько дней, изучая MVC, EntityFramework и читая разные статьи, я придумал следующий дизайн:
В моем решении есть веб-проект (уровень представления), который содержит представления и контроллеры.
У меня есть основной проект, в котором я определяю свои ViewModels и Services (бизнес-уровень, на котором идет вся бизнес-логика)
У меня есть проект EntityModels, в котором живут все мои объекты EF (уровень данных)
Этот дизайн позволяет мне хранить мой уровень данных отдельно от моего уровня презентации, веб-проект ничего не знает о проекте EntityModels и наоборот, вся логика живет на бизнес-уровне.
Из моих контроллеров (после проверок) я передаю viewModels на уровень обслуживания, где выполняется отображение и вся необходимая бизнес-логика.
Это вообще правильная конструкция?
Я считаю, что я прочитал, что ViewModels следует определять на уровне представления. Я видел примеры, где уровень представления имеет ссылки на уровень данных, а отображение выполняется в контроллерах (хорошая практика?). в этом случае контроллеры передают модели предметной области на бизнес-уровень. У меня здесь нет опыта, но мне это не нравится.
Итак, может ли кто-нибудь указать, где я прав, а где нет?
заранее спасибо.