为达高性能,网站使用了三层架构;以下是一些个人编写的内部教育训练资料;供参考。
GUI:表现层,BLL:业务逻辑层,DAL:数据访问层
三+层架构各层关系分析比较及其约定 | ||||||
层 |
GUI |
BLL |
DAL |
数据库 |
备注 |
|
分析项目 |
界面<->GUI |
GUI<->BLL |
BLL<->DAL |
DAL<->数据库 |
||
信息传递方法 | 方法 |
|
● |
● |
||
属性 |
● |
● |
||||
字段 |
|
● |
● |
|||
事件 |
● |
● |
● |
|
||
委托 |
● |
● |
||||
ADO.net封装 |
● |
|||||
数据传递方式 | 事件参数 |
● |
● |
● |
||
类级别的变量、对象 |
● |
● |
● |
|||
静态类(全局对象) |
● |
● |
● |
|||
方法参数 |
|
● |
● |
|||
变量、对象 |
|
● |
● |
|||
SQL语句 | 不能使用,只能通过对象等传递 |
● |
流程相关的全部放在BLL,非流程相关的放入存储过程 | |||
储存过程 |
● |
|||||
DataSet |
● |
● |
● |
● |
||
DataReader | 不能使用 |
● |
● |
|||
数据流方向 |
读取 |
● |
● |
● |
● |
|
写入 |
|
● |
● |
● |
||
执行方式 | 同步 | 默认 | 如同步方法/异步方法,同步执行/异步执行 | |||
异步 | 可选 | 可选 | ||||
单线程 | 默认 | |||||
多线程 | 可选 | 可选 | 可选 | |||
操作触发源 | R |
● |
● |
● |
注意:数据访问层不能作为CURD的触发源;数据库的存储过程、触发器可以作触发源 | |
C |
● |
● |
● |
|||
U |
● |
● |
● |
|||
D |
● |
● |
● |
|||
异常处理 | 显示友好信息,未处理全部由全局异常处理方法捕获 | 处理和记录,重定义后昌泡 | 直接昌泡(不处理)或重定义后昌泡 | 返回异常代码和记录 | 针对层而言 | |
●:表示“使用” | ||||||
特别约定: | ||||||
1、不能直接访问表,应通过视图 | ||||||
2、不能从DAL层通过SQL语句访问视图,应通过存储过程 | ||||||
3、流程相关的全部放在BLL,非流程相关的放入存储过程 |
实际运行效果:可直接访问针式英语单词查找网站。
网址-http://www.pinstudy.com 产品:英语单词查找-返回表格式结果
英语单词查询返回表格式结果,是英语单词学习、研究分析,很好的辅助系统
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架