论基于ASP.NET的企业进销存储管理信息系统的设计与实现
1 背景
在应用系统开发过程中,C/S两层体系结构的开发模式得到了广泛的应用。其应用程序逻辑通常只分布在客户和服务器两端,它采用由客户端发出数据资源访问请求,然后服务器端将结果返回到客户端的信息传递机制,对系统的性能、升级与维护等有很大制约。随着面向对象技术、分层建模技术和网络浏览器导航技术的逐步成熟,B/S模式的多层应用体系结构得到了越来越多的应用。应用系统开发模式从原来的两层结构向三层甚至N层结构的转变,主要是在客户端和服务器之间加入了一个被称为“应用服务器”的一层或多层应用服务程序,使原来集成表示层处理和业务逻辑处理的臃肿胖客户端得以释放,演变为表示层和业务逻辑层分开实现的模式,使开发人员在保证为用户提供必要功能操作的简洁界面前提下,将主要精力集中在系统核心业务逻辑的分析、设计和开发上;从C/S模式到B/S模式的转变,使得原客户端维护工作发生了翻天覆地的变化。C/S模式应用程序的客户端要求管理人员在每个客户端计算机系统上安装客户端程序,当需要维护系统时,管理人员需要到客户端的用户那里一个一个地解决问题;而B/S模式只需用户在自己的电脑系统中安装浏览器软件(该软件通常在操作系统中可附带自动安装),应用系统的全部程序可以集中放在服务器中由管理人员统一管理维护,这可以大大节省系统维护的开销。在多层结构模式的B/S系统架构中,B/S的三层结构是目前流行的架构设计模式,它由表示层、业务逻辑层和数据访问层3个层次结构组成。微软公司的ASP.NET充分地发挥了面向对象的技术特点,能轻松实现三层结构的B/S系统架构,并在很大程度上提高开发效率,增强系统的可维护性和扩展性。本文研究如何基于ASP.NET(C#)技术实现三层结构应用系统的设计。
2 三层结构系统模型
选择合适的系统体系架构是一项影响整个应用系统设计的关键工作。架构设计主要完成定义和说明包(子系统),以及包与包之间的依赖关系与通信机制。B/S模式的三层结构是一种简单、成熟,并得到普遍应用的应用程序架构,它将应用程序结构划为分3个相对独立层,包括用户表示层、业务逻辑层和数据访问层。每一层只实现该层内相对独立的功能,而当任何一层发生变化时,只要保持层间接口关系不变,则其他各层都不会受到影响。三层结构是一种严格的分层协作, 即数据访问层只能被业务逻辑层访问, 业务逻辑层只能被表示层访问。用户通过表示层将请求传送给业务逻辑层, 业务逻辑层完成相关业务规则和逻辑, 并通过数据访问层访问数据库获得数据, 然后按照相反的顺序依次返回, 将数据显示在用户界面层。
2.1 用户表示层(USL)
用户表示层也叫用户界面层,封装人机界面的所有表单和组件,是应用系统与系统用户之间的直接接口。主要用于显示由业务逻辑层动态传送过来的数据信息,结合使用相应的HTML标记和样式表定义来实现;用户录入数据信息并通过简单的校验后,经由数据接口传送给业务逻辑层下载论文。
2.2 业务逻辑层(BLL)
业务逻辑层主要完成对应用系统相关业务规则和逻辑的封装,在为用户表示层访问提供功能调用的同时,它又通过调用数据访问层所提供的功能来访问数据库。业务逻辑层主要根据系统设计的需要,通过构建系统的关键对象类,实现系统的大部分逻辑控制功能。
2.3 数据访问层(DAL)
数据访问层只能被业务逻辑层访问,并且系统只通过它访问数据库来获取数据。当数据访问层根据业务逻辑层的要求与数据库进行交互时,主要完成从数据库中提取数据库记录的查询和插入、修改与删除数据库记录的更新数据功能。众所周知,数据库访问是动态信息管理应用系统中最频繁、最消耗资源的操作,所以必须优化对数据库的访问策略,以提高系统的性能和可靠性。B/S模式的三层结构是一种严格的分层定义,它首先将应用系统复杂的开发工作划分为相对简单的小分块,然后在每一层中只实现系统相应层的功能设计,层间的交互由相邻层对应的功能模块进行调用,信息传递只由接口进行传送。
数据访问层一般由两部分组成:业务实体和数据操作。Microsoft公司提供的标准术语称为业务实体组件和数据访问逻辑组件。在三层结构中,数据访问层是唯一与数据库打交道的层,所以该层的设计要尽量以提高速度和安全为目标。
业务实体组件体现的是现实生活中的业务数据,而数据访问逻辑组件则是在数据库中检索数据或把业务实体数据保存到数据库。
2.3.1 数据访问逻辑组件
数据访问逻辑组件,简单来讲就是实现对数据库中数据进行操作的组件,以及实现数据相关操作所需的业务逻辑。数据访问逻辑组件的主要功能如下:
(1)在数据库中添加记录。
(2)读取数据库的记录,并以业务实体数据的形式返回给调用者。
(3)将调用者修改的业务实体数据更新到数据库。
(4)删除数据库中的记录。
并不是所有的数据库表都由一个数据访问逻辑组件操作,其实,一个逻辑组件封装的是对数据库中的一个表或一组相关的表的操作。
2.3.2业务实体组件
业务实体是以数据的形式表示现实生活中的业务模型。业务实体的属性与数据库中的表有一一对应的关系,每个数据库访问组件都对应一个业务实体。
2.3.2.1业务实体的特点
(1)提供对业务数据及相关功能进行编程访问。
(2)可以使用具有复杂架构的数据来创建,这些复杂的数据一般表现为数据库中可以作为业务流程中的输入输出的相关联的多个表。
(3)可以作为业务流程中的输入输出参数来传递整体数据。
(4)业务实体不参与事务处理,只是事务处理过程中的一部分数据,事务处理由数据访问层完成。
2.3.2.2业务实体的表现形式
在应用程序中,业务实体有很多种表现方式。有以数据为中心的表示方式,也有面向对象的表示方式。具体包括以下几种方式。
(1)XML:使用XML字符串或XML文档对象模型来表示。
(2)DataSet:DataSet是缓存在内存中一个或多个表的集合,一般来源于数据库或XML文档。
(3)自定义业务实体组件:一种自定义的类库,用于保存业务流程中的数据。包含一些数据表中的字段和其他公共属性。
本文采用第三种方法:自定义业务实体组件。业务实体可以被数据访问组件调用,也可以被业务逻辑层调用,通常的三层结构将业务实体包括在数据访问层中,如图1所示。
有的系统把业务实体单独放在一层中,如图2所示,这两种方式都正确,关键要看设计者的意图以及实际的开发项目,本文采用第二种形式。
3 三层结构优缺点
3.1 三层结构的优点
(1)提高程序的可维护性:三层架构层次分明,一旦运行出现问题,可以快速判断是哪一层的问题,利于维护。
(2)可以合理开发:因为三层之间除了调用没有其他关联,只需要先把三层之间的接口定义好,程序员可以并行开发,提高了开发的速度。
(3)提高系统的安全性:每层都有安全设置,即使表示层被攻破,下一层的安全还有保障。
(4)提高系统的扩展性:三层结构最大的好处是在扩展应用系统时,改动的部分不会影响到大局,比如要给这个系统增加Oracle数据库的功能,只需要改动数据层就可以了,其他层保持不变。
3.2 三层结构的缺点
三层结构开发模式的一个非常明显的缺点就是其执行速度不够快。当然这个“执行速度”是相对于非分层的应用程序来说的。 “三层结构”开发模式,不适用于对执行速度要求过于苛刻的系统,如在线订票、在线炒股等。它比较适用于商业规则容易变化的系统。
4 ASP.NET的三层设计和实现
基于以上对B/S三层结构的介绍,下面引用一个基于ASP.NET技术的B/S三层结构模式的进销存管理系统的开发设计方法,介绍ASP.NET应用系统三层结构的具体实现。ASP.NET的三层结构应用程序目录结构如图3所示,目录BLL业务逻辑层,DAL为数据访问层,DBUtility存储的是一些常用的类和方法,Model为业务实体层,JXC为用户表示层。
(1)Model(业务实体层):都是一些属性,业务实体的属性与数据库中的表为一一对应的关系,每个数据库访问逻辑组件对应一个业务实体。
(2)DBUtility公共类:数据库操作的一些类库,其中包括pubconstant.cs类(实现从web.config获取数据库连接字符串)、DbHelperSQL.cs 数据库助手类、对数据访问的类。
(3)DAL(数据访问层)的实现:对应着数据库中的表,实现对表常用的操作,如增删改等常用操作。
(4)BLL(业务逻辑层)的实现:创建每个类,每个类对应着数据库的每张表,完成数据表的一些业务逻辑,完成对数据层的调用过程。
(5)JXC(用户表示层):界面的编写。
5 总结
以上介绍了应用基于ASP.NET技术的三层结构模式来设计和实现B/S结构应用系统的总体方法。通过介绍示例的具体分层规划,体现了利用ASP.NET技术编写三层结构的清晰逻辑,并有效地实现了系统中各功能层的相对独立,使系统具有更强大的灵活性、可扩展性和可维护性;而且系统分层管理使分级分布部署成为现实,可极大地提高系统的性能和安全性,满足日益壮大的B/S模式应用系统的需求。借鉴此方法还可以开发企业其他各类应用系统,提高企业的信息化水平。