基于.Net2.0的多层架构设计

来源 :商场现代化 | 被引量 : 0次 | 上传用户:Okira_lacusO
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  在电子商务应用中,越来越多的使用多层架构,因为基于两层架构的程序结构只适用于规模较小的任务,其开发、维护、成本以及在代码重用、灵活性、可维护性等方面都不能让人满意。
  
  一、三层架构
  
  1.概述
  使用多层应用程序结构,能使用户界面代码和业务逻辑代码分离,方便了应用程序中代码的修改,具有良好的解耦性。将业务逻辑集中到一个类库中,从而方便了开发和维护。在数据库数据的操作中,避免了代码的重复,提高了重用性。可以随时将组件分离到不同的物理计算机上。具有灵活的扩展性。多层构架主要分为:表示层、业务层和数据层。
  (1)表示层(Presentation Layer)。表示层提供应用程序的用户界面(UI),在ASP.NET中页面是UI的表现形式,在Windows Form里,窗体是主要的表现形式。表现层是系统与用户沟通的惟一渠道,是系统功能的展示。
  (2)业务层(Business Logic Layer)。业务层实现应用程序的功能。在.NET中,通常以类库的形式封装系统需要的业务逻辑。业务逻辑是开发过程当中主要的任务。
  (3)数据访问层(Data Access Layer)。数据访问层中包含了与数据存储进行交互的类库。这些类在功能上和业务逻辑层相互独立。数据访问层实现所有业务逻辑所需要的数据访问功能。
  
  2.Microsoft .Net2.0 Framework支持多层构架
  在.NET 2.0 中出现了一系列的新的控件来支持多层构架。
  
  二、系统开发目标
  
  1.销售流程实现SOP
  本文以销售公司为例,SOP(Standard Operation Procedure),即标准作业程序,就是将某一事件的标准操作步骤和要求以统一的格式描述出来,用来指导和规范日常的工作。SOP的精髓,就是将细节进行量化,用更通俗的话来说,SOP就是对某一程序中的关键控制点进行细化和量化。
  优化企业的销售流程。量化销售过程当中的每一个关键因素,增加了销售过程的可控性。
  
  三、概要设计和业务流程分析
  
  1.系统设计流程
  系统开发的流程如下:
  
  图1 系统开发流程
  首先,根据需求分析,设计系统总体架构;随后设计数据库、设计数据表;然后一个一个模块进行开发。模块的开发采用三层B/S 结构,分层的步骤如下:设计数据层、建立业务逻辑层、设计表示层。
  
  2.业务流程
  为了实现销售流程的SOP,首先要对业务流程进行分析:
  销售公司将作为网络交互的中心,每一个用户想使用系统的功能首先必须通过系统的身份验证。
  一般情况下,销售公司的流程如下:
  (1)销售人员获得新的业务机会。如果新的业务对应的客户在客户关系管理CRM ( Customer Relationship Management )中不存在,销售人员首先要在CRM中添加该客户的信息,再创建业务机会。销售人员会根据和客户的商谈状况随时更改业务机会的状态(进行中、失败或者成功等)。
  (2)当销售人员在赢得一个业务机会后,需要生成销售订单。虽然销售人员事先已经查看了产品库存情况,但某些突发事件可能导致创建销售订单时库存不足。只有当订单中的产品库存满足要求时,创建销售订单的请求才能被发送给财务人员处理。
  (3)财务人员会收到一个手机短信,告知他有一个销售订单需要处理,同时日程表中自动添加一项新的事务,要求他处理这个销售订单。如果不满足要求,则订单被冻结。销售人员被通知不能提交订单。当产品库存满足要求时,系统会发短信通知销售人员重新提交订单。
  
  3.系统设计
  系统架构:销售公司在销售流程中,销售人员是持有移动设备的,可以很方便的携带,方便地和公司财务系统、库存管理系统、生产系统获得联系。财务系统、库存系统、生产系统使用的都是终端。系统和系统之间可以相互通信。
  设计数据层:
  数据访问逻辑组件:代表调用程序提供对数据库执行以下任务的方法:
  在数据库中创建记录 (Create)
  读取数据库中的记录并把业务实体数据返回给调用程序 (Read)
  使用调用程序提供的修改后的业务实体数据更新数据库中的记录 (Use)
  删除数据库中的记录 (Delete)
  执行上述任务的方法通常称为“CRUD”方法,这是由各项任务的首字母组成的一个缩写词。
  数据层的实现我们可以采用Microsoft Application Block中的Data Access Block 它提供了封装好了的数据库操作功能,实现了包括Oracle,SQL Server等数据库的操作。也可以使用一些开源( Open Source )的O/R Mapping的框架,如NHibernate等。
  表示业务实体:每个数据访问逻辑组件都处理一种特定类型的业务实体。它主要用于表示数据存储中的持久对象。是对数据库的一个强类型的映射。这些实体在数据层和业务逻辑层相互独立。
  例如在系统中会有Client(客户信息表),其数据库设计如下:
  
  图 2 Client数据结构
  那么它的业务实体的类图就应该如下图,它实际上就是Client数据表的一个映射。
  
  图 3 Client业务实体类
  业务逻辑层:业务逻辑是任务的重点。因为数据层并没有对业务实体进行逻辑上的处理,只是实现了CRUD方法,而业务逻辑层则提供对业务实体的逻辑操作,这些操作完全取决于企业的业务逻辑。这一层也是今后工作最容易更改、升级的部分。
  表现层:本系统采用的是B/S的结构,所以在表现层使用ASP.NET,也就是Web页面。主要考虑的是用户的交互问题,即系统应有,一个友好的图形界面,Microsoft提供给用户丰富的人机交互手段。用户可以很容易地使用系统。Microsoft最近推出的Microsoft Ajax(原名:Atlas)提供给开发者方便实现高效交互的实现方法,在这种高效的交互下,弥补了B/S结构相对C/S结构的弱处,加强了用户的交互体验。
  
  四、单元测试
  
  在一个软件项目中,需要做多种测试。有些测试需要用户的参与;而有些则需要专门的质量保证小组来进行;或者需要其他的昂贵的资源。为了平衡成本和时间等因素,项目中采用了单元测试。单元测试并不是在这个项目快完成时才进行的,而是在设计的过程中就必须进行单元测试。
  在.Net中可以由程序员编写单元测试的代码,但是容易出错。为了解决这个问题,有一些开源的单元测试软件可以供程序员选择,在.Net中比较常用的单元测试软件有NUnit,它提供了一套测试框架和一个测试运行程序。
  在Microsoft Visual Studio 2005中,Visual Studio 2005为开发人员提供了一个全新的测试环境。开发人员可以很轻松的开始测试编码,调试测试编码,管理测试用例等。
  
  五、部署和维护
  
  一个软件项目开发完成后需要部署到运行环境当中,模块的数量多少和复杂程度就决定了部署的难度。通常需要确定一个目录结构,哪些目录下放置哪些文件,这些细节都是在开发中必须定义的,运行环境必须严格按照文档来部署。如果模块数量多、复杂程度高,那么每一次的部署的工作量都会很大,而且容易出错。
  在.Net中,仍然有很多提供部署功能的软件产品可以供选择。比如:NAnt,它是一个自动构建、部署的工具,可以根据用户的定义,部署多层结构的系统。
  在.Net 2.0中,Microsoft .Net Framework 2.0提供了一个叫MSBuild的工具,MSBuild 引入了一种新的基于 XML 的项目文件格式,这种格式容易理解、易于扩展并且完全受 Microsoft 支持。MSBuild 项目文件的格式使开发人员能够充分描述哪些项需要生成,以及如何利用不同的平台和配置生成这些项。另外,项目文件的格式还使开发人员能够创作可重用的生成规则,这些规则可以分解到不同的文件中,以便可以在产品内的不同项目之间一致地执行生成。
  
  六、结束语
  
  本文简要介绍了在.Net环境下构建多层结构的一种方法,如果读者对本文有任何的问题和建议,请发电子邮件与我们联系xiaomeizi74@163.com或allenlecn@gmail.com。(文中源代码下载请访问:http://allenlecn.googlepages.com/layerappdemo)
  
  参考文献:
  [1]Paul D. Sheriff《设计 .NET 应用程序》
  [2]郝刚等:《ASP.NET 2.0开发指南》人民邮电出版社,2006.5
  [3]龚赤兵:《ASP.NET 2.0 网站开发实例教程》人民邮电出版社 2006.7
  [4][美]Andrew Hunt, David Thomas 著,陈伟柱,陶文 译 《单元测试之道C#版:使用NUnit--程序员修炼三部曲》
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文
其他文献
[摘要] 分析了制造业面临的挑战,通过把企业的计算机应用系统部署为基于开放、规范的技术基础之上的WEB服务,提高了完美订单率,实现了实时的制造仿生系统。  [关键词] WEB服务 完美订单 制造仿生系统    一、引言    制造企业正在努力使计算机应用系统发挥出应有的效益,如提高生产效率、改善供应链管理等。随着软件业向基于WEB的服务转移,制造业面临着新的挑战,即如何将它们的扩展企业融入一个实时
期刊
[摘要] 本文基于战略公司财务的动态视角,运用我国上市公司面板数据和FGLS方法,从实证上检验了竞争环境动态性与上市公司资本结构,以及资本结构影响因素之间的相互关系。本文的研究表明,资本结构作为企业的一项战略承诺,与所在产业的动态市场竞争环境具有密切关系,并且竞争环境动态性与资产抵押价值、企业规模、企业成长性和非债务税盾等资本结构影响因素的相互作用对资本结构的变化和选择具有较为显著的作用。  [关
期刊
城中村是中国20世纪90年代城市化发展过程中出现的中国二元体制下城乡间不同土地所有制、户籍保障、人力资源等特殊因素碰撞产生的另类社区。城中村坐落于具有商业升值价值的城市区域,村内聚集的大量外来流动人口,使其逐渐形成以物业出租、工商零售、餐饮及其他服务业为主的特色社区商业。将城中村定位于市场角色,培育开发特色社区商业,对于推进城中村城市化进程,实现其可持续发展有着重要意义。本文特以长沙市麓山村、高桥
期刊
[摘要] 本文阐述了在CRM中应用数据挖掘的必要性,给出了CRM的体系结构,介绍了应用SQLServer2005数据挖掘工具的流程,最后总结了目前存在的主要问题。  [关键词] CRM 数据挖掘 SQLServer2005    一、前言    中小企业要想在激烈的市场竞争中谋生存求发展,就要努力提升自己的核心竞争力,从以往的“以产品为中心”的管理模式转变为“以客户为中心”的管理模式,这就需要构建
期刊
[摘要] 目前的电子商务服务中,由于商品信息众多使得消费者难以快速获得自己需要的信息。如何解决这一面临的问题,本文从探究RSS技术出发,阐述了RSS的含义、原理与优势,着重讨论RSS技术在电子商务中个性化服务中所起的作用。  [关键词] RSS RSS个性化服务 电子商务    一、RSS是什么    亚马逊是全球最大的网上购物站点,所售商品种类达几十万种。如此庞大的商品海洋中使消费者难以找到他们
期刊
[摘要] 本文介绍了Web数据挖掘的概念及其分类,探讨了电子商务中Web数据挖掘的过程,重点研究了Web数据挖掘方法,从而有效提高电子商务企业的竞争力。  [关键词] 电子商务 数据挖掘 Web挖掘    Internet是一个巨大、分布广泛、全球性的信息资源储备库。随着上网人数的急剧增加,电子商务的蓬勃发展,各种基于互联网的商业Web站点也面临越来越激烈的竞争。Web包含了丰富和动态的超链接信息
期刊
[摘要] RFID技术在现代的物流管理中应用十分广泛,把RFID技术应用在物流领域能带来许多的好处,但是它也存在这一些缺陷。本文讨论如何应用动态二进制抗冲突算法对物流RFID子系统进行优化。本文以16bit的序列为例进行了分析,得出了在N bit情形下的分析模型,并给出了在新算法下抗冲突速度改善的结论。  [关键词] RFID 动态二进制抗冲突算法 物流RFID子系统    一、RFID技术在物流
期刊
素有“天下第一大会”之称的2007年春季全国糖酒商品交易会在年轻的直辖市——重庆开幕,超过十万客商云集重庆参展参会。作为一项拥有20多年历史的招商会依然受到全国各地食品、酒类企业的重视,成为他们向经销商宣传品牌、介绍产品的推荐会。国内的众多经销商更是将糖酒会作为一个年初的行业盛会来扩大自身在行业中的交际圈,在色彩缤纷、眼花缭乱的展会结识更多的业内外人士。近几年的糖酒会,已进入新品争宠时代。越来越多
期刊
一、引言    净出口(Net Export,NX)是开放经济中总需求的重要组成部分,20世纪90年代以来,它对我国经济的影响力度逐渐增大,在GDP中的占比总体上也呈现出上升趋势。随着净出口对经济影响力度的增加,宏观经济政策对外需调节作用的好坏直接影响到其对整个国民经济的贡献度,因此考察利率政策变动对净出口的作用方向和影响力度对于顺利实现中央银行宏观经济调控目标就相当的重要。这里首先要指出的是,除
期刊
[摘要] 用现代化的视角考察该时期湖南主要都市的商业,他们都不同程度地出现了由传统商业向现代商业转型的因子,这一切都成为该时期湖南经济现代化进程中重要的一环。  [关键词] 1912年~1937年 湖南都市 商业现代化    湖南之重要商业中心,有长沙、常德、岳阳、湘潭、邵阳、衡阳、醴陵、洪江等处。长沙是湖南省会,又为全省水陆交通之中枢,与上海、汉口之间的商务往来较多。常德与洞庭湖相连,本地盛产桐
期刊