Рекомендации по передовой практике при создании и использовании мероприятий бизнес-уровня - PullRequest
4 голосов
/ 03 декабря 2009

В настоящее время мы заканчиваем план архитектуры для нового программного приложения, которое мы разрабатываем в следующем году в ASP.NET MVC / C #.

Мы планируем создать приложение, следуя шаблонам и методам проектирования, управляемым доменом, и мне интересно, есть ли у кого-нибудь какие-либо советы / мнения по аспекту предлагаемой системы.

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

Мне очень нравится идея вызывать доменные события, но я изо всех сил пытаюсь понять, как лучше всего было бы их динамически использовать.

Кто-нибудь создавал что-то подобное и мог бы поделиться некоторыми советами или мыслями?

Ответы [ 2 ]

4 голосов
/ 03 декабря 2009

Возможно, вы захотите взглянуть на сообщение Уди Дахана о деловых событиях .


Так как же вы собираетесь употреблять такие события?

В посте Уди Дахана мне кажется, что у него просто есть посредник в процессе (на самом деле, Наблюдатель ), который уведомляет всех подписчиков о событиях по мере их возникновения. Это происходит безоговорочно, поэтому каждый подписчик по сути работает как собственный фильтр, решая, хочет ли он иметь дело с рассматриваемым событием.

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

Во многих случаях это, вероятно, будет достаточно хорошо, но в других случаях вам может потребоваться повышенная масштабируемость или надежность. Такие проблемы могут быть решены с помощью (транзакционных) очередей, но, очевидно, за счет дополнительной сложности. Здесь брокер все еще существует, но вместо того, чтобы уведомлять подписчиков напрямую, он добавляет сообщение, представляющее событие, во все очереди подписки.

1 голос
/ 03 декабря 2009

Ну, вы, наверное, видели доменное событие Фаулера , тогда. У Уди Дахана есть один способ реализации: http://www.udidahan.com/2008/08/25/domain-events-take-2/

...