Asp.Net之三层架构
三层架构之理论:
通常意义上讲的三层架构就是将整个项目应用划分为:表现层(UI),业务逻辑层(BLL),数据访问层(DAL)。
与传统的二层架构的区别在于在用户界面(UI)和数据库服务器之间,添加中间层。而中间层又可
划分为业务逻辑层(BLL),数据访问层(DAL)和数据对象模型层(Model)。其中的数据对象模型层(Model)可
以把表当做一个对象来处理,充分体现了面向对象的思想。三层架构因为"高内聚,低耦合"的特性,更利于
系统的设计和开发,同时为可能的变更提供了更小的单元,有利于系统的维护和扩展。
分层式结构究竟其优势何在?Martin Fowler在《Patterns of Enterprise Application Architecture》一书中给出了答案:
1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
概括来说,分层式设计可以达至如下目的:分散关注、松散耦合、逻辑复用、标准定义。
1.表现层(UI):主要提供软件系统与用户交互的接口界面,实现和用户的交互,接收用户请求或返回用户请求的数据结果展现。
2.业务逻辑层(BLL):业务逻辑层起到承上启下的作用,用于对上下交互的数据进行处理和传递。 ,实现业务目标。
3.数据访问层(DAL):数据访问包括访问数据库系统、二进制文件、文本文档或是 XML 文档。该层负责直接操纵数据库,针对数据表的Select,Insert,Update,Delete的操作。

4 业务实体Model:用于封装实体类数据结构,一般用于映射数据库的数据表或视图,用以描述业务中客观存在的对象。Model分离出来是为了更好地解耦,为了更好地发挥分层的作用,更好地进行复用和扩展,增强灵活性。
5 通用类库Common:通用的辅助工具类,如数据校验、缓存处理、加解密处理等。为了让各个层之间复用,也单独分离出来,作为独立的模块使用。
三层架构如图:

TIPS:
1.
三层架构是设计思想,它的形式可以使class,文件夹,工程...,如果未来追求形式,混淆了内容和功能上的根本区别,就是本末倒置了。
参考文献:
常用的三层架构设计:http://www.uml.org.cn/zjjs/200911192.asp
软件开发过程中三层架构的解析和搭建 :http://www.xxxtgc.com/data/attachment/image/thumbnails/200912/2009122215484989.pdf
ADO.NET:http://202.38.64.11/~shizhu/DotNet/ADO.pdf
DataTable,DataView 和 DataGrid:http://read.pudn.com/downloads94/ebook/379198/DataTable,DataView.pdf
Asp.Net之三层架构的更多相关文章
- ASP.NET的三层架构(DAL,BLL,UI)
ASP.NET的三层架构(DAL,BLL,UI) BLL 是业务逻辑层 Business Logic Layer DAL 是数据访问层 Data Access Laye ...
- Asp.Net MVC三层架构之autofac使用教程
开发环境:vs2015..net4.5.2.mvc5.ef6 Autofac简介 IOC控制反转(Inversion of Control,缩写为IOC),Autofac是一个开源的依赖注入框架,Au ...
- asp.net中三层架构与mvc之区别?
对于标题中的问题,如果是没有同时接触三层架构和mvc的初级.net开发人员,想必一定会非常糊涂和混淆.关于此我也百度过N回,看过N多帖子和 回答,但几乎没有人能表述清楚.近期我从典型mvc+entit ...
- ASP.NET创建三层架构图解详细教程
1.新建项目 2.创建Visual Studio解决方案 3.再创建项目 4.选择类库类型 5.依次创建bll(业务逻辑层),dal(数据访问层)和model(模型层也可以叫实体层) 6.添加一个网站 ...
- asp也玩三层架构(有源代码)
实体类 <% Class UserInfo Private mintId Public Property Let UserId(intUserId) mintId = intUserId End ...
- asp.net 3.三层架构
1.新建项目和类库 CZBK.ItcastProject (空白项目) CZBK.ItcastProject.BLL (类库) -- 逻辑业务 CZBK.ItcastProject.Common (类 ...
- ASP.NET三层架构的分析
BLL 是业务逻辑层 Business Logic Layer DAL 是数据访问层 Data Access Layer ASP.NET的三层架构(DAL,BLL,UI ...
- mvc和三层架构到底有什么区别
原文地址:http://zhidao.baidu.com/question/82001542.html?qbl=relate_question_3&word=MVC%20%CA%FD%BE%D ...
- ASP.Net MVC+EF架构
ASP.Net MVC是UI层的框架,EF是数据访问的逻辑. 如果在Controller中using DbContext,把查询的结果的对象放到cshtml中显示,那么一旦在cshtml中访问关联属性 ...
随机推荐
- svm中的数学和算法
支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本.非线性及高维模式识别中表现出很多特有的优势,并可以推广应用到函数拟合等其它 ...
- Windows下nc文件传输
起初用的一下命令: 接收端:nc –n –l –p port –vv > xxx 发送端:nc –n ip port < yyy 但是发现数据传输完成后,不会自动断开连接,要手动的断开,这 ...
- 白话JAVA守护线程
OneCoder(苦逼Coder)原创,转载请务必注明出处: http://www.coderli.com/archives/daemon-thread-plain-words/ 关于“白话”:偶然想 ...
- jQuery的主要用法
一.选择网页元素jQuery的基本设计和主要用法,就是"选择某个网页元素,然后对其进行某种操作".这是它区别于其他函数库的根本特点. 使用jQuery的第一步,往往就是将一个选择表 ...
- Daily Sentence
2016-12-05 08:59:15 Knowing yourself is the beginning of all wisdom. 智者始于自知. 2016-05-01 19:38:25 The ...
- [Linked List]Swap Nodes in Pairs
Total Accepted: 73777 Total Submissions: 219963 Difficulty: Medium Given a linked list, swap every t ...
- git撤销修改
在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交: $ git add test.txt $ git commit -m "add test. ...
- OpenGL鼠标旋转图像
(鼠标旋转功能) #include <iostream> using namespace std; #include<gl/glut.h> GLfloat transx,tra ...
- 关于各种数据库 Insert时同时取到Id的操作
对数据库的操作,在Insert的同时获取到Id,保证原子性操作.而不是,先取Id,然后再插入到数据库等操作. Oracle: 使用Oracle自带的 Returning into 语句,具体代码示例如 ...
- 一个简单的shell脚本
一个简单的shell脚本 一个简单的shell脚本 编写 假设我想知道目前系统上有多少人登录,使用who命令可以告诉你现在系统有谁登录: 1.[KANO@kelvin ~]$ who2.KANO tt ...