Доменно-управляемый дизайн, .NET и Entity Framework
Я новичок в дизайне, управляемом доменом, но хочу изучить его и использовать для нового приложения. Я буду использовать Entity Framework для доступа к данным.
Основная схема на данный момент:
ASP.NET MVC и другие клиенты (мобильные устройства и т. Д.)
|
Webservices
|
Модель предметной области (сервисы, репозитории, агрегаты, сущности и объекты стоимости)
|
Уровень доступа к данным (Entity Framework)
|
Хранение данных (SQL Server)
Каков наилучший способ передачи данных между уровнем доступа к данным и моделью предметной области? Я думаю, что сущности в доменной модели являются объектами POCO и что они должны быть сопоставлены с объектами Entity Framework. Это хорошее решение?
Если так:
Как и где должно происходить такое отображение? (Уровень модели домена или Уровень доступа к данным)
Где и как я должен запрашивать Entity Framework (т.е. возвращать список на основе поиска)?
4 ответа
АНДРЕЙ ЕМЕЛЯНОВ защитил кандидатскую диссертацию на эту тему:
http://gupea.ub.gu.se/dspace/bitstream/2077/10462/1/gupea_2077_10462_1.pdf
Это станет намного проще с выпуском EF 4, который поддерживает объекты POCO.
В то же время вы можете попробовать использовать automapper для сопоставления между доменом и объектами EF, см. http://www.lostechies.com/blogs/jimmy_bogard/archive/2009/01/22/automapper-the-object-object-mapper.aspx
Я думаю, что сущности в доменной модели являются объектами POCO и что они должны быть сопоставлены с объектами Entity Framework. Это хорошее решение?
Я думаю, что это.
Это то, что мы сделали довольно успешно, хотя в моем случае в мире Java. Наши доменные классы содержат большую часть бизнес-логики. Каждый имеет ссылку на тонкий объект сущности данных и делегирует получение и установку постоянных свойств сущности данных.
Я бы пошел на Enterprise Core Objects (ECO) от способного объекта
Он делает все, что вы хотели бы от структуры DDD
Проект архитектуры S#arp является отличной отправной точкой для руководства по применению DDD. Он основан на NHibernate, но используемые принципы должны в равной степени относиться к EF...