1. 创建整体解决方案
①创建空白解决方案
②在空白解决方案中分别添加各层的项目,这个解决方案需要添加6个项目,如下表:
序号 |
项目名称 |
类型 |
描述 |
1 |
BLL |
类库项目 |
业务逻辑层 |
2 |
Common |
类库项目 |
通用类库 |
3 |
DAL |
类库项目 |
数据访问层 |
4 |
DBUtility |
类库项目 |
数据库操作类 |
5 |
Model |
类库项目 |
实体层 |
6 |
Web |
WEB应用程序 |
表现层 |
添加完成后,实际解决方案项目图如图:
③设置项目的程序集名称和默认命名空间名称(如图)在每个项目上单击右键并在弹出的对话框中选择属性。
程序集名称:指定将包含程序集清单的输出文件的名称,即最后生成的文件名。
默认命名空间名称:指定添加到项目的命名空间,项目的命名前缀一般是公司的缩写。
这样三层架构已经创建完毕,可以向解决方案中添加具体的业务代码了。
2. 业务实体Model的实现
Model封装的实体类一般用于封装数据库的表或视图,用以描述业务中客观存在的实体对象。Model实体将贯穿Web、BLL、DAL三层之间进行调用和传递。
3. 数据访问层的实现
在DAL项目中,添加数据层访问类代码,实现对数据库的访问。数据库访问层采用了DBUtility和Modle层,需要添加这两层的引用。
4. 业务逻辑层的实现
①在BLL中添加一个类文件,用于实现业务逻辑处理。
②BLL层要调用到Model层的类,需要添加Model层的引用。
③BLL层通过DAL层访问数据库,需要添加DAL层的引用。
④BLL层需要用到一些公用类,添加对Common层的引用。
5. 表现层的实现
①添加一个aspx页面
②Web层会调用Model和BLL层,需要添加这两层的引用。
③Web层会用到Common层,需要添加这层的引用。
6. 实现基于工厂模式的三层架构
6.1 IDAL抽象接口层的实现
①在解决方案添加一个类库项目IDAL,并设置默认命名空间为Ecode.IDAL
②IDAL会用到Model,需要添加对Model层的引用。
6.2 实现抽象工厂模式
创建一个新项目DALFactory,作为DAL 的对象工厂,添加DataAccess类,并添加IDAL的引用。
6.3 工厂模式的三层架构图
序号 |
项目名称 |
类型 |
描述 |
1 |
BLL |
类库项目 |
业务逻辑层 |
2 |
Common |
类库项目 |
通用类库 |
3 |
DALFactory |
类库项目 |
抽象工厂 |
4 |
DBUtility |
类库项目 |
数据库操作类 |
5 |
IDAL |
类库项目 |
数据库访问层抽象接口 |
6 |
Model |
类库项目 |
实体层 |
7 |
SQLServerDAL |
类库项目 |
基于SQL Server的数据库访问 |
8 |
Web |
WEB应用程序 |
表现层 |
层于层之间的调用关系:
Web层调用BLL,BLL调用DALFactroy来创建DAL对象的对象的接口,然后返回给BLL的是IDAL 的对象。IDAL是一系列的功能的声明或者名单,接口没有实现细节,只是一些功能方法的定义。SQLDAL实现IDAL接口,并实现接口定义的所有功能。相当于所有的数据库访问被封装起来,暴漏在外面的就是IDAL接口被提供调用。这样很好的做到了封装和解耦。而Model作为一种数据结构在各层之传递和调用。