找回密码
 会员注册
查看: 325|回复: 0

ASP.Net三层架构

[复制链接]

250

主题

1

回帖

819

积分

管理员

积分
819
发表于 2024-2-29 08:54:24 | 显示全部楼层 |阅读模式

一、三层架构简述



1、三层架构的概念

(1)生活场景:
A、班级管理:班级中有不同的班委、各个班委有不同的岗位和职责,所有
的班委对班级的管理方式和态度决定了班级最终的形态和成果。
B、企业管理:企业中有不同的部门、各个部门有不同的业务和职责、所有
的部门对企业工作态度决定了企业最终的形态和成果。
(2)项目层面:
就是使用三个(多个)项目结合起来开发出一个应用系统。下层项目为上层项
目提供了接口(说白了就是可以从上层类访问下层类的方法),并且将结果返回
到上层。


提示:以下是本篇文章正文内容,下面案例可供参考

2、三层架构的组成

Asp.net站点的设计开发中,通常采用三层架构的设计,三层架构包括:数据访问层-DAL、业务逻辑层-BLL、表现层-UI。

(1)数据访问层–DAL
A、概念:封装了所有与数据库的交互操作。数据交互包括增、删、改、查
数据访问层就针对每个数据表提供增、删、改、查操作,不做业务逻辑的判断。
B、应用:类似于企业中的财务部门、只做薪酬的发放,不做企业员工绩效
的审核。
(2)业务逻辑层–BLL
A、概念:封装了所有与业务的交互操作,对业务具体问题进行逻辑判断与
执行操作。业务操作形式包括业务场景判定、业务执行条件管理、业务执行结果
封装。
B、应用:类似于于企业中技术部、市场部的管理者对下属员工的工作进行
评审。
(3)表现层–UI
A、概念:表现层又称作UI层,位于三层架构的最上层,与用户直接沟通。
换句话说表现层就是实现用户界面功能,将用户的需求传达和反馈、保证用户的
体验。
B、应用:类似于企业中各个员工最终在工资卡上当月发放的薪水金额。

3、三层架构的优势

(1)适应变化、利于维护:项目需求往往随市场的变化而发生变化,三层架构通过将各功
能模块分离,提高了项目的可维护性和代码的可重用性。
(2)适用于协作开发。目前,多数项目是团队多人协作开发的,有的负责界面设计,有的
负责数据库操作模块,三层架构将各个功能模块分离,各自负责各层的模块,有利于协作
开发。
(3)主流趋势,越来越多的企业在开发项目时采用三层架构作为项目的基础架构。三层架
构在将来会有更多的市场


二、模型层

1、模型层概念
模型层是三层(DAL数据访问层、BLL业务逻辑层、UI表现层)的连接工具,是数据库和应用程序之间数据相互连接和传输的媒介,三层之间通过传输实体类对象来实现通信。

2、模型层命名
(1)常见的命名方式有Model、Models或解决方案+Model的格式命名。
(2)模型层是单个C#类库项目,模型层中的实体类和数据表相互对应。

3、实体类结构
(1)实体类的编写只需对应数据表字段编写出实体类的属性即可。
(2)除了构造方法,实体类通常不包括其他方法。
(3)由于实体类对象作为层之间数据通信的载体,常需要在不同的场景下行类型转换,可以使用 Serializable 特性标识实体类为可序列化,以便转换实体类对象。

4、实体类编写

  1. [Serializable]
  2. 2 public class User
  3. 3 {
  4. 4 public int Id { get; set; }
  5. 5
  6. 6 public string Name { get; set; }
  7. 7
  8. 8 public string Phone { get; set; }
  9. 9
  10. 10 public int RoleId { get; set; }
  11. 11
  12. 12 public int ClassId { get; set; }
  13. 13
  14. 14
  15. 15 public User(int id, string name, string phone, int roleId, int
  16. classId)
  17. 16 {
  18. 17 Id = id;
  19. 18 Name = name;
  20. 19 Phone = phone;
  21. 20 RoleId = roleId;
  22. 21 ClassId = classId;
  23. 22 }
  24. 23 }
复制代码

三、数据访问层

1、数据访问层命名
(1)数据访问层以DAL命名或以解决方案名称+DAL的格式命名。
(2)数据库中的每张表,在数据访问层都有相对应的数据访问类。

2、数据访问层编写

  1. 数据新增
  2. 2 public static bool AddUser(User user){
  3. 3 //数据库操作
  4. 4 }
  5. 5 数据修改
  6. 6 public static bool UpdateUser(User user){
  7. 7 //数据库操作
  8. 8 }
  9. 9 数据删除
  10. 10 public static bool DeleteUser(int Id){
  11. 11 //数据库操作
  12. 12 }
  13. 13 数据查询
  14. 14 public static bool FindAllUser(){
  15. 15 //数据库操作
  16. 16 }
  17. 17 数据查询‐指定条件
  18. 18 public static bool FindAllUserBy条件(条件参数){
  19. 19 //数据库操作
  20. 20 }
复制代码

四、业务逻辑层

1、业务逻辑层命名

(1)业务逻辑层通常命名为BLL或解决方案+BLL的格式命名
(2)每个实体类在业务逻辑层有对应的业务逻辑类,类的格式为实体类名称+Manager。

2、业务逻辑层编写

  1. 数据新增 public static bool AddUser(User user){
  2. 3 //DAL层调用
  3. 4 }
  4. 5 数据修改
  5. 6 public static bool UpdateUser(User user){
  6. 7 //DAL层调用
  7. 8 }
  8. 9 数据删除
  9. 10 public static bool DeleteUser(int Id){
  10. 11 //DAL层调用
  11. 12 }
  12. 13 数据查询
  13. 14 public static bool FindAllUser(){
  14. 15 //DAL层调用
  15. 16 }
  16. 17 数据查询‐指定条件
  17. 18 public static bool FindAllUserBy条件(条件参数){
  18. 19 //DAL层调用
  19. 20 }
复制代码

五、表现层

1、表现层命名
(1)表现层通常命名为解决方案名称+Web或解决方案+UI的格式命名
(2)每个实体类在业务逻辑层有对应的业务逻辑类,类的格式为实体类名称+Manager。


来源:https://blog.csdn.net/weixin_46561196/article/details/115101840
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-26 01:22 , Processed in 0.351380 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表