Я читал о доменных событиях и видел коды из реализации Udi (http://www.udidahan.com/2009/06/14/domain-events-salvation/)
, Майк Хэдлоу (http://mikehadlow.blogspot.com/2010/09/separation-of-concerns-with-domain.html), Реализация Джимми Богарда и Джейсона Дентлера.
В целом мне нравится идея событий.
У меня вопрос, к какому слою я должен добавить эти компоненты.
Я не собираюсь использовать шину, и все события будут обрабатываться синхронно .
Я предполагаю, что интерфейс IDomainEvent, IEventHandler должен идти в Project.Core , где остальные интерфейсы хранятся и доступны всем проектам.
Диспетчер (который является статическим классом), я считаю, должен войти в Project.Infrastructure .
Я создам новый проект только для обработчиков доменных событий. скажем Project.EventHandlers .
Я буду использовать IoC (Structuremap) для регистрации всех обработчиков.
Сами события, как я вижу, основаны на бизнес-языке, и поэтому я считаю, что следует перейти к Project.Domain , где реализованы все агрегаты.
Дайте мне знать, если это правильный путь.
Моя другая путаница связана с ссылками на проекты. Должен Project.Domain ссылка Project.Infrastructure , чтобы он мог использовать статический Диспетчер событий .
Должен Project.EventHandlers ссылка Project.Domain , потому что он должен знать, какие события там могут быть обработаны.
Я планирую создать класс RegistryMap Registry в Project.EventHandlers , который затем будет BootStrapped в Global.asax.
Если это уже говорилось, пожалуйста, укажите мне ссылку. Я не смог найти его в поиске Google.