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


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


图2 UT的结构图

  结束语

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

时间: 2025-01-30 12:34:29

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

[.Net公开课 第11期]Asp.net MVC的企业管理系统项目开发

问题描述 课程说明现在企业招聘.net开发人员,都要求掌握Asp.netMVC,那么通过我们这次公开课,让大家熟练掌握基于Asp.netMVC企业级开发.深入的学习Asp.netMVC的技术细节,掌握其本质.学完本次课程,可以让大家熟练的掌握开发企业网站,以及企业管理系统.1.Asp.netMVC是微软提供的以MVC模式为基础的Asp.netWeb应用程序开发框架.它相对于传统的WebForm的优点如下:(1)通过把项目分成Model.View和Controller,使得复杂项目更加容易维护,减

“中国制造2025”下的制造企业综合安防解决方案

一. 背景分析 在美国不断推进"工业互联网"战略.德国将"工业4.0"提升为国家战略之际,作为制造业大国的中国适时提出了我国的制造业战略.2015年5月19日,国务院颁布<中国制造2025>的国家战略,推动我国制造业转型升级. 在轰轰烈烈的产业转型升级浪潮中,智能制造为人们所不断推崇.但是也有专家指出:"智能"有低级和高级之分,"自学习.自决策.自适应.高度人机协同"是未来方向,但目前难以全部实现.不同的行业和企业

Microsoft NLa“.NET研究”yerApp案例理论与实践 - 多层架构与应用系统设计原则

在对NLayerApp实际项目进行讨论之前,让我们首先学习一下(或者应该说重温一下)分层/多层架构与应用系统设计原则.很多朋友会认为这些都是老掉牙的内容,只要是软件从业人员,都会对这些内容非常熟悉.然而,果真如此吗?我在这里整理这部分内容,一方面是为介绍NLayerApp打下基础,而另一方面,则是希望借此机会将这些理论性的东西做个归纳,也希望读者朋友能够认真阅读,毕竟温故知新嘛. 需要说明的是,从本章节开始,大多数理论性的东西都源自Microsoft Spain团队针对NLayerApp所编写的

asp.net微信公众平台开发(二) 多层架构框架搭建和入口实现

上篇已经设计出比较完善的数据库了,这篇开始进入代码.  首先把上篇设计的数据库脚本在数据库中执行下,生成数据库,然后在VS中建立项目,为了方便理解和查看,我设计的都是很直白的类名和文件名,没有命名空间前缀. 采用接口方式,共8个项目:7个类库和一个MVC项目,  分别为: 显示层--MVC项目 业务逻辑层--访问接口IBLL.具体实现BLL 数据访问层--访问接口IDAL.具体实现DAL 数据(模型)--DataModel 通用方法--Common 仓储--Factory 这里的仓储并不为了生产

分享一个Mvc的多层架构,欢迎大家拍砖斧正

多层架构是什么? 多层架构是开发人员在开发过程当中面对复杂且易变的需求采取的一种以隔离控制为主的应对策略,关于多层架构的标准,我认为有一句话是比较有代表性的"每一层都可以单独部署",最传统,最简单的就是从三层开始的: 将整个项目自下而上的分为:数据持久(数据访问)层,逻辑(业务)层,UI(展现)层. 数据访问层:负责将数据持久化响应的数据存储设备上,如DataBase,Txt,Excel等. 业务逻辑层:负责处理为满足软件需求而订制的一系列的逻辑与业务,如用户在前端下订单之后,整个业务

对于大数据大流量情况下微软架构的水平扩展的遐想(瞎想)

最近回顾SAAS的书籍,书中的扩展架构都有点让我痴迷,但书中介绍的都是以Java,Apache,JBoss,Hadloop等技术实现负载均衡,大数据处理,对于微软架构并未提及,所以让我陷入无限遐想,夜不能眠啊.今天的文章纯属瞎想,有错的不要批评,大家一起讨论就可以了. 对于大数据处理来说,要解决的问题: 1.web服务器的负载均衡 2.web服务器的水平扩展 3.数据库的分库处理 4.数据库读写分离 5.数据库的水平扩展 大概的架构: (没什么工具,用word画的,丑了点,哈) 在大数据,大流量

一起谈.NET技术,Microsoft NLayerApp案例理论与实践 - 多层架构与应用系统设计原则

在对NLayerApp实际项目进行讨论之前,让我们首先学习一下(或者应该说重温一下)分层/多层架构与应用系统设计原则.很多朋友会认为这些都是老掉牙的内容,只要是软件从业人员,都会对这些内容非常熟悉.然而,果真如此吗?我在这里整理这部分内容,一方面是为介绍NLayerApp打下基础,而另一方面,则是希望借此机会将这些理论性的东西做个归纳,也希望读者朋友能够认真阅读,毕竟温故知新嘛. 需要说明的是,从本章节开始,大多数理论性的东西都源自Microsoft Spain团队针对NLayerApp所编写的

浅谈Asp.net多层架构中的变量引用与传递

asp.net|变量|架构 到公司已经快两个星期了,但是由于客户的需求分析没有下来,所有项目迟迟没有开始.正好利用这个时间仔细研究了一下Asp.net的多层架构,主要参考的是 Wrox 的一本<.Net WebSite Programming Problem-Design-Solution>,个人觉得这本书写的不错.面向有一定.net基础的开发人员,刚开始看起来可能觉得很难懂,但是仔细研究一下会发现,这本书是一本面向工程应用的优秀参考手册. Asp.net的多层架构主要是为了解决数据层,逻辑层

浅谈ASP.NET中多层架构

  Asp.net的多层架构主要是为了解决数据层,逻辑层,表示层等之间的关系.我的做法是这样的:首先建立一个DataCore的基类.基类里面封装了一些低层的数据库的基本操作,比如说数据库联接,调用存储过程等等. 很多人对开发多层应用程序感到一定的困难.来看一个例子:对于一个只有一两个人的小公司,一个人可能同时担当老板.出纳.会计.市场.销售.开发等多项工作.而对于一个大公司,就会进行比较严密的分工,每个人只完成一部分工作,需要彼此配合才能保证正常运转.以前的开发程序就类似于一个小公司,从用户界面