最近想学习ASP.NET建网站,关于ASP.NET或VS2005 搭建三层架构的理解,网上摘录了一些资料,对于第(2)点的讲解让我理解印象深刻,如下:

(1)为何使用N层架构?

因为每一层都可以在仅仅更改很少量的代码后,就能放到物理上不同的服务器上使用,因此结构灵活而且性能更佳。此外,每层做些什么其它层是完全看不到的,因此更改、更新某层,都不再需要重新编译或者更改全部的层了。这是个很强大的功能。例如,如果把数据访问代码与业务逻辑层分离,当数据库服务器更改后,你只需要更改数据访问的代码,因为业务逻辑层是不变的,因此不需要更改或者重新编译业务逻辑层。

一个N层的应用程序通常有三层:表现层、业务层和数据层。下面让我们看看每层都做些什么。

表现层(Presentation Layer)

表现层用于用户接口的展示,以及用业务层的类和对象来“驱动”这些接口。

在ASP.NET中,该层包括aspx页面、用户控制、服务器控制以及某些与安全相关的类和对象业务层(Business Tier)

业务层用于访问数据层,从数据层取数据、修改数据以及删除数据,并将结果返回给表现层。

在ASP.NET中,该层包括使用SqlClient或OleDb从SQL Server或Access数据库取数据、更新数据及删除数据,并把取得的数据放到DataReader或DataSet中返回给表现层。返回的数据也许只有一个整型数字,比如一个表的行记录数目,但这也要用数据层的数据进行计算。

BLL和DAL

通常该层被划分成两个子层:业务逻辑层(Business Logic Layer,BLL)和数据访问层(Data Access Layers,DAL)。业务逻辑层在数据访问层之上,也就是说BLL调用DAL的类和对象。DAL访问数据并将其转给BLL。

在ASP.NET中,该层可以用SqlClient或OleDb从SQL Server或Access数据库取数据,把数据通过DataSet 或DataReader的形式给BLL,BLL处理数据给表现层。有的时候,例如直接把DataSet 或DataReader送给表现层的时候,BLL是一个透明层数据层(Data Tier)

数据层是数据库或者数据源。在.NET中,通常它是一个SQL Server或Access数据库,但不仅限于此两种形式,它还可能是Oracle,mySQL,甚至是XML。

(2)其实很简单。。。你既然是用ado.net 那么你现在肯定在做winform了?而不是web开发 对吗? 这里我先简单的给你说一下:你建的那个winform 页面。。也就是框体 就是 页面显示层(UI层)你的所有操作数据库的方法 全部放到一个类库中去就是数据访问层。(DAL)你页面需要用的方法全部到业务逻辑层(BLL)中去找。。。BLL层去调用DAL里面的所有方法 以备UI层使用 就ok了。。。

=================================================================

(转)VS2005 搭建三层架构(图文结合)

http://yrq205.blog.163.com/blog/static/4767214020101020101631157/

本节通过一个简单的登录功能实现,讲述如何搭建三层结构。

1.搭建数据访问层

(1)打开VS 2005开发环境,依次选择"文件"→"新建"→"项目"命令,如图18-3所示。

(2)在打开的"新建项目"对话框中,选择项目类型为"Visual Studio解决方案",选择模板为"空白解决方案"。然后填写解决方案的名称为"MyBookShop",并指定保存位置,如图18-4所示。

        

(3)在"解决方案资源管理器"中,在解决方案名称上单击鼠标右键,在弹出的快捷菜单中选择"添加"→"新建项目"命令,如图18-5所示。

(4)在打开的"新建项目"对话框中,选择项目类型为"Visual C#",选择模板为"类库"。填写项目的名称为"MyBookShop.DAL",该项目用于实现数据访问层。此时项目的保存位置已经默认输入了,是刚才 创建空白解决方案时产生的路径,如图18-6所示。

2.搭建业务逻辑访问层

搭建业务逻辑层的步骤与搭建数据访问层类似,不同的是需要重新填写项目名称为"MyBookShop.BLL",如图18-7所示。

3.搭建表示层

(1)在"解决方案资源管理器"中,在解决方案名称上单击鼠标右键,在弹出的快捷菜单中选择"添加"→"新建网站"命令,如图18-8所示。

(2)在打开的"添加新网站"对话框中,选择"ASP.NET网站",选择位置为"文件系统",并设置网站的路径,如图18-9所示。

在三层结构开发中,通常还会使用模型层。模型层包含所有与数据库中的表相对应的实体类。表示层、业务逻辑层和数据访问层三层之间通过传递实体对象来达到数据传递的目的。

创建模型层的步骤与搭建业务逻辑层和数据访问层类似,不同的是需要重新填写项目名称为"MyBookShop.Models",如图18-10所示。

4.添加各层之间依赖关系

此时,虽然三层结构的基本框架已经搭建成功,但是各层之间是独立的。只有添加依赖关系,才能让它们相互协作。

(1)添加表示层对业务逻辑层及模型层的依赖。在"解决方案资源管理器"中,在表示层上单击鼠标右键,在弹出的快捷菜单中选择"添加引用"命令,如图18-12所示。

(2)在打开的"添加引用"对话框中,选择"项目"选项卡,选中项目名称为"MyBookShop.BLL"和"MyBookShop.Models"的两个项目,单击"确定"按钮,如图18-13所示。

(3)使用上述方法在业务逻辑层中添加对数据访问层和模型层的依赖,以及数据访问层对模型层的依赖。

至此,三层结构及各层之间的依赖关系创建完毕。【下面以登录为例,测试各层之间如何协同工作的。(略)】

