2010-12-05 9 views
5

私はDDDを使用していくつかのasp.net mvcコーディングを行っています。私は、フェッチと追加を処理するビジネスエンティティとサービスリポジトリを表すオブジェクトを持っています。私はこれが初めてで、アプリケーションが増えるにつれて、ドメインオブジェクト/データの追加、削除、変更の結果として実行する必要のあるセカンダリコードが多く見え始めます。ドメイン駆動のプログラミングとイベント

私はイベント駆動型システムを作って、あるアクションが他のコード部分を起動させるようにしたいと考えています。たとえば、ユーザーを削除すると、このアクションに他の多くのことをサブスクライブできるようになり、削除が実行されたときにすべてが実行されます。

これらの状況を処理するためにアプリケーションをどのようにコーディングしましたか?私の問題に対して信頼性の高い一貫性のあるOOシステムを確立するにはどうすればよいですか?私はすでにイベントやデリゲートについて知っていますが、私はコーディングのテクニックや素敵なプラクティスにもっと興味があります。

+0

.netでこれは通常、インターフェイスINotifyPropertyChangedとIObservableCollectionによって行われます。多くのDataSet-gui-Magicがこのように実装されています。 – k3b

答えて

8

あなたがチェックアウトしたい場合は、domain eventsと呼ばれることがあります。基本的には、ドメインモデル自体がドメイン固有のイベント(例:CustomerRegistered)を起動し、ドメイン外で追加の作業を行うために登録できるものはほとんどありません。

ウディダハンはこれに関する素晴らしい記事を書いています:1st2nd3rd

また、Szymonのsample applicationもこれについて非常に説明しています。

CQRSは素晴らしいですが、アーキテクチャ全体に影響します。過度のことかもしれない。

+0

この回答は、私が実装しようとしていることの行に沿っています – Roman

+0

これは非常に良い答えです。それらの記事を共有してくれてありがとうArnis。私はGoogleを通してそれらを見つけることができませんでした。ありがとう! –