Доменно-управляемый дизайн, .NET и Entity Framework - PullRequest
14 голосов
/ 16 января 2010

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

Базовая схема на данный момент:

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

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

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

Ответы [ 4 ]

14 голосов
/ 12 февраля 2010

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

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 голосов
/ 17 января 2010
Я думаю, что сущности в доменной модели являются объектами POCO и что они должны быть сопоставлены с объектами Entity Framework. Это хорошее решение?

Я думаю, что это так.

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

2 голосов
/ 18 января 2010

Я бы пошел на Enterprise Core Objects (ECO) с способногоobjects.com

Он делает все, что вы когда-либо хотели бы от структуры DDD

2 голосов
/ 17 января 2010

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

...