Domain Driven Design,. NET i Entity Framework

Jestem nowy w domain driven design, ale chcę się go nauczyć i użyć go do nowej aplikacji. Będę używał struktury podmiotu do dostępu do danych.

Podstawowy układ jak na razie to:

ASP.NET MVC i innych klientów (mobile urządzenia itp.)
|
Webservices
|
Model domeny (usługi, repozytoria, Agregaty, encje i Obiekty wartości)
|
Data Access Layer (Entity Framework)
|
Data Storage (SQL Serwer)

Jaki jest najlepszy sposób przesyłania danych między warstwą dostępu do danych a modelem domeny? Myślę, że encje w modelu domeny to obiekty POCO i że powinny być mapowane do / z obiektów frameworku encji. Czy to dobre rozwiązanie?

Jeśli tak:
Jak i gdzie powinno nastąpić takie mapowanie? (Warstwa modelu domeny lub warstwa dostępu do danych)
Gdzie i jak powinienem odpytywać Entity Framework (tj. zwraca listę na podstawie wyszukiwania)?

Author: Christian V, 2010-01-16

4 answers

Andrej JEMIELJANOW zrobił pracę magisterską na ten temat:

Http://gupea.ub.gu.se/dspace/bitstream/2077/10462/1/gupea_2077_10462_1.pdf

Będzie to znacznie łatwiejsze wraz z wydaniem EF 4, który obsługuje obiekty POCO.

W międzyczasie możesz spróbować użyć automapp do mapowania między obiektami domain i EF, zobacz: http://www.lostechies.com/blogs/jimmy_bogard/archive/2009/01/22/automapper-the-object-object-mapper.aspx

 14
Author: Shiraz Bhaiji,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-12 11:30:08
Myślę, że encje w modelu domeny to obiekty POCO i że powinny być mapowane do / z obiektów frameworku encji. Czy to dobre rozwiązanie?
Myślę, że tak.

Jest to coś, co zrobiliśmy całkiem pomyślnie, chociaż w moim przypadku w świecie Javy. Nasze klasy domenowe zawierają większość logiki biznesowej. Każdy z nich ma odniesienie do obiektu thin data entity i deleguje pobieranie i ustawianie trwałych właściwości do danych / align = "left" /

 3
Author: rayd09,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-16 21:13:49

Projekt s#ARP architecture jest doskonałym punktem wyjścia dla wskazówek dotyczących stosowania DDD. Jest on oparty na NHibernate, ale zasady stosowane powinny trzymać się jednakowo dla EF...

 2
Author: jeroenh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-17 16:24:28

Wybrałbym Enterprise Core Objects (ECO) z capableobjects.com

Robi wszystko, czego chcesz od frameworka DDD

 2
Author: Hans Karlsen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-18 09:46:18