Разработка под управлением домена,.NET и платформа Entity Framework
Я новичок в дизайне, ориентированном на домен, но хочу узнать его и использовать его для нового приложения.
Я буду использовать Entity Framework для доступа к данным.
Базовая компоновка до сих пор:
ASP.NET MVC и другие клиенты (мобильные устройства и т.д.)
|
Webservices
|
Модель домена (услуги, репозитории, агрегаты, объекты и объекты ценности)
|
Уровень доступа к данным (Entity Framework)
|
Хранилище данных (SQL Server)
Каков наилучший способ передачи данных между уровнем доступа к данным и моделью домена?
Я думаю, что объекты в модели домена являются объектами POCO и что они должны отображаться в/из объектов Entity Framework. Это хорошее решение?
Если да:
Как и где должно происходить такое отображение? (Уровень модели домена или уровень доступа к данным)
Где и как я должен запрашивать Entity Framework (т.е. Возвращать список на основе поиска)?
Ответы
Ответ 1
АНДРЕЙ ЙЕМЕЛЬЯНОВ сделал магистерскую диссертацию по этому предмету:
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
Ответ 2
Я думаю, что объекты в модели домена являются объектами POCO и что они должны отображаться в/из объектов Entity Framework. Это хорошее решение?
Я думаю, что это так.
Это то, что мы сделали довольно успешно, хотя в моем случае в мире Java. Наши классы домена содержат большинство бизнес-логики. Каждый из них имеет ссылку на объект сущности тонких данных и делегирует получение и настройку постоянных свойств для объекта данных.
Ответ 3
Проект S # arp architecture является отличной отправной точкой для руководства по применению DDD. Он основан на NHibernate, но используемые принципы должны быть одинаково для EF...
Ответ 4
Я бы пошел на Enterprise Core Objects (ECO) из managedobjects.com
Он делает все, что вы захотите, из инфраструктуры DDD