简介:三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(WebUI)、业务逻辑层(BusinessLogicLayer)、数据访问层(DataAccessLayer),公共层(ModelLayer)。区分层次的目的即为了“高内聚,低耦合”的思想。

一、应用三层架构的优点

三层结构适合群体开发,每人可以有不同的分工,协同工作使效率倍增;各做各的模块,降低开发人员能力要求;方便系统功能的扩展以及后期的维护工作;最大优点是它的安全性。用户端只能通过逻辑层来访问数据层,减少了入口点,把很多危险的系统功能都屏蔽了。可以更好的支持分布式计算环境。逻辑层的应用程序可以有多个机器上运行,充分利用网络的计算功能。分布式计算的潜力巨大,远比升级CPU有效。

二、手动搭建三层架构

   软件 VS 2008

(当然可以用动软.Net代码生成器等自动生成三层架构)

1.建立空白的解决方案

   法1) 文件/新建/项目弹出对话框 选择“其他项目类型”下面的“Visual Studio 解决方案”  单击“空白解决方案” 名称:ling  位置:D/ 确定 完成空白方案搭建

法2) Shift+Ctrl+N 弹出对话框 选择“其他项目类型”下面的“Visual Studio 解决方案”

2.建立三个类库

1) 在解决方案资源管理器中,右击“解决方案ling”选择“ 添加”下面的“新建项目”

2) 在弹出对话框中选择“Visual C#”里面的“类库”

名称:ModelLayer(简写Model)  公共层 位置:D:/ling “确定” 完成一个类库的添加

用相同的方法建立以下两个类库:

名称:DataAccessLayer(简写DAL) 数据访问层    位置:D:/ling

名称:BusinessLogicLayer(简写BLL) 业务逻辑层 位置:D:/ling

3.建立表现层

在解决方案资源管理器中,右击“解决方案ling”选择“ 添加”下面的“新建网站”

在弹出对话框中选择“Asp.NET 网站” 位置:文件系统, D/ling/WebUI

语言:Visual C#(这里值得注意网站的路径为:D/ling/WebUI)

“确定” 完成表现层的搭建

这样我们就完成了基本结构的搭建

4.添加各层之间的引用

4.1 数据访问层(DataAccessLayer)对公共层(ModelLayer)引用

1) 在解决方案资源管理器中,右击“DataAccessLayer”选择“ 添加应用”

2) 弹出“添加引用”对话框,单击“项目” 选择“ModelLayer”

单击“确定” 完成对公共层的引用

4.2 业务逻辑层(BusinessLogicLayer)对DataAccessLayer和ModelLayer引用

1) 在解决方案资源管理器中,右击“BusinessLogicLayer”选择“ 添加应用”

2) 弹出“添加引用”对话框,单击“项目” 选择“DataAccessLayer、ModelLayer”

单击“确定” 完成对DataAccessLayer和ModelLayer引用

4.3 表现层(WebUI)对BusinessLogicLayer、DataAccessLayer、ModelLayer引用

1) 在解决方案资源管理器中,右击“D/ling/WebUI/”选择“ 添加应用”

2) 弹出“添加引用”对话框,单击“项目”选择“DataAccessLayer、ModelLayer、BusinessLogicLayer”

单击“确定” 完成对DataAccessLayer、ModelLayer、BusinessLogicLayer引用

这样我们的项目是不能运行的,不信自己试试。

5.设置起始项目以及起始页

1) 在解决方案资源管理器中,右击“D/ling/WebUI/”单击“ 设为启动项目(A)”

2) 在解决方案资源管理器中,单击“D/ling/WebUI/”里面的“Default.aspx”(默认的,可改名)右击“ 设为启始页(P)”

3) 在解决方案资源管理器中,右击“解决方案ling”单击“重新生成解决方案(R)”

OK了,这样就完成了一个三层B/S的框架了。至于具体实现的细节这里就不讨论了,改天空了再说。

原文链接:.NET完全手动搭建三层B/S架构

最新文章

  1. POJ 1995 快速幂模板
  2. Tomcat在Linux上的安装与配置
  3. paper 69:Haar-like矩形遍历检测窗口演示Matlab源代码[转载]
  4. STM32L152 Keil 开发环境 显示Internal command error Flash down
  5. 转载[POJ题型分类]
  6. JavaScript进阶学习的一些建议
  7. pomelo
  8. Eclipse和debug的一些快捷键
  9. MYSQL报错注入方法整理
  10. IOS中DES与MD5加密方案
  11. SQLyog键盘快捷方式
  12. docker(六) 使用docker-maven-plugin插件构建docker镜像(已过时)
  13. python框架之Django(5)-O/RM
  14. 洛谷P1605 迷宫 (DFS)
  15. Java 容器源码分析之ArrayBlockingQueue和LinkedBlockingQueue
  16. IO流_文件切割与合并
  17. 部署OpenStack问题汇总(三)--Failed to add image
  18. Linux启动vi编辑器时提示E325: ATTENTION解决方案
  19. python ros 使用launch文件启动脚本
  20. [DeeplearningAI笔记]序列模型2.1-2.2词嵌入word embedding

热门文章

  1. java语言的各种输入情况(ACM常用)
  2. jquery 提示语淡入效果
  3. 为什么推荐用ui-router替代ngRoute
  4. Angular入门教程一
  5. QT5.9 新特性与版本回顾
  6. HiJson工具 && 火狐浏览器中的jsonHandle插件(以及乱码问题的解决)-->来转换json串的格式
  7. Python 获得汉字笔画
  8. zabbix共享内存报错cannot create semaphore set
  9. 启用代理导致 有道云笔记未知错误、网络错误和OneDrive断线
  10. PLSQL Developer V10 注册码