0

NServiceBusを使い始めたばかりで、バスがVSソリューションにどのように適合するかを理解しようとしています。

ASP.NetフロントエンドとBLLを備えた既存のアプリケーションを想定します。私はDIにWindsorを使用していますが、BLLはコンテナーについての知識がありません。「MyNamespace.IOC」と呼ばれる別のプロジェクトにコンテナを接続します。このプロジェクトと私のWebプロジェクトだけがWindsorの知識を持っています。

BLLのバスにアクセスする必要があります(メッセージの送信/公開/処理を行う場所であるため)。Windsorを使用してNSBを構成する必要があり、(私は)アプリの起動時にコンテナーのインスタンスをConfigure.With()。CastleWindorBuilder()メソッドに渡します。

3つのプロジェクトすべてがNSBDLLを参照しているのは奇妙に思えます。通常、これをすべて一緒に配線するにはどうすればよいですか?

4

2 に答える 2

1

一部のインターフェイスの背後にあるバスを抽象化し、IC および Web プロジェクトでのみ実装を提供できます。

于 2012-08-12T06:59:13.510 に答える
1

BLL/ドメイン レイヤーで NSB を参照したくない場合は、「ドメイン イベント」を参照してください。ドメイン イベント ハンドラーは独自の実装レイヤーに配置でき、ドメインはイベントの処理を認識しないため、サービス バスの知識は必要ありません。そこから、esb メッセージを公開できます。大した違いではないように思えるかもしれませんが、ドメインのイベント処理レイヤーはドメインからより分離されています。

補足として: サービス バスから始めているので、 http: //shuttle.codeplex.com/ で私の FOSS プロジェクトを参照することもできます--- フィードバックをお待ちしております :)

于 2012-08-12T14:32:40.910 に答える