1、为什么项目要分层开发
a、利于团队协作
b、便于代码复用(可维护性高,可拓展性高)
c、代码结构清晰,便于后期维护
d、解耦!!!
缺点:降低系统性能,有时导致级联的修改,增加了代码量
2、分哪三层
UI层(WEB层):User Interface 相当于服务员
职责:接受用户请求,并且对请求的数据进行校验,向用户响应处理结果
BLL层(业务层):相当于厨师,做功能的,做业务处理(只关注业务的处理)
DAL层(数据访问层):相当于采购,负责访问数据库(只做与数据库有关的)
工具类层common
Model实体层:用于在三层之间进行数据传递,层与层之间以对象作为载体来完成信息的传递
操作步骤:
1、新建项目–>选择模板中的其他项目类型–>VS解决方案–>空白解决方案(管理多个层)
命名:XXXSolution
2、在当前解决方案中依次添加每个层对应的项目
除了UI之外,其他所有层,包括Model,对应项目类型选择“类库”型项目
UI层的项目类型选择“ASP.NET空Web应用程序”
DAL层命名:解决方案名+.Dal
BLL层命名:解决方案名+.Bll
实体层:解决方案名+.Model
删除默认Class
"类库"型项目
将Web层对应的项目设置为整个解决方案的启动项目(加粗显示)
3、通过添加引用的方式建立层与层之间的依赖关系
三次添加引用
案例:系统登录
1、先写实体类
类名=表名 类中的字段=表中的字段
(可以prop隐藏字段,也可以ctrl+r+e)
作用:用来以对象的形式封装数据(数据打包)
2、编写数据访问层代码
数据访问类的命名:表名+DAO
每张表在DAL层中都应该对应一个Class,这个类就专门负责该表的CRUD操作
注意:项目中每个类的namespace默认和项目名保持一致
(如果同一个项目中namespace一致,则互相引用时不需要引用命名空间)
3、编写业务逻辑代码
命名:表名(模块)+Service
XXXServic对XXXDAO的强依赖
在业务类中创建一个对应的DAO类型对象
4、编写Web层
准备:
添加一个【一般处理程序】 这个一般处理程序类似Java中的Servlet
具体操作步骤:
First,创建解决资源方案管理器
新建项目–>选择模板中的其他项目类型–>VS解决方案–>空白解决方案(管理多个层)
命名规范:XXXSolution
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TP31EejpWT0UkaNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL3YjN4ITOwITM1EDOwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
Second,在当前解决方案中依次添加每个层对应的项目
添加新的项目–>选择对应类型
除了UI之外,其他所有层(包括Model),对应项目类型选择“类库”型项目
UI层的项目类型选择“ASP.NET空Web应用程序”
DAL层命名:解决方案名+.Dal
BLL层命名:解决方案名+.Bll
实体层:解决方案名+.Model
UI层:解决方案名+.Web 或解决方案名+.UI
删除默认Class
将Web层对应的项目设置为整个解决方案的启动项目(加粗显示)------->右键------>设为启动项目
Third,通过添加引用的方式建立层与层之间的依赖关系
层与层之间的依赖关系: 上层依赖下层,不能跳跃
三层中的每一层都依赖Model层进行传递
UI依赖BLL和Model
BLL依赖DAL和Model
DAL依赖于Model
添加方式:引用(右击)---->添加引用----->解决方案---->项目----->选中此层需要依赖的层----->确定
此时一个最基本,最简单的三层就搭建完成了
基于最基本三层的增删改查,提取码o227