`

深入探讨:如何理解.Net的三层架构

    博客分类:
  • .net
阅读更多
各层的作用
    1:数据数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务.
    2:业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。
    3:表示层:主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:aspx, 如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。
具体的区分方法

    1:数据数据访问层:主要看你的数据层里面有没有包含逻辑处理,实际上他的各个函数主要完成各个对数据文件的操作。而不必管其他操作。
    2:业务逻辑层:主要负责对数据层的操作。也就是说把一些数据层的操作进行组合。
    3:表示层:主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。

三层结构解释

    所谓三层体系结构,是在客户端与数据库之间加入了一个中间层,也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。 三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交换.
    开发人员可以将应用的商业逻辑放在中间层应用服务器上,把应用的业务逻辑与用户界面分开。在保证客户端功能的前提下,为用户提供一个简洁的界面。这意味着如果需要修改应用程序代码,只需要对中间层应用服务器进行修改,而不用修改成千上万的客户端应用程序。从而使开发人员可以专注于应用系统核心业务逻辑的分析、设计和开发,简化了应用系统的开发、更新和升级工作。
    那么为什么要应用“中间业务层”呢?举些例子:
    我们假设有一段登录代码,则可以这样处理Web程序,外观层负责接收前台页面的数据,然后传给中间层,中间层对数据进行处理,比如格式化,防SQL注入等等一些,这样的数据再传给数据访问层然后与数据库进行操作,比如与数据库的用户名和密码匹配等等一些代码。
    “中间业务层”的用途有很多,例如:验证用户输入数据、缓存从数据库中读取的数据等等……但是,“中间业务层”的实际目的是将“数据访问层”的最基础的存储逻辑组合起来,形成一种业务规则。例如:“在一个购物网站中有这样的一个规则:在该网站第一次购物的用户,系统为其自动注册”。这样的业务逻辑放在中间层最合适:
    在“数据访问层”中,最好不要出现任何“业务逻辑”!也就是说,要保证“数据访问层”的中的函数功能的原子性!即最小性和不可再分。“数据访问层”只管负责存储或读取数据就可以了。
    完善的三层结构的要求是:修改表现层而不用修改逻辑层,修改逻辑层而不用修改数据层。否则你的应用是不是多层结构,或者说是层结构的划分和组织上是不是有问题就很难说.不同的应用有不同的理解,这只是一个概念的问题.

    理解ASP.NET中的三层结构——为什么要分三层?

    我们用三层结构主要是使项目结构更清楚,分工更明确,有利于后期的维护和升级。它未必会提升性能,因为当子程序模块未执行结束时,主程序模块只能处于等待状态。这说明将应用程序划分层次,会带来其执行速度上的一些损失。但从团队开发效率角度上来讲却可以感受到大不相同的效果。
    需要说明一下,三层结构不是.NET的专利,也不是专门用在数据库上的技术。它是一种更加普适的架构设计理念。
    对于表的综合查询方法是:
    先对主表查询,调用主表所对应的DL。再根据主表的记录分别对每一个子表进行查询。将自表的查询结果添加的主表后,形成一个大的查询集合。
    对于表的操作(增删改):
    此时只对主表进行操作,调用主表对应的DL中的操作方法。
    RL层是逻辑判断层,主要是对页面上传入的数据进行逻辑判断。RL层之上就是UI
    如何建立一个三层体系结构解决方案:
新建一个空白解决方案。然后:
    “添加”-“新建项目”-“其他项目”-“企业级模版项目”-“C#生成块”-“数据访问”(数据层,下简称D层)

    “添加”-“新建项目”-“其他项目”-“企业级模版项目”-“C#生成块”-“业务规则”(业务层,下简称C层)

    “添加”-“新建项目”-“其他项目”-“企业级模版项目”-“C#生成块”-“Web用户界面”(界面层,下简称U层)

    右键点“解决方案”-“项目依赖项”,设置U依赖于D、C,C依赖于D。
    对U添加引用D、C,对C添加引用D。
    到此为止,一个三层的架子建立起来了。我上面说的很具体很“傻瓜”,知道的人觉得我废话,其实我这段时间很强烈的感觉到非常多的人其实对这个简单的过程完全不了解。虽然不反对建2个“空项目”和1个“Asp net Web应用程序项目”也可以作为3层的框架,而且相当多的人认为其实这些“企业级模板项目”其实就是个空项目,这是一个误区。没错,企业级模板项目你从解决方案资源管理器里看它是个什么也没有的,但是你可以用记事本打开项目文件,看见不同了吧??有些东西在背后,你是看不见的,不过系统已经做好了。
    也就是说,如果你在C层里的某个类里“using System DataSqlClineit”,或者使用一个SqlConnection对象,编译时候不会出错,但是会在“任务列表”里生成一些“策略警告”,警告你在C层里不要放应该放在D层的东西(虽然就程序来说没错,但是可读性可维护性就打了折扣)而这种功能,空项目是无法給你的。




分享到:
评论

相关推荐

    ASP.NET三层架构实例

    总的来说,ASP.NET三层架构实例提供了一个清晰的组织结构,便于理解和维护复杂的Web应用程序。通过将关注点分离,开发人员可以专注于各自领域的代码,从而提高开发效率和代码质量。GustBook这个例子是一个很好的起点...

    .NET三层架构简单例子(登录和注册功能)

    .NET三层架构是一种常见的软件开发模式,它将应用程序的逻辑分为三个独立的层:表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)。这种架构设计的主要目标是...

    ASP.net三层架构总结

    让我们深入探讨ASP.NET三层架构的核心概念以及PetShop示例。 **一、三层架构的组成部分** 1. **表示层(Presentation Layer)**:这是与用户交互的最外层,通常由ASP.NET Web页面或Windows Forms组成。它负责接收...

    ASP.NET三层架构登录实例

    在这个"ASP.NET三层架构登录实例"中,我们将探讨如何使用这种架构来创建一个用户登录系统。 首先,三层架构主要包括以下三个主要组成部分: 1. **表示层(Presentation Layer)**:这是用户与应用交互的部分,通常...

    ASP.NET三层架构留言本项目源码_gustbook.zip

    ASP.NET三层架构是一种常见的软件开发模式,用于构建可维护、可扩展且易于管理的应用程序,尤其是在Web开发领域。在这个“ASP.NET三层架构留言本项目源码”中,我们可以看到一个典型的三层架构应用实例,用于实现一...

    asp.net三层架构简单示例

    在这个"asp.net三层架构简单示例"中,我们将深入探讨每个层次的作用以及它们之间的交互。 1. **表示层(Presentation Layer)** - 这是用户与应用进行交互的部分,通常由ASP.NET网页组成。在本示例中,可能包含了`...

    asp.net三层架构源码

    ASP.NET三层架构是一种常见的软件开发模式,用于构建可维护、可扩展且易于管理的Web应用程序。这个源码可能包含一个示例项目,演示了如何在ASP.NET中实现这种架构。三层架构通常指的是数据访问层(DAL)、业务逻辑层...

    codesmith .net 三层架构模板

    本篇文章将深入探讨".NET三层架构模板",以及如何利用该模板自动生成实体层、数据访问层和业务逻辑层。 首先,三层架构是一种将应用程序分为表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)的架构设计。这种...

    asp.net三层架构搭建示例

    ASP.NET三层架构是一种常见的软件设计模式,用于将应用程序的业务逻辑、数据访问和用户界面分离,以实现更好的可维护性和可扩展性。在本示例中,我们将深入探讨如何搭建一个基于ASP.NET的三层架构应用。 首先,三层...

    基于ASP.NET三层架构系统

    在这个"基于ASP.NET三层架构系统"中,我们主要探讨的是如何通过使用ASP.NET平台,结合三层架构的设计模式,来实现高效、可维护和可扩展的Web应用。 三层架构,也称为N-Tier架构,是一种将应用逻辑分解为三个独立...

    .NET三层架构源码

    总结来说,".NET三层架构源码"是一个关于如何构建和理解.NET应用程序分层架构的实例。通过学习这个源码,开发者可以更好地掌握如何组织代码,提高软件的质量和可维护性。同时,它也为我们提供了从数据库设计到UI设计...

    .net三层架构登录注册源码(母版页的使用)

    在这个".net三层架构登录注册源码(母版页的使用)"中,我们将深入探讨这三个层面以及母版页在ASP.NET中的应用。 1. 数据访问层(DAL,Data Access Layer): 这是最底层,负责与数据库进行交互,通常包括ADO.NET、...

    最简单的ASP.net三层架构模型

    对于初学者来说,理解并实践ASP.NET三层架构是提升编程技能的重要步骤。它有助于理解如何组织代码以实现更好的结构和解耦,同时为今后的复杂项目打下坚实的基础。在实际开发中,还可以结合其他设计模式,如工厂模式...

    ASP.net三层架构示例源码

    学习和理解ASP.NET三层架构示例源码有助于提升开发大型、复杂Web应用的能力。通过将职责分离,可以提高代码的可测试性、可维护性和可扩展性。同时,这种架构也有利于团队协作,因为不同层次的开发人员可以专注于各自...

    .net基于三层架构

    通过阅读《基于三层架构的ASP.NET项目实战教程》这本书,你将能够深入理解这些概念,并学会如何在实际项目中应用它们。书中应该会包含详细的步骤指南、实例代码和最佳实践,帮助你构建出结构清晰、功能完备的.NET...

    asp.net 三层架构 经典例子

    在这个经典例子中,我们将深入探讨ASP.NET三层架构的各个组成部分及其工作原理。 首先,我们要明白什么是三层架构。三层架构主要由表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层...

    asp.net开发三层架构的项目

    ASP.NET 开发的三层架构项目是一种常见的软件设计模式,它将业务逻辑、数据访问和用户界面分离,以提高代码的可维护性和可扩展性。在这个`.net`开发的购物网站项目中,我们可以深入探讨以下几个核心知识点: 1. **...

    asp.net三层架构解决方案

    ASP.NET三层架构是一种常见的软件设计模式,用于将应用程序的业务逻辑、数据访问和用户界面分离,以实现更好的可维护性、可扩展性和复用性。在这个解决方案中,我们将深入探讨三层架构的各个组成部分以及它们之间的...

    asp.net登录注册——三层架构学习

    在这个“asp.net登录注册——三层架构学习”项目中,我们将深入探讨如何利用ASP.NET实现用户登录和注册功能,并采用三层架构来组织代码,提高软件的可维护性和可重用性。 **一、三层架构** 三层架构是一种常见的...

    .net三层架构在线考试

    .NET三层架构在线考试系统是一种基于微软的.NET框架构建的、用于实现在线测试功能的应用程序。在这样的系统中,代码通常被组织成三个主要层次:表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和...

Global site tag (gtag.js) - Google Analytics