在.NET下多层架构企业管理系统的开发

摘 要 随着.NET 2.0的发布,在.NET下用多层架构来构建企业管理系统也愈来愈方便。本文以某国外贸易公司的管理系统为背景,介绍在.NET平台下,采用多层架构构建企业管理系统。

关键词 .NET;单元测试;B/S架构

引言

.NET 框架是微软开发出的新一代开发平台。容许应用程序经过 Internet 进行通信和共享数据,而无论所采用的是哪一种操做系统、设备或编程语言。本文介绍的管理系统是在.NET平台下开发的,以极限编程的开发思想,采用了面向对象开发、B/S架构、ASP.NET、C#以及自动化测试工具CSUnit。

问题分析

本系统为国外的 购物网站大全某贸易公司开发,对公司的采购、销售、库存等各个贸易环节进行管理。该公司在国外,它的供应商在国内,而客户都是国外的公司。公司、供应商、客户目前均可以链接Internet,公司内部有局域网,对外主要经过ADSL高速链接Internet。

在对公司的业务需求进行了仔细的分析后,咱们认为整个系统应当包含以下的功能:可以及时同供应商进行交流,并对供应商的产品生产进度进行跟踪;收到供应商发来的产品后,能够对这些产品进行库存管理,并随时了解产品的库存情况;能够及时同客户进行交流,并对客户发来的订单情况进行跟踪;可以对用户进行权限控制,提升系统的可控性和安全性;新系统要界面友好、数据传输速度较快、易用性和扩展性强,等等。

系统开发描述

根据前面的系统需求和功能分析,系统主要分为如下几个部分:

⑴ 基本设置管理:包括人员管理 淘宝热卖模块——用于创建和维护使用系统的用户,公司管理模块——维护系统涉及到的客户和供应商信息,产品管理——添加、修改、删除以及查询产品信息。

⑵ 供应管理系统:由于公司的供应商主要在国内,系统采用中文界面,包括对采购订单的管理模块,生产进度管理模块,发货批次管理模块,报表管理模块以及交流信息管理模块。

⑶ 销售管理系统:该子系统负责与客户的交流,包括客户询价管理模块,客户订单管理模块,生产信息查询模块,质量信息反馈系统以及报表管理模块。

⑷ 库存管理系统:对公司的库存状况进行维护,包括库房基本设置模块,库房产品管理模块,报表管理模块。

系统采用三层的体系结构,数据库采用Microsoft SQL Server2000,编程语言为C#以及ASP.NET, Web页面采用ASP.NET、codebehide代码,后台程序由C#编写。除Web表示层外,还有Model层、数据访问层DAL、业务逻辑层BLL,自动化测试层UT,等等。

DAL负责数据库的数据存取,BLL经过调用DAL层的方法来实现业务需求,Web层经过调用BLL的方法来实现与用户的交互,UT层负责Model层、DAL层和BLL层的单元测试,Model提供数据实体类供Web、BLL、DAL调用,各层之间的关系如图1:


图 1web


DAL负责与数据库的交互,为了提升维护性,采用OOP的设计思想,只有BLL层能够直接调用DAL层类中的方法,不能够跨层调用。数据库的链接字段信息放置在Web.config文件中,例如:要链接SQL SERVER数据库,设置以下:

<add key=” MSSQLConnString” value=”server=(local); user id=sa; password=pwd;
database=dbEnt”/>

对于DAL,数据访问可能比较频繁 充气娃娃,须要常常进行数据库的链接以及关闭操做,所以系统没有采用ADO.NET,使用DataReader对象返回数据以提升应用程序的性能并减小系统开销。示例以下:

public static SqlDataReader ExecuteReader(string connString, CommandType cmdType, string cmdText, params SqlParameter[] cmdParms)
SqlCommand cmd = new SqlCommand();
SqlConnection conn = new SqlConnection(connString);
try
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return rdr;
}
catch
{
conn.Close();
throw;
}
}

BLL层的功能主要包括销售管理、采购管理、库存管理、基本设置管理、产品管理、质量管理、财务管理等方面,由多个不一样的类互相配合实现复杂的业务逻辑。

UT层负责对BLL、DAL以及Model进行单元测试,按照XP以及TDD的思想,先编写单元测试类,后开始类方法的编写。经过测试来指导程序代码的开发,单元测试的经过就是类方法的完成。UT层的结构相似DAL,BLL等,针对不一样的类创建相应的测试单元类。UT的结构如图2:

WEB层是直接与用户交互的层面,经过codebehind代码,该层直接调用BLL层的方法来实现用户的业务需求,并将结果显示在Web页面。由于公司服务器在英国伦敦,可是不少用户并不在英国,要考虑的问题包括:

⑴ 安全性 在web.config中对文件的安全性进行设置,即便用户登陆系统后,某些网页必须有特定权限的用户能够浏览;对于页面间的参数传递经过Session进行,超级连接后不附加任何参数。

⑵ 速度 考虑到部分的用户上网速度比较慢,带宽不足,对于大批量的数据显示尽可能采用分页的方式进行。

⑶ 易用性 因为不少的用户非计算机专业人员,所以要求系统使用方便而快捷,好比:对有多个输入框的数据输入,能够经过回车键在不一样的输入框之间跳转,方便用户操做;对于内部管理系统,由于原先客户一直使用Access系统,要求新的系统具备较高的自学习能力,尽可能参照原先系统。


图2 UT的结构图数据库


结束语 本系统开发时间为12个月,开发人员为5人。数据库使用50多个库表,开发工具为Visio Studio 2003,采用开源工具CSUnit做为单元测试工具。在多层架构的开发模式下,不一样的开发人员负责不一样的层,能够专一于本身的部分。好比:负责Web页面的人能够专心设计界面,负责DAL层的人则主要考虑与数据库的交互,至于业务需求则由负责BLL层的人来进行。经过分层模式,大大改善了系统的维护性,也加快了开发速度。能够想像,伴随着微软.NET战略的推行,在.NET下多层架构的开发模式将愈来愈流行。
相关文章
相关标签/搜索