前言:本站为你精心整理了多层架构设计管理范文,希望能为你的创作提供参考价值,我们的客服老师可以帮助你提供个性化的参考范文,欢迎咨询。
在电子商务应用中,越来越多的使用多层架构,因为基于两层架构的程序结构只适用于规模较小的任务,其开发、维护、成本以及在代码重用、灵活性、可维护性等方面都不能让人满意。
一、三层架构
1.概述
使用多层应用程序结构,能使用户界面代码和业务逻辑代码分离,方便了应用程序中代码的修改,具有良好的解耦性。将业务逻辑集中到一个类库中,从而方便了开发和维护。在数据库数据的操作中,避免了代码的重复,提高了重用性。可以随时将组件分离到不同的物理计算机上。具有灵活的扩展性。多层构架主要分为:表示层、业务层和数据层。
(1)表示层(PresentationLayer)。表示层提供应用程序的用户界面(UI),在中页面是UI的表现形式,在WindowsForm里,窗体是主要的表现形式。表现层是系统与用户沟通的惟一渠道,是系统功能的展示。
(2)业务层(BusinessLogicLayer)。业务层实现应用程序的功能。在.NET中,通常以类库的形式封装系统需要的业务逻辑。业务逻辑是开发过程当中主要的任务。
(3)数据访问层(DataAccessLayer)。数据访问层中包含了与数据存储进行交互的类库。这些类在功能上和业务逻辑层相互独立。数据访问层实现所有业务逻辑所需要的数据访问功能。
2.0Framework支持多层构架
在.NET2.0中出现了一系列的新的控件来支持多层构架。
二、系统开发目标
1.销售流程实现SOP
本文以销售公司为例,SOP(StandardOperationProcedure),即标准作业程序,就是将某一事件的标准操作步骤和要求以统一的格式描述出来,用来指导和规范日常的工作。SOP的精髓,就是将细节进行量化,用更通俗的话来说,SOP就是对某一程序中的关键控制点进行细化和量化。
优化企业的销售流程。量化销售过程当中的每一个关键因素,增加了销售过程的可控性。
三、概要设计和业务流程分析
1.系统设计流程
系统开发的流程如下:
图1系统开发流程
首先,根据需求分析,设计系统总体架构;随后设计数据库、设计数据表;然后一个一个模块进行开发。模块的开发采用三层B/S结构,分层的步骤如下:设计数据层、建立业务逻辑层、设计表示层。
2.业务流程
为了实现销售流程的SOP,首先要对业务流程进行分析:
销售公司将作为网络交互的中心,每一个用户想使用系统的功能首先必须通过系统的身份验证。
一般情况下,销售公司的流程如下:
(1)销售人员获得新的业务机会。如果新的业务对应的客户在客户关系管理CRM(CustomerRelationshipManagement)中不存在,销售人员首先要在CRM中添加该客户的信息,再创建业务机会。销售人员会根据和客户的商谈状况随时更改业务机会的状态(进行中、失败或者成功等)。
(2)当销售人员在赢得一个业务机会后,需要生成销售订单。虽然销售人员事先已经查看了产品库存情况,但某些突发事件可能导致创建销售订单时库存不足。只有当订单中的产品库存满足要求时,创建销售订单的请求才能被发送给财务人员处理。
(3)财务人员会收到一个手机短信,告知他有一个销售订单需要处理,同时日程表中自动添加一项新的事务,要求他处理这个销售订单。如果不满足要求,则订单被冻结。销售人员被通知不能提交订单。当产品库存满足要求时,系统会发短信通知销售人员重新提交订单。
3.系统设计
系统架构:销售公司在销售流程中,销售人员是持有移动设备的,可以很方便的携带,方便地和公司财务系统、库存管理系统、生产系统获得联系。财务系统、库存系统、生产系统使用的都是终端。系统和系统之间可以相互通信。
设计数据层:
数据访问逻辑组件:代表调用程序提供对数据库执行以下任务的方法:
在数据库中创建记录(Create)
读取数据库中的记录并把业务实体数据返回给调用程序(Read)
使用调用程序提供的修改后的业务实体数据更新数据库中的记录(Use)
删除数据库中的记录(Delete)
执行上述任务的方法通常称为“CRUD”方法,这是由各项任务的首字母组成的一个缩写词。
数据层的实现我们可以采用MicrosoftApplicationBlock中的DataAccessBlock它提供了封装好了的数据库操作功能,实现了包括Oracle,SQLServer等数据库的操作。也可以使用一些开源(OpenSource)的O/RMapping的框架,如NHibernate等。
表示业务实体:每个数据访问逻辑组件都处理一种特定类型的业务实体。它主要用于表示数据存储中的持久对象。是对数据库的一个强类型的映射。这些实体在数据层和业务逻辑层相互独立。
例如在系统中会有Client(客户信息表),其数据库设计如下:
那么它的业务实体的类图就应该如下图,它实际上就是Client数据表的一个映射。
业务逻辑层:业务逻辑是任务的重点。因为数据层并没有对业务实体进行逻辑上的处理,只是实现了CRUD方法,而业务逻辑层则提供对业务实体的逻辑操作,这些操作完全取决于企业的业务逻辑。这一层也是今后工作最容易更改、升级的部分。
表现层:本系统采用的是B/S的结构,所以在表现层使用,也就是Web页面。主要考虑的是用户的交互问题,即系统应有,一个友好的图形界面,Microsoft提供给用户丰富的人机交互手段。用户可以很容易地使用系统。Microsoft最近推出的MicrosoftAjax(原名:Atlas)提供给开发者方便实现高效交互的实现方法,在这种高效的交互下,弥补了B/S结构相对C/S结构的弱处,加强了用户的交互体验。
四、单元测试
在一个软件项目中,需要做多种测试。有些测试需要用户的参与;而有些则需要专门的质量保证小组来进行;或者需要其他的昂贵的资源。为了平衡成本和时间等因素,项目中采用了单元测试。单元测试并不是在这个项目快完成时才进行的,而是在设计的过程中就必须进行单元测试。
在.Net中可以由程序员编写单元测试的代码,但是容易出错。为了解决这个问题,有一些开源的单元测试软件可以供程序员选择,在.Net中比较常用的单元测试软件有NUnit,它提供了一套测试框架和一个测试运行程序。
在MicrosoftVisualStudio2005中,VisualStudio2005为开发人员提供了一个全新的测试环境。开发人员可以很轻松的开始测试编码,调试测试编码,管理测试用例等。
五、部署和维护
一个软件项目开发完成后需要部署到运行环境当中,模块的数量多少和复杂程度就决定了部署的难度。通常需要确定一个目录结构,哪些目录下放置哪些文件,这些细节都是在开发中必须定义的,运行环境必须严格按照文档来部署。如果模块数量多、复杂程度高,那么每一次的部署的工作量都会很大,而且容易出错。
在.Net中,仍然有很多提供部署功能的软件产品可以供选择。比如:NAnt,它是一个自动构建、部署的工具,可以根据用户的定义,部署多层结构的系统。
在.Net2.0中,Framework2.0提供了一个叫MSBuild的工具,MSBuild引入了一种新的基于XML的项目文件格式,这种格式容易理解、易于扩展并且完全受Microsoft支持。MSBuild项目文件的格式使开发人员能够充分描述哪些项需要生成,以及如何利用不同的平台和配置生成这些项。另外,项目文件的格式还使开发人员能够创作可重用的生成规则,这些规则可以分解到不同的文件中,以便可以在产品内的不同项目之间一致地执行生成。
六、结束语
本文简要介绍了在.Net环境下构建多层结构的一种方法,如果读者对本文有任何的问题和建议,请发电子邮件与我们联系xiaomeizi74@或allenlecn@。(文中源代码下载请访问:/layerappdemo)
参考文献:
[1]PaulD.Sheriff《设计.NET应用程序》
[2]郝刚等:《2.0开发指南》人民邮电出版社,2006.5
[3]龚赤兵:《2.0网站开发实例教程》人民邮电出版社2006.7
[4][美]AndrewHunt,DavidThomas著,陈伟柱,陶文译《单元测试之道C#版:使用NUnit--程序员修炼三部曲》