C#三层架构搭建
2024-09-04 13:54:50
一.简介
主要分为:界面层(User Interface layer),业务逻辑层(Business Logic Layer),数据访问层(Data access layer)
1.作用
界面层(UI) | 提供界面,用于与用户交互 | 包含窗体和自定义控件 |
业务逻辑层(BLL) | 处理业务逻辑,用于UI层调用 | 主要负责对数据层的操作 |
数据访问层(DAL) | 访问数据库的类,用于BLL层调用 | 数据库,二进制文件,文本文档,XML文档等 |
另外加上,实体层Models,用于抽象出实体类
分层目的:高内聚低耦合
例:需要更换界面情况下,直接更换UI层就可以了
2.关系图
二.搭建
1.创建空白解决方案
2.创建BLL
3.创建DAL层
4.创建Models
5.创建UI层
6.关联各层之间的关系
关系图:
(1)UI引用BLL和Models
(2)BLL引用DAL和Models
(3)DAL引用Models
7.将UI项目设置为启动项
三.规则
⒈ 最关键的,UI层只能作为一个外壳,不能包含任何业务逻辑(BizLogic)的处理过程
⒉ 设计时应该从BLL出发,而不是UI出发. BLL层在API上应该实现所有BizLogic,以面向对象的方式
⒊ 不管数据层是一个简单的SqlHelper也好,还是带有Mapping过的Classes也好,应该在一定的抽象程度上做到系统无关
⒋ 不管使用COM+(Enterprise Service),还是Remoting,还是WebService之类的远程对象技术,不管部署的时候是不是真的分别部署到不同的服务器上,最起码在设计的时候要做这样的考虑,更远的,还得考虑多台服务器通过负载均衡作集群
参考:
https://baike.baidu.com/item/%E4%B8%89%E5%B1%82%E6%9E%B6%E6%9E%84/11031448?fr=aladdin
最新文章
- Linux下安装Java环境配置步骤详述
- mybatis一个怪异的问题: Invalid bound statement not found
- 平面直接坐标系线段相交问题(小Q(钟神)的问题)
- 修改Apache的最大连接数
- HashMap和Hashtable及HashSet的区别
- c语言指针用法
- DedeCms autoindex和itemindex使用介绍
- storm高级原语-Transactional topology
- Windows多线程同步系列之三-----事件对象
- SharePoint Framework 基于团队的开发(三)
- Moco使用简单指导
- SuperMap空间数据处理与制图操作短视频汇总
- jvm系列五、jvm垃圾回收机制、jvm各种参数及调优
- Makefile 中 ifeq ifneq 等用法
- ALGO-17_蓝桥杯_算法训练_乘积最大(DP)
- http etag
- node.js 递归创建多级目录
- xcode6 新建项目真机调试无法全屏
- myeclipse 10安装之后该做些什么?
- Spoken English Practice(I really hate to give her up, oh ,I know, you should take her.)
热门文章
- ubuntu为什么没有/etc/inittab文件? 深究ubuntu的启动流程分析
- PHP生成唯一固定长度邀请码
- php根据年月获取当月天数。
- mysql设计与开发
- jQuery解析JSON出现SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data
- oracle ---中文乱码问题
- nodejs中的util.inspect.js
- Python Twisted系列教程15:测试诗歌
- HTTP之报文
- windows命令行 查询/kill 进程