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