在.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:

在.NET下多层架构企业管理系统的开发_第1张图片
图 1


  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系统,要求新的系统具有较高的自学习能力,尽量参照原先系统。

在.NET下多层架构企业管理系统的开发_第2张图片
图2 ut的结构图


   结束语

  本系统开发时间为12个月,开发人员为5人。数据库使用50多个库表,开发工具为visio studio 2003,采用开源工具csunit作为单元测试工具。在多层架构的开发模式下,不同的开发人员负责不同的层,可以专注于自己的部分。比如:负责web页面的人可以专心设计界面,负责dal层的人则主要考虑与数据库的交互,至于业务需求则由负责bll层的人来进行。通过分层模式,大大改善了系统的维护性,也加快了开发速度。可以想像,伴随着微软.net战略的推行,在.net下多层架构的开发模式将越来越流行。

你可能感兴趣的:(在.NET下多层架构企业管理系统的开发)