Сортировка POCO, Шаблон репозитория, Единица работы и ORM - PullRequest
4 голосов
/ 30 декабря 2010

Я читаю чепуху по всем этим темам:

POCO
Шаблон репозитория
Единица работы
Использование картографа ORM

окопределения каждого в книгах и т. д., но я не могу представить все это вместе.Значение структуры примера (DL, BL, PL).

Так что, у вас есть ваши объекты DL, которые содержат ваши методы CRUD, а затем ваши объекты BL, которые "отображаются" с помощью ORM обратно на ваши объекты DL?А как насчет DTO ... это ведь ваши DL-объекты?Я в замешательстве.

Кто-нибудь может объяснить все это вместе или прислать мне пример кода?Я просто пытаюсь соединить это.Я определяю, стоит ли переходить с LINQ на SQL или EF 4 (пока не уверен насчет NHibrernate).

Просто не получить понятия, как на физических и кодовых уровнях, а также то, что содержит каждый тип объекта (только свойства дляDTO и CRUD для ваших основных классов DL, которые соответствуют полям таблицы ???).

Мне просто нужно некоторое руководство здесь.Я читаю книги Фаулера и начинаю читать Эванса, но пока еще не все.

1 Ответ

7 голосов
/ 31 декабря 2010

Я предполагаю, что DL - уровень домена, BL - бизнес-уровни и PL - уровень персистентности.

Если вам нужно простое приложение CRUD, вы не должны использовать принципы DDD.Используйте DDD, если у вас есть сложная модель предметной области для реализации.

В DDD у вас будут DL и BL в сочетании со ВСЕЙ логикой внутри ваших доменных объектов / сервисов.В противном случае вы создадите модель Anemic Domain .Избегайте установки свойств и изменяйте ваши объекты только с помощью вызовов методов, таких как ChangeAddress вместо obj.Address = newAddress или Activate вместо obj.Active = true.

Объекты Data-Transfer-Objects должны использоваться только для связи с внешнимиуслуги / UI.Внутри вашего домена вы будете использовать только доменные объекты.

Я предлагаю использовать основанный на задачах пользовательский интерфейс.

Какая технология персистентности для использования в слое постоянства зависит от ваших требований.Прежде чем выбрать SQL RDBMS, взгляните на несоответствие объектно-реляционного импеданса на странице википедии.

Для примеров реализации, пожалуйста, проверьте связанные вопросы:

  1. Существуют ли проекты с открытым исходным кодом, использующие DDD (Domain Driven Design)?
  2. Образцы Good Domain Driven Design
  3. .NET DDD Пример
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...