Я новичок в ASP.NET MVC и унаследовал проект, использующий эту технологию.
Такой веб-проект содержит три папки: Views
, Controllers
и Model
. Насколько я понимаю, Модель содержит по сути вашу доменную/бизнес-логику и вызывается вашими контроллерами. Сами контроллеры действуют как делегаторы между представлениями и моделью.
Теперь в типичной многоуровневой архитектуре ни в одном проекте не должно быть ссылок на проект Web/UI.
Я нахожу это довольно запутанным:
-> Пользовательский интерфейс содержит Модель, которая — в идеальном мире — основана на принципах «Domain Driven Design».
-> Слои поверх пользовательского интерфейса (Сервисы и DataAccess) не может иметь ссылку на пользовательский интерфейс
Как вы можете создавать эффективные сервисы и уровни доступа к данным, если они не знают вашу модель?
Что мне здесь не хватает? Отличается ли Web.Model от "DDD" и нужен ли мне отдельный проект BL? Если это так, то что должна содержать Web.Model?