三层架构

前段时间公司要求修改一个网站,打开后我疯了,一层没有都是调用的DB接口,遍地的SQL语句,非常杂乱。

什么是三层架构?

三层架构是将整个项目划分为三个层次:表现层、业务逻辑层、数据访问层。目的为了高内聚低耦合思想。

三层结构

表现层(UI):接受用户请求,数据的返回呈现。

业务逻辑层(BLL ):用来处理业务逻辑,处理用户提交的数据。

数据访问层(DAL):用来与数据库进行交互,处理增、删、改、差。

实体类对象(Model):用来存储实体类。

三层关系

UI表现层:接收用户输入的数据,并传递给业务逻辑层。

BLL业务逻辑层:把接收到的数据传递给数据访问层,并返回结果给UI层。

DAL数据访问层:负责与数据库进行交互,并将结果返回给BLL层。

什么时候需要分层?

当项目过大的时候可以分层开发,这样可以每个人负责的不同,共同进行开发。如果一个项目非常小的话,独立开发可以不分层。

操作步骤:

1、创建结构

新增三个类库分别是:BLL、DAL、Model,并建立一个UI层(winform 或 webform 或 MVC项目)设置启动项为UI层

31、三层架构、AJAX+FormsAuthentication实现登陆

这里随个人喜欢可以再加一个Common层,负责处理其他常用方法。

31、三层架构、AJAX+FormsAuthentication实现登陆

2、引用关系

DAL要用到Model,BLL要用到DAL、CL和Model,UI要用到BLL、Model和CL。相互引用即可。

31、三层架构、AJAX+FormsAuthentication实现登陆

实现登陆

登陆是所有系统的入口,相信大家一般都用session,本例使用FormsAuthentication微软提供的身份认证,存储在cookie中。

假设有如下管理员表:

31、三层架构、AJAX+FormsAuthentication实现登陆

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 }
ManagerInfo.cs

相关文章:

  • 2022-12-23
  • 2021-05-29
  • 2022-12-23
  • 2021-05-24
  • 2022-12-23
  • 2022-01-15
  • 2022-12-23
猜你喜欢
  • 2022-01-24
  • 2022-12-23
  • 2021-07-25
  • 2022-02-03
  • 2021-11-15
  • 2022-02-05
相关资源
相似解决方案