2010-12-05 76 views
5

我正在做一些使用DDD的asp.net mvc編碼。我有代表業務實體和服務存儲庫的對象來處理提取和添加它們。我對此很陌生,隨着應用程序的增長,我開始看到許多必須運行的二級代碼,這些代碼必須通過添加,刪除或更改我的域對象/數據來運行。域驅動的編程和事件

我想製作一個事件驅動系統,其中一個動作觸發代碼的其他部分運行。例如,當我刪除一個用戶時,我希望能夠爲此操作訂閱許多其他內容,以便在發生刪除時運行它們。

您是如何編寫應用程序來處理這些情況的?我如何才能爲我的問題建立可靠和一致的面向對象系統?我已經知道事件和代表,但我更感興趣的是編碼技術和良好實踐。

+0

在.net中,這通常通過接口INotifyPropertyChanged和IObservableCollection完成。很多DataSet-gui-Magic都是這樣實現的。 – k3b 2010-12-23 16:21:50

回答

8

事情你可能想要退房叫做domain events。基本上的想法是,領域模型本身觸發特定於領域的事件(例如CustomerRegistered)以及幾乎任何你喜歡的東西都可以訂閱它們以在領域之外做其他事情。

Udi Dahan在此寫了一些不錯的文章:1st,2nd,3rd

另外 - Szymon的sample application對此很有解釋性。

CQRS很棒,但它影響整個架構。可能是一個矯枉過正的問題。

+0

這個答案是沿着我想要實現的東西 – Roman 2010-12-08 06:33:18