三层架构
前段时间公司要求修改一个网站,打开后我疯了,一层没有都是调用的DB接口,遍地的SQL语句,非常杂乱。
什么是三层架构?
三层架构是将整个项目划分为三个层次:表现层、业务逻辑层、数据访问层。目的为了高内聚低耦合思想。
三层结构
表现层(UI):接受用户请求,数据的返回呈现。
业务逻辑层(BLL ):用来处理业务逻辑,处理用户提交的数据。
数据访问层(DAL):用来与数据库进行交互,处理增、删、改、差。
实体类对象(Model):用来存储实体类。
三层关系
UI表现层:接收用户输入的数据,并传递给业务逻辑层。
BLL业务逻辑层:把接收到的数据传递给数据访问层,并返回结果给UI层。
DAL数据访问层:负责与数据库进行交互,并将结果返回给BLL层。
什么时候需要分层?
当项目过大的时候可以分层开发,这样可以每个人负责的不同,共同进行开发。如果一个项目非常小的话,独立开发可以不分层。
操作步骤:
1、创建结构
新增三个类库分别是:BLL、DAL、Model,并建立一个UI层(winform 或 webform 或 MVC项目)设置启动项为UI层。
这里随个人喜欢可以再加一个Common层,负责处理其他常用方法。
2、引用关系
DAL要用到Model,BLL要用到DAL、CL和Model,UI要用到BLL、Model和CL。相互引用即可。
实现登陆
登陆是所有系统的入口,相信大家一般都用session,本例使用FormsAuthentication微软提供的身份认证,存储在cookie中。
假设有如下管理员表:
mif_id:唯一标识,lever等级,usernmae,psw账号密码,trueName姓名,createTime创建日期,isLock是否锁定,Power权限。
编写实体类
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace Model 7 { 8 /// <summary> 9 /// 管理员实体类 10 /// </summary> 11 public class ManagerInfo 12 { 13 /// <summary> 14 /// 标识ID 15 /// </summary> 16 public int mif_id { get; set; } 17 /// <summary> 18 /// 暂时没用 19 /// </summary> 20 public int mif_pid { get; set; } 21 /// <summary> 22 /// 管理员等级 23 /// </summary> 24 public int mif_lever { get; set; } 25 /// <summary> 26 /// 账号 27 /// </summary> 28 public string mif_userName { get; set; } 29 /// <summary> 30 /// 密码 31 /// </summary> 32 public string mif_psw { get; set; } 33 /// <summary> 34 /// 姓名 35 /// </summary> 36 public string mif_trueName { get; set; } 37 /// <summary> 38 /// 创建时间 39 /// </summary> 40 public DateTime mif_createTime { get; set; } 41 /// <summary> 42 /// 是否锁定 43 /// </summary> 44 public bool mif_isLock { get; set; } 45 /// <summary> 46 /// 权限 47 /// </summary> 48 public string mif_power { get; set; } 49 } 50 }