三层架构之理论:

通常意义上讲的三层架构就是将整个项目应用划分为:表现层(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的操作。

简单来说就是:UI层调用BLL,BLL调用DAL,数据用Model进行传递,Model为各层之间架起了数据传输的桥梁。
参考模型:UI<-->Model<-->BLL<-->Model<-->DAL

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

ASP.NET开发数据库三层架构系统初探:https://app.yinxiang.com/shard/s18/res/81217de3-7856-494b-a05a-a3a8a094d7d7/ASP%EF%BC%8ENET%E5%BC%80%E5%8F%91%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%89%E5%B1%82%E6%9E%B6%E6%9E%84%E7%B3%BB%E7%BB%9F%E5%88%9D%E6%8E%A2.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之三层架构的更多相关文章

  1. ASP.NET的三层架构(DAL,BLL,UI)

    ASP.NET的三层架构(DAL,BLL,UI) BLL   是业务逻辑层   Business   Logic   Layer DAL   是数据访问层   Data   Access   Laye ...

  2. Asp.Net MVC三层架构之autofac使用教程

    开发环境:vs2015..net4.5.2.mvc5.ef6 Autofac简介 IOC控制反转(Inversion of Control,缩写为IOC),Autofac是一个开源的依赖注入框架,Au ...

  3. asp.net中三层架构与mvc之区别?

    对于标题中的问题,如果是没有同时接触三层架构和mvc的初级.net开发人员,想必一定会非常糊涂和混淆.关于此我也百度过N回,看过N多帖子和 回答,但几乎没有人能表述清楚.近期我从典型mvc+entit ...

  4. ASP.NET创建三层架构图解详细教程

    1.新建项目 2.创建Visual Studio解决方案 3.再创建项目 4.选择类库类型 5.依次创建bll(业务逻辑层),dal(数据访问层)和model(模型层也可以叫实体层) 6.添加一个网站 ...

  5. asp也玩三层架构(有源代码)

    实体类 <% Class UserInfo Private mintId Public Property Let UserId(intUserId) mintId = intUserId End ...

  6. asp.net 3.三层架构

    1.新建项目和类库 CZBK.ItcastProject (空白项目) CZBK.ItcastProject.BLL (类库) -- 逻辑业务 CZBK.ItcastProject.Common (类 ...

  7. ASP.NET三层架构的分析

    BLL   是业务逻辑层   Business   Logic   Layer DAL   是数据访问层   Data   Access   Layer ASP.NET的三层架构(DAL,BLL,UI ...

  8. mvc和三层架构到底有什么区别

    原文地址:http://zhidao.baidu.com/question/82001542.html?qbl=relate_question_3&word=MVC%20%CA%FD%BE%D ...

  9. ASP.Net MVC+EF架构

    ASP.Net MVC是UI层的框架,EF是数据访问的逻辑. 如果在Controller中using DbContext,把查询的结果的对象放到cshtml中显示,那么一旦在cshtml中访问关联属性 ...

随机推荐

  1. 查看实时公网ip

    icanhazip.com 使您在任何地方知道你的公网IP地址 icanhazip.com 使你在任何地方知道你的公网IP地址 icanhazip.com 使你在任何地方知道你的公网IP地址 ican ...

  2. curl+个人证书(又叫客户端证书)访问https站点

    摘自http://blog.csdn.net/chary8088/article/details/22990741 curl+个人证书(又叫客户端证书)访问https站点 目前,大公司的OA管理系统( ...

  3. C#接口的使用【转】

    我们定义一个接口public interface IBark{   void Bark();}再定义一个类,继承于IBark,并且必需实现其中的Bark()方法public class Dog:IBa ...

  4. Android二维码开源项目zxing编译

    ZXing是一个开放源代码的,用Java实现的多种格式的1D/2D条码图像处理库,它包括了联系到其它语言的port.Zxing能够实现使用手机的内置的摄像头完毕条形码的扫描及解码.该项目可实现的条形码 ...

  5. [DevExpress]图表开发工具类 ChartUtils

    /// <summary> /// 基于.NET 3.5的Chart工具类;对应的DevExpress版本:12.1.7; /// </summary> public stat ...

  6. RadioButton、CheckBox与ToggleButton

    1.RadioButton RadioButton被称作为单选框,通常都是以组的形式出现,可以在一组控件中选择一个. RadioButton的使用首先需要加入<RadioGroup/>,在 ...

  7. NHibernate各种数据库连接参数文件配置方法说明

    //NHibernate各种数据库连接参数文件配置方法说明 //配置文件Config/Hibernate.cfg.xml内容如下所示: <?xml version="1.0" ...

  8. TCP/IP详解之:IP选路 动态选路协议

    第九章 IP选路 netstat -rn 显示路由表 初始化路由表的两种方法: 方法1:在配置文件中指定静态路由(不常用) 方法2:运行路由守护程序 或者 使用ICMP路由器发现报文 没有到达目的地的 ...

  9. OpenGL鼠标旋转图像

    (鼠标旋转功能) #include <iostream> using namespace std; #include<gl/glut.h> GLfloat transx,tra ...

  10. Android.Hack.02_Animations

    #01# TextView 和 ImageView TextView和Imageview切换卡顿,为了实现更好的切换,可以用动画来实现,系统自带的TextViewSwitcher 和ImageView ...