DDDSample, должен ли быть репозиторий.save в контроллере? - PullRequest
0 голосов
/ 31 декабря 2011

Я смотрю образец DDD для .net, предоставленный Образец DDD в Codeplex , и пытаюсь понять, как различные слои работают с DDD.

На примере я вижу, что при создании нового Cargo совокупный корневой Cargo сохраняется через репозиторий в вызове BookingService.BookNewCargo (). Однако, когда я назначаю новый маршрут или изменяю пункт назначения (AssignCargoToRoute () или ChangeDestination () в BookingService), я ожидал, что также будет вызван CargoRepository.Store ().

Пример кода с использованием Nhibernate, который я раньше не использовал.

Чего мне не хватает?

Другими словами, как агрегат сохраняется, если Store () не вызывается?

JD

Ответы [ 2 ]

1 голос
/ 31 декабря 2011

хм, я видел несколько операторов switch в домене, кажется, что в домене отсутствуют некоторые ключевые термины. На первый взгляд, кажется, что в некоторых областях есть немного церемоний, но это только первое впечатление.

Здесь использовался шаблон событий домена udi dahan, есть обработчик события «груз был назначен маршруту», который, кажется, хранит рассматриваемый объект. следите за использованием класса domainevents в сочетании с соответствующим классом событий, я надеюсь, что это скажет вам, что вызывает магазин.

0 голосов
/ 01 января 2012

Вот пример приложения, которое я написал:

http://clientdatasystem.codeplex.com/SourceControl/list/changesets

А вот мой сопровождающий блог:

http://lucidcoding.blogspot.com/2011/10/enterprise-software-architecture-how-to.html

Как выможет заметить, что в моем блоге я описываю это не как DDD, а как образец модели домена.Это проще, чем приложение Cargo, и может лучше удовлетворить ваши потребности.Я следую шаблону создания и сохранения, а также обновляю и сохраняю то, что вы ожидали.Я не говорю, что мой образец лучше, чем у Эрика Эванса (я бы не осмелился!), Но приложение Cargo не является базовой упрощенной версией.

...