这个系列我一共写了八篇,从什么是三层架构到一个简单的三层架构从数据库设计、SQLHelper设计、Modle设计、DAL设计、BLL设计到UI的设计作了简单的说明,在这其中有很多读者提出了很好的意见,我很高兴,我只是把我的理解粗略的写出来分享,以此来回顾以前做过的一些项目的总结,希望自己在这其中有些启发,同时也接受读者给我的批评,来使自己有所提高。
步步为营 .NET三层架构解析系列
感谢读者对我博客的支持和提出的宝贵的建议。
其间有些比较好的评论(个人认为),我列举下:
1、呵呵,对于复杂的项目的话,可以考虑用领域模型设计呀,这方面的开源项目也挺多的,MVC MusicStore也采用了类似的设计思想吧采用领域模型设计思想去做的话,可以将主要焦点放在领域模型及模型相关的业务逻辑上,至于数据持久化,网元交互同步,UI展示,都可以分离出来。主要有以下几个分层:DOMAIN层 --- 领域模型层(我使用的是充血型的模型)Infrastructure层 --- 基础层(包括模型的数据持久化,与网元交互的代理,与文件系统交互的基础类等)TASK层 --- 服务提供层 (提供给UI或其他网元的服务,如查询与CMD)这样子的话:写领域模型的兄弟可以专业于领域模型及业务写数据持久化的兄弟,只要写数据持久化,一般用ORM来Mapping,如果有兴趣的话可以使用NH3或者EF 4.1,这2个对DDD的支持比较好,模型相对比较纯洁至于UI或其他网元与系统的数据交互一般情况下分为2种:即:查询,与 数据变更因此:建立对应的DTO对象,从服务提供层得到DTO的数据,展现UI建立对应的COMMAND对象,从UI或网元传入CMD对象给服务提供层,服务提供层调用相关的基础层或领域模型服务来实现数据变更这样子的话,使领域模型对象与UI及其他网元彻底分离,使业务逻辑高聚合在领域模型中每个层之间可以使用IOC达到层与层之间的散耦合至于数据缓存,日志记录,异常处理,这些常用的方法,可以使用AOP的方式来实现,有兴趣的兄弟可以看看PostSharp大概就是这个样子2、