浅谈ASP.NET环境下的软件分层架构设计

时间:2022-07-16 04:16:56

浅谈ASP.NET环境下的软件分层架构设计

【摘要】在软件开发设计过程中,可以采用一层架构、二层架构与三层架构,针对软件设计的复杂度,可以选择不同的架构设计。本文阐述了三层架构的原理及设计思想,并对实现过程进行了详细的阐述。

【关键字】软件设计 三层架构 表示 逻辑 数据访问

1、软件设计分层思想概述

在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或成为领域层)、表示层。

2、三层结构原理

在这三个层次中,系统主要功能和业务逻辑都在业务逻辑层进行处理。所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,不是指物理上的三层,而是指逻辑上的三层,即使将这三个层放置到一台机器上。三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。其一、表示层(PL):它位于最外层。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面;其二、业务逻辑层(BLL):它在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。它是在数据访问层和表示层之间进行数据交换的桥梁。业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。其三、数据访问层(DAL):其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或是XML文档,简单的说法就是实现对数据表的Select,Insert,Update,Delete的操作。

3、三层架构实现

一个用户管理系统,用户包含如下信息,用户姓名、性别、电话、Email,其功能是能实现对用户信息的增加、删除、修改及查询。将用户信息写入数据库userDB中。从数据库中取得用户信息,进行数据处理,如下图所示:

3.1创建数据表示层

新建一个项目命名为UI,表示当前为表示层,并在其下添加上述四个页面Add.aspx,Update.aspx,Delete.aspx和查询页面Query.aspx,提供与用户的相互交互。与之对应的Add.aspx.cs属于Add页面对应的代码文件,在此文件中,如果没有分层设计,它可以进行业务逻辑的处理工作,但在分层设计思想指导下,仅应该处理与显示有关的内容,其它部分都不应该涉及。

3.2创建业务逻辑层

添加ClassLibrary项目,命名为BLL,新建Class类型文件UserBLL.cs,在此层中,主要负责处理与系统业务相关操作,不涉及数据库的操作。在此类中添加如下业务方法:

public List GetUsers():返回所有的用户信息列表、public UserInfo GetUser(int UserId):返回指定用户的详细信息、public bool AddUser(UserInfo User):新增用户信息、public bool UpdateUser(UserInfo User):更新用户信息、public void DeleteUser(int UserId):删除用户信息。

此文件就属于业务逻辑层了,专门用来处理与业务逻辑有关的操作。由于本项目比较简单,此层的用途就是把表现层传过来的数据转发给数据层。造成业务层无事可做,只起到了一个转发的作用。但这不代表业务层可有可无,随着项目的增大,或者业务关系的增多,业务层就会体现出它的作用来。

3.3创建数据模型层

针对数据库userDB中的数据表Users,建立与之对应的数据模型类UserInfo.cs,它在三层架构中不属于哪一个层,它就是一个类,用来承载数据信息,和int,string等变量的地位一样。但是它的好处就是可以将整个用户信息写入一个Users对象中,减少了数据的传递复杂度。如上述实现添加用户信息,可以使用AddUser(UserInfo user),可将一个用户作为参数进行传递,这就是数据模型的好处。

3.4创建数据访问层

添加ClassLibrary项目,命名为DAL,新建Class类型文件UserDAL.cs。添加SQLHelper引用。此类文件主要与数据库进行通信,负责存取或修改数据表中的数据。为了避免重复书写代码,将数据库操作相关的方法封装到SQLHelper类中。在此类中一般应包含如下方法:

public List SelectUsers():返回所有的用户信息列表、public UserInfo SelectUser(int UserId):返回指定用户的相信信息、public bool InsertUser(UserInfo User):新增用户信息、public bool UpdateUser(UserInfo User):更新用户信息、public void DeleteUser(int UserId):移除用户信息

3.5各层的调用关系

其基本原则是:上层调下层,上层对下层是不可见的。在设计时,表现层只调用逻辑层,表现层主要是取得页面的数据传到逻辑层,和把从逻辑层得到的数据显示到页面上。逻辑层负责把数据加工整理传到数据层和把从数据层取得的数据加工,数据层就只负责把数据对数据库操作。业务逻辑层 就是给上层和下层下达命令和调节行为的中间层。

通过上面介绍,基本上将三层架构层次结构说明白了。其实,判断三层架构是否标准的方法就是将三层中任意一层完全替换,都不会对其它两层造成影响,这样的构造基本就符合三层标准。

总结:软件的三层架构分层设计,它将软件结构分为表示层、业务逻辑层和数据访问层,将不同的功能进行划分,使软件开发的层次更加分明,结构更加合理,利于团队合作开发,能提高软件开发与维护的效率。

上一篇:大国税收视角下的国际税收合作研究 下一篇:浅析图书情报可持续发展的人力资源对策