图4-4给出了已创建项目的图形表示。在该图之后列出了每个对象的责任。
● ASPPatterns.Chap4.DomainModel.Model Domain Model项目将包含应用程序内的所有业务逻辑。领域对象将存放在此处,并与其他对象建立关系,从而表示应用程序正在构建的银行领域。该项目还将以接口的形式为领域对象持久化和检索定义契约,将采用Repository模式来实现所有的持久化管理需求。(将在第7章中更加详细地讨论Repository模式)。Model项目不会引用其他任何项目,从而确保:让它与任何基础设施关注点保持隔离,并坚定地只关注业务领域。
● ASPPatterns.Chap4.DomainModel.Repository Repository项目将包含Model项目中定义的资源库接口的具体实现。Repository引用了Model项目,从而从数据库提取并持久化领域对象。Repository项目只关注领域对象持久化和检索的责任。
● ASPPatterns.Chap4.DomainModel.AppService AppService项目将充当应用程序的网关(API,如果愿意的话)。表示层将通过消息(简单的数据传输对象)与AppService通信。将在第7章中详细讨论消息传送模式。AppService层还将定义视图模型,这些是领域模型的展开视图,只用于数据显示。第8章中将更详细地讨论该主题。
● ASPPatterns.Chap4.DomainModel.UI.Web UI.Web项目负责应用程序的表示和用户体验需求。这个项目只与AppService交互,并接收专门为用户体验视图创建的强类型视图模型。
在确定解决方案结构之后,就可以搭建数据库来存放领域中银行账号的状态。向Web项目中添加一个新项,选择new database,并将其命名为BankAccount.mdf。一旦数据库创建完毕,双击它打开Server Explorer,并创建两张表,定义如表4-3和表4-4所示。