.NET三层架构解析一:什么是三层架构

开发 后端
本文对ASP.NET三层结构作了一些说明,并总结了一些三层架构的优点。三层结构不是.NET的专利,也不是专门用在数据库上的技术。它是一种更加普适的架构设计理念。

所谓三层架构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。

在项目开发的过程中,有时把整个项目分为三层架构,其中包括:表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。三层的作用分别如下:
表示层:为用户提供交互操作界面,这一点不论是对于Web还是WinForm都是如此,就是用户界面操作。我们网站展示给用户看的界面。

业务逻辑层:负责关键业务的处理和数据的传递。复杂的逻辑判断和涉及到数据库的数据验证都需要在此做出处理。根据传入的值返回用户想得到的值,或者处理相关的逻辑。

数据访问层:见名知意,负责数据库数据的访问。主要为业务逻辑层提供数据,根据传入的值来操作数据库,增、删、改或者其它。

以下我简单介绍下一个用户管理模块:

为了整个项目的开发方便,我们在项目中会建几个类库SQLHelper,BLL,DAL,Model和一个Web网站。为了命名清晰,我们可以这样命名这个三个工程(即在解决方案里添加的类库):

业务逻辑层(BusinessLogicLayer):BLL,命名空间默认设置为BLL

数据访问层(DataAccessLayer):DAL,命名空间默认设置为DAL

SQL帮助类:SQLHelper,命名空间默认设置为SQLHelper

另外我们为了数据传递的方便,通常再添加一个类库,这个类库是贯穿于整个三层架构中的。即实体类。通常命名为Model,命名空间默认值设置为:Models。其中封装的每个类都对应一个实体,通常就是数据库中的一个表。如数据库中的用户表(custom)封装为(custom),将表中的每个字段都封装成共有的属性。

这样三层架构的搭建就基本完成了。这三层有着非常强的依赖关系:

表示层 ← 业务逻辑层 ← 数据访问层

他们之间的数据传递是双向的,并且通常借助实体类传递数据。

那么三层架构都有哪些优点呢:

1、易于项目的修改和维护。在项目的开发过程中或者开发后的升级过程中,甚至在项目的移植过程中。这种三层架构是非常方便的。比如项目从Web移植到Form,我们只需要将表示层重新做一遍就可以了。其余两层不用改动,只需添加到现有项目就可以了。如果不采用这种架构,只是将代码写到表示层。那么所有的编码几乎都要重新来了。

2、易于扩展。在功能的扩展上同样如此,如有功能的添加只需把原有的类库添加方法就可了

3、易于代码的重用。这一点就不用解释了。

4、易于分工协作开

还可以加个接口类库Iinterface, 加入设计模式,使你的代码灵活性更好,质量更高。

其实,当我们做一个项目时,我们应该先考虑一下这个项目是不是应该应用三层/多层设计时, 先得考虑下是不是真的需要? 实际上大部分程序就开个WebApplication就足够了, 完全没必要作的这么复杂. 而多层结构, 是用于解决真正复杂的项目需求的。

【编辑推荐】

  1. 浅析C#中三层架构的实现
  2. 15.2.2 从三层架构到N层架构
  3. Java Web三层架构的配置详解
  4. 15.2 JSP网络应用程序的三层架构模型

 

责任编辑:于铁 来源: 博客园
相关推荐

2013-01-09 11:00:20

架构开发三层架构.NET架构

2009-07-28 17:25:14

ASP.NET三层结构

2012-02-03 09:44:33

.NET

2009-07-28 15:08:50

MVC三层架构实例

2009-08-26 18:20:42

三层架构

2011-08-08 14:14:03

架构

2009-07-28 17:18:33

2015-07-02 10:57:11

General框架架构开发

2018-10-31 14:32:53

数据中心网络架构

2009-04-30 15:56:50

三层架构MVCMVP

2018-03-08 15:30:31

超融合架构传统三层架构

2012-02-07 10:40:13

MVCJava

2009-05-06 09:40:04

LINQWEB开发构架

2010-03-19 14:02:41

第三层交换模块

2012-09-04 09:41:00

三层架构架构EF

2015-05-25 15:15:53

浪潮

2014-02-12 10:07:07

三层交换原理

2009-04-21 11:27:52

MVCJSPJDBC

2018-07-19 12:16:50

交换技术三层二层

2011-05-12 14:24:14

三层架构
点赞
收藏

51CTO技术栈公众号