圖4-4給出了已創(chuàng)建項目的圖形表示。在該圖之后列出了每個對象的責任。
● ASPPatterns.Chap4.DomainModel.Model Domain Model項目將包含應用程序內的所有業(yè)務邏輯。領域對象將存放在此處,并與其他對象建立關系,從而表示應用程序正在構建的銀行領域。該項目還將以接口的形式為領域對象持久化和檢索定義契約,將采用Repository模式來實現(xiàn)所有的持久化管理需求。(將在第7章中更加詳細地討論Repository模式)。Model項目不會引用其他任何項目,從而確保:讓它與任何基礎設施關注點保持隔離,并堅定地只關注業(yè)務領域。
● ASPPatterns.Chap4.DomainModel.Repository Repository項目將包含Model項目中定義的資源庫接口的具體實現(xiàn)。Repository引用了Model項目,從而從數據庫提取并持久化領域對象。Repository項目只關注領域對象持久化和檢索的責任。
● ASPPatterns.Chap4.DomainModel.AppService AppService項目將充當應用程序的網關(API,如果愿意的話)。表示層將通過消息(簡單的數據傳輸對象)與AppService通信。將在第7章中詳細討論消息傳送模式。AppService層還將定義視圖模型,這些是領域模型的展開視圖,只用于數據顯示。第8章中將更詳細地討論該主題。
● ASPPatterns.Chap4.DomainModel.UI.Web UI.Web項目負責應用程序的表示和用戶體驗需求。這個項目只與AppService交互,并接收專門為用戶體驗視圖創(chuàng)建的強類型視圖模型。
在確定解決方案結構之后,就可以搭建數據庫來存放領域中銀行賬號的狀態(tài)。向Web項目中添加一個新項,選擇new database,并將其命名為BankAccount.mdf。一旦數據庫創(chuàng)建完畢,雙擊它打開Server Explorer,并創(chuàng)建兩張表,定義如表4-3和表4-4所示。