关于ASP.NET或VS2005 搭建三层架构的理解的更多相关文章

  1. CS通用项目系统搭建——三层架构第一天

    CS通用项目:使用三层架构进行搭建 三层架构: 表现层(UI(User Interface)):展示给用户的层面,包含窗体控件数据等信息. 业务逻辑层(BLL(Business Logic Layer ...

  2. 用ASP.NET MVC5 +SQLSERVER2014搭建多层架构的数据库管理系统

    用http://ASP.NET MVC5 +SQLSERVER2014搭建多层架构的数据库管理系统 背景:前段时间,给一家公司做外包(就是图标是朵菊花那家).为了尽快实现交付,网上四处寻找适合中小型企 ...

  3. 【ASP.NET开发】.NET三层架构简单解析

    对于三层架构来说,主要是使用设计模式的思想,对于项目的各个模块实现"高内聚,低耦合"的思想.这里就不做详细的介绍了,如果大家有兴趣,可以阅读软件工程和设计模式相关文章. 对于三层架 ...

  4. .Net Core建站(3):搭建三层架构

    啊,终于到写三层架构的时候了,老实说,我都不知道自己这个算不算三层架构,姑且就当它是吧,具体属于哪一个体系,希望有大佬指点一下(^o^)/ 不晓得有人注意到没有,我写了三篇博客,然后就改了三次标题ヽ( ...

  5. 利用Dapper ORM搭建三层架构

    利用Dapper关系对象映射器写的简单的三层架构.Dapper:StackOverFlow在使用的一个微型的ORM,框架整体效率较高,轻量级的ORM框架.网上有较多的扩展.此处只是简单的调用Dappe ...

  6. Asp.Net T4模板生成三层架构

    1.T4 Editor安装 T4:根据模板生成文件,例如model等 vs中默认t4模板编码是没有提示和高亮的,需使用以下插件,免费的 https://t4-editor.tangible-engin ...

  7. 搭建三层架构(ASP.NET MVC+EF)

    昨天面试的时候最后做了一道上机题,竟然跪了,跪就跪在没有搭好框架,连接数据库总是程序报错. 回来之后亲自搭了一下框架,弄好后放到博客上.下图就是搭建好后,整个框架的结构就是这样,下面对框架中的文件进行 ...

  8. ASP.NET MVC5+EF6搭建三层实例

    一.创建项目解决方案 1.model层.BLL层.Dal层.Common层,都是类库 2.UI层使用MVC5 二.使用EF链接数据库 1.创建实体数据模型 2.选择来自数据库EF设计器 3.创建数据库 ...

  9. CS通用项目系统搭建——三层架构第二天 (补一篇完整的SqlHelper)

    #region ExecuteNonQuery(如果是增,删,修) /// <summary> /// 执行sql命令 /// </summary> /// <param ...

随机推荐

  1. 最快速的Android开发环境搭建ADT-Bundle及Hello World

    ADT-Bundle for Windows 是由Google Android官方提供的集成式IDE,已经包含了Eclipse,你无需再去下载Eclipse,并且里面已集成了插件,它解决了大部分新手通 ...

  2. 使用 jsPlumb 绘制拓扑图 —— 异步加载与绘制的实现

    本文实现的方法可以边异步加载数据边绘制拓扑图. 有若干点需要说明一下: 1.  一次性获取所有数据并绘制拓扑图, 请参见文章: <使用 JsPlumb 绘制拓扑图的通用方法> ; 本文实现 ...

  3. php用mysql函数出错

    很可能只是因为你忘了装mysql扩展 apt-get install php5-mysql

  4. 谈谈JDK线程的伪唤醒

    在JDK的官方的wait()方法的注释中明确表示线程可能被"虚假唤醒",JDK也明确推荐使用while来判断状态信息.那么这种情况的发生的可能性有多大呢? 使用生产者消费者模型来说 ...

  5. Java菜鸟培训第二天

    HTML——超文本标记语言…………… 静态网页:不需要访问数据库. 动态网页:在网上发布的好的,我们能通过网络浏览到的都是动态的,需要访问数据库. <html>--开始标签 <hea ...

  6. 关于Extjs MVC模式上传文件的简单方式

    Extjs新手研究上传文件的事情估计是件很头痛的问题,毕竟,我就在头痛.最近两天一直在忙文件上传问题,终于小有收获. 用的是Extjs+MVC3.0+EF开发,语言为C#.前台window代码显示列内 ...

  7. 任意阶幻方(魔方矩阵)C语言实现

    魔方又称幻方.纵横图.九宫图,最早记录于我国古代的洛书.据说夏禹治水时,河南洛阳附近的大河里浮出了一只乌龟,背上有一个很奇怪的图形,古人认为是一种祥瑞,预示着洪水将被夏禹王彻底制服.后人称之为&quo ...

  8. Java注释@Override

    @Override指定方法覆载.它可以强制一个子类必须覆盖父类的方法. package ch14; /** * Created by Jiqing on 2016/12/27. */ public c ...

  9. STM32学习笔记(九) 外部中断,待机模式和事件唤醒

    学会知识只需要不段的积累和提高,但是如何将知识系统的讲解出来就需要深入的认知和系统的了解.外部中断和事件学习难度并不高,不过涉及到STM32的电源控制部分,还是值得认真了解的,在本文中我将以实际代码为 ...

  10. Windows2012安装IIS和FTP

    Windows2012安装IIS和FTP  1.打开Windows 2012的服务器管理器,选择 管理→添加角色和功能  2.进入 添加角色和功能向导,选择 “Web服务器(IIS)” 3.根据情况选 ...