三层体系结构的概念数据库
BLL将USL与DAL隔开了,而且加入了业务规则缓存
在“数据访问层”中,最好不要出现任何“业务逻辑”!也就是说,要保证“数据访问层”的中的函数功能的原子性!即最小性和不可再分。“数据访问层”只管负责存储或读取数据就能够了。服务器
此种架构要在数据库设计上注意表之间的关系,尽力知足主与子的关系。在功能上对用户要有必定的限制,不要表如今对于子表的删除操做必定要慎重,以避免形成主表与子表的数据在逻辑上出现的主表的外键在子表中没有相对应的值。架构
对于表的综合查询方法是:
先对主表查询,调用主表所对应的DL。再根据主表的记录分别对每个子表进行查询。将自表的查询结果添加的主表后,造成一个大的查询集合。
对于表的操做(增删改):
此时只对主表进行操做,调用主表对应的DL中的操做方法。
RL层是逻辑判断层,主要是对页面上传入的数据进行逻辑判断。RL层之上就是UI框架
在新TraceLWord3中,应用了“企业级模板项目”。把原来的LWordTask.cs,并放置到一个单一的项目里,项目名称为:AccessTask。解决方案中又新建了一个名称为:InterService的项目,该项目中包含一个LWordService.cs程序文件,它即是“中间业务层”程序。为了避免重复命名,TraceLWord3的网站被放置到了WebUI项目中。更完整的代码,能够在CodePackage/TraceLWord3目录中找到—— 数据库设计
有些网友在读完这篇文章前做以后,对我提出了一些质疑,这提醒我文章至此尚未说起“三层结构”的缺点。“三层结构”这个词眼彷佛一直都很热门,究其缘由,或许是这种开发模式应用的比较广泛。可是“三层结构”却并非百试百灵的“万灵药”,它也存在着缺点。下面就来讲说它的缺点……ide
“三层结构”开发模式的一个很是明显的缺点就是其执行速度不够快。固然这个“执行速度”是相对于非分层的应用程序来讲的。从文中所给出的时序图来看,也明显的暴露了这一缺点。TraceLWord1和TraceLWord2没有分层,直接调用的ADO.NET所提供的类来获取数据。可是,TraceLWord6确要通过屡次调用才能获取到数据。在子程序模块程序没有返回时,主程序模块只能处于等待状态。因此在执行速度上,留言板的版本越高,排名却越靠后。“三层结构”开发模式,不适用于对执行速度要求过于苛刻的系统,例如:在线订票,在线炒股等等……它比较擅长于商业规则容易变化的系统。函数
“三层结构”开发模式,入门难度够高,难于理解和学习。这是对于初学程序设计的人来讲的。以这种模式开发出来的软件,代码量一般要稍稍多一些。这每每会令初学者淹没在茫茫的代码之中。望之生畏,对其产生反感,也是能够理解的……性能
其实,不管哪种开发模式或方法,都是有利有弊的。不会存在一种“万用法”能够解决任何问题。因此“三层结构”这个词眼也不会是个例外!是否采用这个模式进行系统开发,要做出比较、权衡以后才能够。切忌滥用!学习
.Net PetShop 4.0 配置文件属性管理http://blog.csdn.net/fengfangfang/archive/2006/09/07/1189061.aspx
.Net PetShop 4.0 缓存处理
http://blog.csdn.net/fengfangfang/archive/2006/09/06/1185077.aspx
.Net PetShop 4.0 消息处理
http://blog.csdn.net/fengfangfang/archive/2006/09/08/1194896.aspx
每一个功能都使用了工厂模式