私はドメイン イベントについて読んでおり、Udi の実装 ( http://www.udidahan.com/2009/06/14/domain-events-salvation/ ) や Mike Hadlow ( http://mikehadlow.blogspot. com/2010/09/separation-of-concerns-with-domain.html )、Jimmy Bogard と Jason Dentler の実装。
全体として、私はイベントのアイデアが好きです。
私の質問は、これらのコンポーネントをどのレイヤーに追加する必要があるかです。
BUS を使用するつもりはなく、すべてのイベントは同期方式で処理されます。
インターフェイス IDomainEvent 、 IEventHandler は、残りのインターフェイスが保持され、すべてのプロジェクトからアクセスされるProject.Coreに移動する必要があると思います。
Dispatcher (静的クラス) はProject.Infrastructureに入るべきだと思います。
ドメイン イベントのハンドラー専用の新しいプロジェクトを作成します。Project.EventHandlersとしましょう。
IoC (structuremap) を使用してすべてのハンドラーを登録します。
私が見ているイベント自体はビジネス言語に基づいているため、すべての集計が実装されているProject.Domainに移動する必要があると思います。
これが正しい方法かどうか教えてください。
私の他の混乱は、プロジェクトの参照に関するものです。Project.Domainは、静的なEvent Dispatcherを使用できるようにProject.Infrastructureを参照する必要があります。
Project.EventHandlersはProject.Domainを参照する 必要があります。これは、処理できるイベントが何であるかを知る必要があるためです。
Project.EventHandlersに StructureMap レジストリ クラスを作成し、Global.asax で BootStrapped する予定です。
これが以前に話されている場合は、リンクを教えてください。Google 検索では見つかりませんでした。