13

Я новичок в дизайне с поддержкой домена, но хочу изучить его и использовать для нового приложения. Я буду использовать Entity Framework для доступа к данным.Разработка под управлением домена, .NET и инфраструктура Entity

Базовая схема до сих пор:

ASP.NET MVC и другие клиенты (мобильные устройства и т.д.)
|
Webservices
|
Модель домена (услуги, репозитории, агрегаты, объекты и объекты стоимости)
|
Уровень доступа к данным (структура объекта)
|
хранения данных (SQL Server)

Каков наилучший способ передачи данных между уровнем доступа к данным и модели предметной области? Я думаю, что объекты в модели домена являются объектами POCO и что они должны отображаться в/из объектов Entity Framework. Это хорошее решение?

Если да:
Как и где должно происходить такое отображение? (Уровень модели домена или уровень доступа к данным)
Где и как следует запрашивать Entity Framework (т. Е. Возвращать список на основе поиска)?

+7

Помните, что DDD, в конечном счете просто способ эффективного общения с клиентом на его языке (домен), а затем разрабатывая ваше приложение таким образом, чтобы он соответствовал этому языку. Это не метод развития, как таковой. Таким образом, нет жестких и быстрых правил о том, куда и куда. –

+6

@Robert Harvey: очень верно, но все же очень полезно иметь некоторые рекомендации относительно того, как применять рекомендации DDD к конкретной (вероятно, довольно общей) ситуации. – jeroenh

ответ

14

АНДРЕЙ ЕМЕЛЬЯНОВ имеет сделал магистерскую диссертацию по этой точной теме:

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

3
Я думаю, что объекты в модели домена являются объектами POCO и что они должны отображаться в/из объектов Entity Framework. Это хорошее решение?

думаю есть.

Это то, что мы сделали довольно успешно, хотя в моем случае в мире Java. Наши классы домена содержат большинство бизнес-логики. Каждый из них имеет ссылку на объект данных тонких данных и делегирует получение и настройку постоянных свойств для объекта данных.

2

S#arp architecture project - отличная отправная точка для руководства по применению DDD. Он основан на NHibernate, но принципы, используемые должны держать в равной степени для EF ...

Смежные вопросы