作者:戴子意 来源:子意博客 时间:2009-11-08
学了几个月.net,很迷糊,就把.net三层架构给抄下来,方便以后看.
1、三层是哪三层
1、用户界面表示层(USL)
2、业务逻辑层(BLL)
3、数据访问层(DAL)
1.1用户界面表示层(USL)
用户界面表示层:主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:aspx, 如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务,一般他的表现形式就是web页或是winform用户可以看得到的部份。
1.2业务逻辑层(BLL)
业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建,如:在一个系统中的用户类:UserOpera之类的,执行实际的问题。
1.3数据访问层(DAL)
数据数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务,如:网上很流行的SqlHelper或是AccHelper之类的.
1.4三层关系和区分
1:数据数据访问层:主要看你的数据层里面有没有包含逻辑处理,实际上他的各个函数主要完成各个对数据文件的操作。而不必管其他操作,所以数据访问层大多数是通用的,比如SqlHelper什么数据库都可以,只要是mssql。
2:业务逻辑层:主要负责对数据层的操作。也就是说把一些数据层的操作进行组合,他相当于一个传话和过滤组合器,比如你要招聘一个员工,要求是这个员工要大专以上学历什么的,但是数据访问层是不认识什么叫大专学历的,这时候,业务层就帮你组合,告诉数据访问层,要有大专文凭的才行。
3:表示层:主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问,一般就是大家看到的表单,比如填用户名,密码呀什么的之类。
2、如何建立一个三层体系结构解决方案
新建一个空白解决方案。然后:
“添加”-“新建项目”-“其他项目”-“企业级模版项目”-“C#生成块”-“数据访问”(数据层,下简称D层)
“添加”-“新建项目”-“其他项目”-“企业级模版项目”-“C#生成块”-“业务规则”(业务层,下简称C层)
“添加”-“新建项目”-“其他项目”-“企业级模版项目”-“C#生成块”-“Web用户界面”(界面层,下简称U层)
右键点“解决方案”-“项目依赖项”,设置U依赖于D、C,C依赖于D。
对U添加引用D、C,对C添加引用D。
到此为止,一个三层的架子建立起来了。我上面说的很具体很“傻瓜”,知道的人觉得我废话,其实我这段时间很强烈的感觉到非常多的人其实对这个简单的过程完全不了解。虽然不反对建2个“空项目”和1个“Asp net Web应用程序项目”也可以作为3层的框架,而且相当多的人认为其实这些“企业级模板项目”其实就是个空项目,这是一个误区。没错,企业级模板项目你从解决方案资源管理器里看它是个什么也没有的,但是你可以用记事本打开项目文件,看见不同了吧??有些东西在背后,你是看不见的,不过系统已经做好了。也就是说,如果你在C层里的某个类里“using System Data SqlClineit”,或者使用一个SqlConnection对象,编译时候不会出错,但是会在“任务列表”里生成一些“策略警告”,警告你在C层里不要放应该放在D层的东西(虽然就程序来说没错,但是可读性可维护性就打了折扣)而这种功能,空项目是无法給你的。
在新TraceLWord3中,应用了“企业级模板项目”。把原来的LWordTask.cs,并放置到一个单一的项目里,项目名称为:AccessTask。解决方案中又新建了一个名称为:InterService的项目,该项目中包含一个LWordService.cs程序文件,它便是“中间业务层”程序。为了不重复命名,TraceLWord3的网站被放置到了WebUI项目中。更完整的代码,可以在CodePackage/TraceLWord3目录中找到