探索基于.net平台电子商务的应用与研究

探索基于.net平台电子商务的应用与研究

ID:35140285

大小:1.84 MB

页数:71页

时间:2019-03-20

上传者:U-56225
探索基于.net平台电子商务的应用与研究_第1页
探索基于.net平台电子商务的应用与研究_第2页
探索基于.net平台电子商务的应用与研究_第3页
探索基于.net平台电子商务的应用与研究_第4页
探索基于.net平台电子商务的应用与研究_第5页
资源描述:

《探索基于.net平台电子商务的应用与研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

武汉理工大学硕士学位论文基于.NET平台电子商务的应用与研究姓名:李浩申请学位级别:硕士专业:计算机应用技术指导教师:张能立20040201 武汉N_-K大学硕士学位论文中文摘要随着计算机和网络技术的迅猛发展,企业利用网络进行交易的频率也越来越高。电子商务系统也被那些有远见的企业列入公司未来发展计划中。本文阐述了基于.NET电子商务系统的解决方案,主要对以下5个方面的问题进行了探讨:1、针对电子商务在企业中起的作用,详细的讨论了电子商务的概念和电子商务的商务模式。电子商务是通过电子信息技术、网络互联技术和现代通讯技术使得交易涉及的各方当事人借助电子方式联系,而无需依靠纸张文件完成单据的传递,实现整个交易过程。电子商务的基本模式有BtoB,BtoC,CtoC和CtoB四种模式,但在我国医药行业中存在一种特殊的模式BtoS,也就是企业对本企业的模式。2、.NET平台是Microsoft公司在2000年6月公开发布的一个软件开发平台。.NET平台是一个全新的开发框架,它集成了Microsoft公司20世纪九十年代后期的许多计算。.NET平台最主要的控件是Framework框架。.NETFramework有两个主要组件:公共语言。运行库(CLR)和.NETFramework类库。CLR是一个软件引擎,用来加载应用程序,确认它们可以没有错误地运行,进行相应的安全许可验证,执行应用程序,然后在完成后将它们清除。3、ADO.NET是.NET平台中的数据访问组件。ADO.NET支持多种数据源,断开式数据库连接和Web服务。ADO.NET不是ADO的简单的升级,它在表的个数、在内存中的表现形式、数据导航和游标、将打开连接的时间降至最低和在应用程序间共享数据都优ADO。ADO.NET的两个核心组件是:DataSet和.NETFramework数据提供程序。DateSet支持断开式数据库连接,这也是数据集最主要的特性。4、.NET平台给出构建企业级分布式应用程序的模板。这个模板给开发者极大的帮助和支持,按照模板开发者可以很轻松的构建企业级分布式应用程序。.NET模板给出了企业级分布式应用程序的层次结构,分为系统框架层、数据访问层、业务规则层、业务外观层和用户界面层。依照这个结构构建的分布式应用程序层次清楚,开发简单。5、利用企业级分布式应用程序的模板构建的贵州益佰制药公司电子商务系统,是本文的实例。通过对实际的销售流程的优化和分析,提出了网络销售的电子商务系统的解决方案。系统完全实现了在因特网上的销售与结算,极大的提高了公司的管理效率。关键字:.NET框架,ADO,NET,分布式应用程序,电子商务 堕堡里王查堂堡主堂堡垒奎AbstractWiththedevelopmentofthecomputerandRetworktechnology,theratiooftransactionusinginternetbecomesmoreandmorehigherE-businesssystembecomesonepartofdevelopingprojectofenterpriseswithfurtherinsight.ThiSthesiSdescribesthesolutionofe-businesssystembasedon.nettechnology.5pointsarefocusedinthiSthesiS.1、Totheuseofe—busihessinenterprise.conceptandbusinesspatternofe—businessiSdescribedindetailinthiSthesiS.E-businessiSabusinessmethodtomakeallofSidesinvolvedinbusinessconnectedUSingelectronicwaybasingonelectroniCtech,networktechandmoderncommunicationtech.BusinessprocesSiSfinishedbypassingsheetswithoutanypaper.Basepatternsofe—businesscanbesumarizedtofour,whichincludesB2B,B2C,C2CandC2B.ButthereiSaspecialpatterninthemediCineindustryinourcountry,whichiSB2S,meansenterprisetoself-enterprisepattern.2、.NETplatformiSasoftwaredevelopingframeworkwithreleasedbyMicrosoftinJun2000..NETiSanewframework,whichincludesmuchcomputationdevelopedbyMicrosoftinthe1ateof90slastcentury.Themaincontrolof.NETplatformiSitsframework.Theframeworkincludestwomaincomponents:commonlanguageruntime(CLR)and.NETframeworkclass1ibrary.CLRiSasoftwareengineusedtoloadapplications,confirmthemtorunwithoutanyerrors,verifythesecurity1icense,executethemandclearthemwhenworkiSfinished.3、ADO.NETiSthedataaccesscomponentofthe.NETplatform.Manykindsofdatasources,offlinedatabaseconnectionsandwebservicesaresupportedbyADO.NET.ADO.NETiSnotasimpleupgradeofADO。ItisprivilegedthanADOintablecounts。tablestructure1nmemory,datanavigateandcursor,accelerateconnectionopentimeanddatasharebetweenapplications.ThetwomaincomponentSofADO.NETareDataSetand.NETFrameworkdataproviderprogram.DataSetsupports0fflineDatabaseConnectionwhichiSthemostimportantcharacterofdatasetS.4、.NETplatformprovidesatemplateofconstructingenterpriseleveldistributionapplications.ThiStemplategivesthe 武汉理工大学硕士学位论文developersoneeasywaytowork.Usingtemplate,developerscarlbuildenterpriseleveldistributionapplicationsstepbystep.Thehierarebyprovidedby.NETtemplatecanbedividedtosystemframeworklevel,dataaccesslevel,businesslogiclevel,businesspresentationlevelanduserinterfacelevel.Developworkbecomessimplewhendoneaecordingtothestructuredescribedabove.5、TheelectroniccommercesystemoftheOuizhouYibaipharmacycompany,whichisdevelopedwiththetemplateoftheenterprisedistributedapplication,istheexampleofthisthesis.WeputforwardtheresolveprojectoftheelectroniecommercesystemfornetworksaleaccordinRtotheanalysisandoptimizeoftheirfactualsaleflow.ThesystemfulIvrealizedthesaleandbalancewhichisbasedoilInternet,andthesystemincreasethemanagementefficiencyofthecompany.Keywords:.NETFramework,ADO.NET,DistributedapplicationElectronicCommerce,III 武汉理工人学硕士学位论文第一章绪论1.1课题研究背景随着因特网的出现和迅猛发展,改变了我们日常的交流方式。互联网络快捷、信息容量大的特点远胜于传统的书信、电话和传真的沟通方式。从因特网的用户的数量,我们可以明显的感觉到这一点(由1999年的1.i3亿用户到现在的超过3亿的用户),也标志着我们正进入一个以网络为中心的时代。互联网络技术和计算机技术的飞速发展使传统的基于单机和c/s模式的开发形式已经不能适应和满足现代软件的需求。世界软件巨头微软公司敏锐的发现了这一点,在2000年6月『F式向全世界发布了新一代软件开发平台.NET。.NET帮助开发者在Internet时代创建和部署企业级的分布式应用。它还提供了:代码重用、自动资源管理、多语言开发、安全性、易于部署和管理等新的特征。在技术和信息飞速变化的社会中,企业成功的重要标志之一就是能否在社会、经济和技术环境发生变化时仍然处于不败之地!全球的企业都不约而同地面临着技术和企业管理飞速变化的环境,具有前瞻性眼光的企业家一定会注意到这样一个事实:电子商务时代已经来临!“电子商务”是一种建立于广泛应用的国际互联网(Internet)之上新的商务运作模式,也是一种新的市场竞争手段和有力的“武器”,已经在全球范围内悄悄地涉足市场竞争和企业管理领域。“电子商务”通过国际互联网连接着全世界的计算机网络,随时随地为人们提供各种信息和信息交流服务。它从最基本的电子邮件到静态主页发布,直到动态数据发布和完全的商务应用系统,为企业和每个个人提供了不同阶段、不同层次的 武汉理:[大学硕+学位论文信息服务。以Internet为基础的电子商务正在改变公司和部门的内部结构。Internet通过降低通信成本来影响公司的纵向组织结构。公司为了提高效率,必须适应这种变化而采取新的结构重组。通过电子商务,企业可以轻松的突破时间与空间的限制,实现跨地区分支机构之间的协同工作和信息沟通。电子商务缩短了生产厂商与最终顾客之间的供应链,同时改变了传统市场的结构,减少了交易成本。电子商务使竞争从企业间的竞争逐渐演变为供应链之间的竞争。电子商务为公司或企业提供了一种可以全面展示其产品和服务的品种和数量的虚拟空间,起到提高企业知名度和商业信誉的作用。1.2课题来源及本人所做的工作1.2.1课题的来源至从改革开发以来,随着大量民营企业的出现,通过市场竞争的淘汰,现在的一些民营企业已经具有相当的经济实力、生产规模不断的扩大、销售地区不断的扩张,低效的企业管理就成为阻碍企业继续发展的一个重要环节。企业迫切要求通过Internet网络这一高新技术手段来进行交易,即通过电子商务来改变传统的交易模式。贵州益佰制药公司因为业务的不断扩张,急切的希望有一个电子商务系统来管理整个公司的销售业务流程。本论文涉及的项目就是依托贵州益佰制药公司的销售流程开发的大型电子商务系统。它在因特网上实现了整个的销售流程,包括签订合同、订单、开发票、发货、回款、结算。1.2.Z主要研究内容1.电子商务的介绍。电子商务有几种基本的商务模式,并介绍了在 武汉理工大学硕士学位论文我国的医药行业实际应用中一种特殊的商务模式:企业对本企业(BusinessToSelf简称Btos)。2.开发平台和开发工具的选择和介绍。.NET开发平台中包括了很多在电子商务系统开发中非常有用的技术和概念,弄清楚这些概念是开发电子商务系统的前提条件,因而对开发平台和开发工具的介绍就显得很有必要性。3.基于.NET平台的企业级分布式应用程序的体系结构的介绍。在基于浏览器/N务器(B/S)结构的开发中,.NET提供了企业级分布式开发的模板,为开发者提供了开发方向和指导。4.着重描述了贵州益佰制药公司的电子商务平台的设计与实现,本论文试图把理论与实践紧密地结合在一起。针对医药行业的特点,提出了一个具体的电子商务平台解决方案。 亟堡堡!:盔堂堡主堂垡丝苎一——第二章电子商务简介在现代社会,随着计算机网络、通信技术的日益发展和融合,以及Internet的普及和应用.网络已经深入到我们生活的每一个角落,越来越多的企业和商家利用Internet进行商务活动,使商务活动实现电子化,开始了一场电子商务的革命。从计算机与商业结合的角度,我们给电子商务的解释是:通过电子信息技术、网络互联技术和现代通讯技术使得交易涉及的各方当事人借助电子方式联系,而无需依靠纸张文件完成单据的传递,实现整个交易过程。2.1电子商务简介及优点电子商务最早产生于60年代,发展于90年代,其产生和发展的重要条件是[1]:1.计算机的广泛应用:近30年来,计算机的处理速度越来越快,处理能力越来越强,价格越来越低,应用越来越广泛,这为电子商务的应用提供了基础;2.网络的普及和成熟:由于INTERNET逐渐成为全球通信与交易的媒体,全球上网用户呈级数增长趋势,快捷、安全、低成本的特点为电子商务的发展提供了应用条件:3.信用卡的普及应用:信用卡以其方便、快捷、安全等优点而成为人们消费支付的重要手段,并由此形成了完善的全球性信用卡计算机网络支付与结算系统,使“一卡在手、走遍全球”成为可能,同时也为电子商务中的网上支付提供了重要的手段;4.电子安全交易协议的制定:1997年5月31日,由美国VISA和Mastercard国际组织等联合制定的SET(SecureElectronicTransfer4 武汉理工大学硕士学位论文Protoc01)即电子安全交易协议的出台,以及该协议得到大多数厂商的认可和支持,为开发网络上的电子商务提供了一个关键的安全环境;5.政府的支持与推动:自1997年欧盟发布了欧洲电子商务协议,美国随后发布“全球电子商务纲要”以后,电子商务受到世界各国政府的重视,许多国家的政府开始尝试“网上采购”,这为电子商务的发展提供了有利的支持;电子商务发展的两个阶段:12]1.60年代一90年代:基于EDI的电子商务从技术的角度来看,人类利用电子通讯的方式进行贸易活动已有几十年的历史了。早在本世纪60年代,人们就开始了用电报报文发送商务文件的工作;70年代人们又普遍采用方便,快捷的传真机来替代电报,但是由于传真文件是通过纸面打印来传递和管理信息的,不能将信息直接转入到信息系统中,因此人们开始采用EDI(电子数据交换)作为企业间电子商务的应用技术,这也就是电子商务的雏形。EDI在60年代末期产生于美国,当时的贸易商们在使用计算机处理各类商务文件的时候发现,由人工输入到一台计算机中的数据70%是来源于另一台计算机输出的文件,由于过多的人为因素,影响了数据的准确性和工作效率的提高,入们开始尝试在贸易伙伴之间的计算机上使数据能够自动交换,EDI应运而生。EDI(ElectronicDataInterchange):是将业务文件按一个公认的标准从一台计算机传输到另~台计算机上去的电子传输方法。由于EDI大大减少了纸张票据,因此,人们也形象地称之为“无纸贸易”或“无纸交易”。2.90年代以来:基于国际互联网的电子商务由于使用VAN的费用很高,仅大型企业才会使用,因此限制了基于EDI的电子商务应用范围的扩大。20世纪90年代中期后,国际互联网(INTERNET)迅速走向普及化,逐步地从大学、科研机构走向企业和百姓家庭,其功能也已从信息共享演变为一种大众化的信息传播工具。从1991 武汉理工大学硕士学位论文年起,一直排斥在互联网之外的商业贸易活动正式进入到这个王国,因此而使电子商务成为互联网应用的最大热点。以直接面对消费者的网络直销模式而闻名的美国戴尔(Dell)公司1998年5月的在线销售额高达500万美元,该公司期望2000年在线收入能占总收入的一半。另~个网络新贵亚马逊(Amazon.com)网上书店的营业收入从1996年的1580万美元猛增到1998年的4亿美元。三年前开办的eBay公司是互联网上最大的个人对个人的拍卖网站,这个跳蚤市场1998年第一季度的销售额就达1亿美元。像这样的营业性网站已从1995年的2000个急升为1998年的42.4万个。面对电子商务如此迅猛的发展趋势,弗雷斯特(Forrester)公司不得不将它对于2002年电子商务的预测由原来的3270亿美元改为8427亿美元。电子商务的优点:f2H4l电子商务是Internet爆炸式发展的直接产物,是网络技术应用的全新发展方向。Internet本身所具有的开放性、全球性、低成本、高效率的特点,也成为电子商务的内在特征,并使得电子商务大大超越了作为一种新的贸易形式所具有的价值,它不仅会改变企业本身的生产、经营、管理活动,而且将影响到整个社会的经济运行与结构。总的来说电子商务有以下几个优点:I.电子商务将传统的商务流程电子化、数字化,一方面以电子流代替了实物流,可以大量减少人力、物力,降低了成本;另一方面突破了时间和空间的限制,使得交易活动可以在任何时间、任何地点进行,从而大大提高了效率。2.电子商务所具有的开放性和全球性的特点,为企业创造了更多的贸易机会。3.电子商务使企业可以以相近的成本进入全球电子化市场,使得中小企业有可能拥有和大企业一样的信息资源,提高了中小企业的竞争能力。4.电子商务重新定义了传统的流通模式,减少了中间环节,使褥生 武汉理工大学硕十学位论文产者和消费者的直接交易成为可能,从而在一定程度上改变了整个社会经济运行的方式。5.电子商务一方面破除了时空的壁垒,另一方面又提供了丰富的信息资源,为各种社会经济要素的重新组合提供了更多的可能,这将影响到社会的经济布局和结构。2.2电子商务的基本商务模式目前,主要的电子商务的商业模式主要有四种:[1][4]1.BtoB(企业对企业)电子商务主要是进行企业间的商品批发业务。电子商务其实远不止是网络零售业,更核心的是市场潜力比零售业大一个数量级的企业级电子商务。BtoB电子商务模式是一个将买方、卖方以及服务于他们的中间商之间的信息交换和交易行为集成到一起的电子运作方式。而这种技术的使用从根本上改变企业的计划、生产、销售和运行模式,甚至改变整个产业的基本生产方式。以此,这种企业之间的电子商务经营模式越来越受重视,是电子商务的一个重要的发展方向。2.BtoC(企业对个人)亚马逊网上书店就是采用这种商业模式的网站。它利用网络对广大的消费者介绍和推销书,通过网上银行进行交易,利用快递公司运送产品。这种方式也称为电予零售。3.CtoC(个人对个人)这种模式中,商品直接由消费者出售给消费者,例如个人以分类广告形式出售住房、汽车等。因特网上的个人服务广告和知识技能的出售也是CtoC的例子。4.ctoB(个人对企业)这个类别包括个人使用因特网将产品和服务出售给企业的情况,也包括个人寻求买家,于其进行交涉并达成交易的情况。2.3特殊的一种商务模式在我国的医药行业中,由于药品是国家管制商品,不是任何的商家 武汉理T大学硕士学位论文都有销售权的。因此,制药公司是没有直接面向消费者销售产品的权利的,只有国家规定的一些经销商才可以销售药品,那么制药公司的客户也就是一些特定的经销商。但是由于在国内商家的信誉不能保证,制药企业一般在各个省区都设有办事处,由办事处来处理企业和当地经销商之间的销售业务。由于以上的原因,在医药行业中的商务模式基本都是采用的企业对本企业模式(BusinesstoSelf简称BtoS)。Btos这种销售模式在医药行业中的具体操作是:首先各地的销售办事处和当地的经销商签订销售合同,合同由总公司人员审核后执行;经销商根据已签订的合同,通过当地销售办事处联系每次的发货,也就是下订单;总公司审核订单,然后发货;各地销售办事处负责检查货物是否发到;各地的销售办事处还要负责催促经销商回款;经销商回款后,公司根据回款做结算,并开出发票邮寄给经销商;各地的销售办事处要查看发票是否寄到。这样整个的销售流程就完成了。在整个流程中的合同、订单、发票都是在网上填报和审核的,而且与公司交涉的也都是公司内部的职员。这种商务模式主要的功能是在公司内部共享信息、发布信息和传递信息。以Btos商务模式建立的电子商务系统的用户都是公司内部职员,主要的功能是在公司内部传递信息和数据。 武汉理_L=人学硕士学位论文第三章Microsoft.NET概述3.1.NET的简介2000年6月22日,不论对Miorosoft还是对整个IT业界都将成为值得纪念的一天。这一天,微软公司正式推出了其下一代计算计划——Microsoft.NET。这项计划将使微软现有的软件在Web时代不仅适用于传统的PC,而且也能够满足目前呈强劲增长势头的新设备,诸如移动电话以及个人数字助理(PersonalDigitalAssistant)等的需要。.NET统一了编程类库,提供了对下一代网络通信标准,对可扩展标记语言(ExtensibleMarkupLanguage,XML)的完全支持,使应用程序的开发变得更简单。如果引用Miorosoft总裁兼首席执行宫史蒂夫.鲍尔墨的话:“.NET代表了一个集合、一个环境、~个编程的基本结构,作为一个平台来支持下~代的互联网。.NET也是~个用户环境,是一组基本的用户服务,可以作用于客户端、服务器或任何地方,与改编成模式具有很好的一致性,并有新的创意。因此,它不仅是一个用户体验,而且也是开发人员体验的集合,这就是对.NET的概念性描述。”1131⋯13.1.1.NET的背景互联网改变了我们的通信方式,带来了丰富的信息和新的娱乐资源,使社会步入了“电子商务”时代。尽管取得如此辉煌的业绩,但仍有很大的改进余地。.Net开发平台的发布标志着近十年来微软开发平台第一个重大的转变。这个开发平台包括一个用于加载和运行应用程序的新的软件基础结构(.NETFramework和ASP.NET),一个新的开发环境(VisualStudio.NET),以及支持该结构的编程语言。 武汉理]:大学硕士学位论文微软希望随着这个新平台的发布,评论不再将这个平台作为艨胧的软件,而且开发者也将发现该平台使得Windows上Web应用程序(尤其是WebService)的开发更为容易。这样或许会使更多的开发者拥护公司的操作系统和服务器产品,并将他们从与Java平台的竞争中吸引过来。微软的客户可以将该平台用作应用程序的更可靠、更安全和更统一的标准,而微软的合伙伙伴则可以通过帮助为该平台创建早期的胜利来加强与公司的联系。无论是客户还是合伙厂商都应该意识到,新的平台要求他们从根本上掌握新的应用程序编程接口和编程语言,而且它能将他们锁定在微软的操作系统和服务器产品上。微软希望能够藉此平台保留住它庞大的Windows开发用户的基础,否则由于Java向开发者所做的硬件与操作系统(OS)无关性的承诺,这些用户群可能会转向其它的平台。开发者本身不会给微软(或任何其他针对此事的公司)带来很多收益。不过,Windows程序员是公司内对微软产品(例如Windows本身)的极大的支持力量,而商用软件的开发者形成了向客户发售微软产品的重要渠道。如果微软可以让开发者在新的.NET开发平台下写应用程序的话,那么就会有更多的公司购买windowsServer和.NETEnterpriseServer(。NET企业服务器),包括SQLSever、Exchange、SharePoint、CommerceServer以及BizTalk等。IS]3.1.2.NET的组成.NET开发平台包括以下内容:161[4711、.NETFramework(架构),包括:CommonLanguageRuntime(CLR)(通用语言运行环境),这是用于运行和加载应用程序的软件组件;新的类库,分级组织了开发者可以在他们的应用程序中用来显示图形用户界面、访问数据库和文件以及在Web上通信的代码集。2、.NET开发者工具,包括:VisualStudio.NETIntegratedDevelopmentEnvironment(IDE)(VisualStudio.NET集成开发环境),用来开发和测试应用程序:.NET编程语言(例如VisualBasic.NET和新的VisualC#),用来创建运行在CLR下,并且使用类库的应用程序。 武汉理I:大学硕士学位论文3、ASP.NET,一个取代以前的ActiveServerPages(ASP)的特殊类库,用来创建动态的Web内容和Web服务器应用程序,这些都将采用诸如HTML、XML和SimpleObjectAccessProtocol(SOAP)(简单对象访问协议)等Internet协议和数据格式。3.1.3.NET的优势.NET的平台是基于Microsoft软件工业基础的又一次升级和演化。它的优势:161。fq1、标准的集成:XML、SOAP以及其它以往,Microsoft的构件都是建立在COM/DCOM上的,不能够很容易地同其他软件平台协同工作。除了COM缺乏互用性以外,数据是另一个问题。ADO能够允许对数据的轻易访问,但是在把这个数据从一个地方传递到另一个地方的时候就可能会出现问题。ADO记录集对象是一个存储数据的二进制结构。SOAP是一个基于XML能同Web服务进行通信的协议。SOAP的集成使得任何客户端都能够通过编程来轻易地访问,而不管客户端正在运行的是否是Microsoft的操作系统。2、轻松部署COM的部署一直就是最困难的问题。COM大量使用了Windows注册表来定位机器里的组件。这个概念是好的:已注册的组件只会有一个单一的实例,所有的应用程序都会使用同一个版本。COM承诺新版本能够保持和旧版本的兼容性,但是开发人员有时可以不受限制而破坏这种兼容性。.NET使用了不同的方法:它根本就不使用注册表。Microsoft推荐的方法是,让组件(在。NET里叫做assemb]ieS)都成为每个应用程序的本地组件。由于.NET并不使用注册表,所以大部分开发工作只需简单地使用复制命令就能做到。通常没有必要开发安装文件。而且Web应用程序不会锁定组件,所以就不需要关闭应用程序来升级DLL了。 武汉理:I:大学硕士学位论文3、Web服务支持有了.NET,开发Web服务变得十分简单。可以使用记事本来创建简单的Web服务,甚至还不需要通过编译器来运行它们:只需要简单地调用它们,.NET就会对其进行编译,生成一个测试页面,这样可以查验它们是否能够正常工作。.NET拥有所需要的全部工具,并能生成所需要的文件。对于发送数据来说,Web服务是非常好的。有了ADO.NET,Web服务能够接纳简单的或者复杂的数据,并把它以严谨的XML格式发送到任何客户端,这个格式晕还带有~个链接,用于返回到描述数据结构描述的XSD(XML定义语言)。4、用于任何.NET语言的标准工具集有一个统一的IDE、调试器和其他类似的工具。这就可以让其他公司把他们自己的语言插入到IDE里,同时还能获得.NET工具的全部支持。例如,Fujitsu创造了netCOBOL.NET,它直接集成到了IDE罩,所以可以使用COBOL来编写Web服务和Windows应用程序,并得到由Microsoft提供的调试工具和分析工具。.NET是足够开放的,所以其他的软件生产商也能提供自己的工具。例如Borland已经表示它下一个版本的Delphi将能够创建.NET的应用程序。5、对移动设备的支持在发布VisualStudio.NET后不久,Microsoft就发布了Microsoft移动因特网工具包(MMIT),这样就能够使用.NET创建更多的移动应用程序。这允许直观地把控件拖放到用于移动设备的窗体里。这个工具包处理的是编写适当的标记语言(例如WAP的WML等等)。6、自我管理的代码.NET的管理代码特性,是很重要的,为了减少错误、创建更多可伸缩的应用程序等。.NET能够处理的任务如分配和恢复内存、创建和清除线程和进程,以及处理运行代码的访问许可。7、对平台非依赖性 武汉理T大学硕士学位论文虽然.NET是为Microsoft的操作系统创建的,但是Microsoft的确向ECMA标准委员会提交了Framework和c#的一部分。Mono计划,一个用于Linux的.NET工具,包括了Framework和一个c#编译器。这就意味着有许多应用程序,尤其是基于Web的应用程序,一次写好就能够运行在多种平台上。8、不缺乏学习资源学习.NET非常方便快捷,而且和.NET相关的书籍可能要比其它编程技术的书要多。由Microsoft和第三方提供的无数课程都能够让开发人员迅速上路。此外,有许多Web网站都提供了让开发人员转移到.NET的技巧和教程。9、现代化的语言VB.NET和C#都是现代化的语言。它们都是完全面向对象的,而且从设计上就消除了在VB和c++里发现的许多矛盾。这些语言都是建立在基于组件的方法之上的。3.2.NETFramework.NETFramework是一种新的计算平台,它简化了在高度分布式Internet环境中的应用程序开发。.NETFramework旨在实现下列目标【9】【lOl:●提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和执行,还是在本地执行但在Internet上分布,或者是在远程执行的。●提供一个将软件部署和版本控制冲突最小化的代码执行环境。●提供一个保证代码(包括由未知的或不完全受信任的第三方创建的代码)安全执行的代码执行环境。·提供一个可消除脚本环境或解释环境的性能问题的代码执行环境。●使开发人员的经验在面对类型大不相同的应用程序(如基于 武汉理工人学硕士学位论文Windows的应用程序和基于Web的应用程序)时保持一致。●按照工业标准生成所有通信,以确保基于.NETFramework的代码可与任何其他代码集成。.NETFramework具有两个主要组件:公共语占运行库和.NETFramework类库。公共语言运行库是.NETFramework的基础。您可以将运行库看作一个在执行时管理代码的代理,它提供核心服务(如内存管理、线程管理和远程处理),而且还强制实施严格的类型安全以及可确保安全性和可靠性的其他形式的代码准确性。事实上,代码管理的概念是运行库的基本原则。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。.NETFramework的另一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,您可以使用它开发多种应用程序,这些应用程序包括传统的命令行或图形用户界面(GUI)应用程序,也包括基于ASP.NET所提供的最新创新的应用程序(如Web窗体和XMLWebservices)。3.3CLR(CommonLanguageRuntime)CommonLanguageRuntirae(CLR)(通用语言运行环境),是一个软件引擎,用来加载应用程序,确认它们可以没有错误地运行,进行相应的安全许可验证,执行应用程序,然后在完成后将它们清除。CLR有两个主要的目标:●提高应用程序的稳定性和安全性●减少应用程序开发者所必须写的冗长而又易出错的底层代码的容量这两个目标类似于诸如Sun和IBM等厂商试图用Unix和主机上的Java平台去解决的问题。为了解决Windows上的这些问题,CLR对加载和执行应用程序的编程模型做了根本的改变。⋯1 武汉理工大学硕士学位论文3.3.1CLR如何工作~个应用程序是作为称作汇编的文件或文件集进入CLR的。这个汇编包是MicrosoftIntermediateLanguage(MSIL)代码,CLR将其翻译成可执行的本机代码。由于可以对从MSIL到本机代码的应用程序翻译的控制,使得CLR可以管理应用程序的执行并且防止各种问题的发生,因此也就有了术语可控制代码。除了MSIL代码,汇编还包含有详细描述了MSIL代码正确执行所需的各种相关数据类型的元数据。最后,汇编还包括一个清单——一个列出了汇编中所有文件和软件组件的文档,该文档还指出CLR在哪里可以找到具有应用程序运行所需组件的其它汇编。为了加载一个应用程序,CLR使用汇编的清单来确定应用程序所需的汇编的正确版本。然后CLR检查应用程序的全部汇编——即,MSIL代码本身与描述它的元数据——从而确认代码是“类型安全”的,这表明它只执行对恰当数据类型的恰当的操作(也就是说,它不会允许丌发者使用一个整数作为一个函数指针),而且它只访问经过授权可以访问的内存位置。接下来CLR加载应用程序的汇编中的MSIL,并且在此过程中,收集有关汇编的“证据”,例如:●它是从哪里下载或安装的●它需要执行什么功能(也就是说,它是否需要写文件或发E-mail)·什么用户试图运行它●汇编是否拥有来自信任的开发者的数字签名,以及进行数字签名后汇编是否有改动。这些证据构成了。NETFramework中的安全要素,使得CLR可以判断是否运行应用程序,以及运行时需要具有什么许可。接下来,CLR将MSIL代码翻译成处理器可以执行的本机代码。(微软将此称为“可控制的本机代码”,以与“不可控制的本机代码”相区分,后者是用C++这样较老的语言写的,CLR对其没有控制。)一项称为Just—in—Time(JIT)编译的能力使得CLR能将翻译过程延迟至真『F需要 武汉理工大学硕__}:学位论文它时,这样就使CLR避免翻译不常用的代码。最后,CLR监控翻译代码的运行,并且定期清空应用程序释放的内存(使用一个称作“碎片整理”的进程)。⋯1[4713.3.2CLR的优点CLR通过下列方法增强了应用程序的可靠性:1+71¨”●减少了不同版本组件间的冲突。CLR可以帮助避免在一台机器上安装相冲突的软件组件时发生的问题——现在的Windows应用程序如果试图加载不正确版本组件时可能失败。当CRL加载一个应用程序时,它使用元数据和汇编清单来确保它加载了所有组件的正确版本。例如如果应用程序需要访问数据库,CLR就使用清单中的信息来寻找并加载版本J下确的数据访问组件。系统也允许并列安装多个版本的组件。●减少了由于通常的编程错误所带来的bug和安全漏洞的数量。CLR监控代码以确保它不会有通常的编程错误,这些错误可能导致程序执行不正确的功能,例如试图使用一个整数作为函数指针,强行将数值型数据存放到分配给文本数据的位置,或者是载入数据时覆盖代码(由于缓冲溢出)。减少来自这些通常的编程错误的bug意味着应用程序不但运行得更可靠,而且攻击者有机可乘的漏洞和弱点也更少。●增强的安全性能使恶性代码的运行更为困难。因为CLR可以理解每个应用程序的代码的身份和来源,所以它可以决定应用程序是否被允许执行特定的任务(例如读写本地存储器或者发送E-mail)。这给现在的安全模型增加了另外一层保护,在现在的安全模型中应用程序是在用户账号的安全背景下运行(例如,管理员机器上所有的应用程序都用管理员级的许可在运行)。●内存泄漏更少。如果内存和组件分配给一个应用程序使用,但却得不到释放,这样就会导致系统超出内存运行,要么会冲击系统,要么就需重新启动、释放内存。CLR的内存管理和碎片整理可大大降低这种问题发生的可能性。 武汉理:L大学硕士学位论文●组装函数(Plumbingfunctions)减少了bug,同时也节约了丌发者的时间。最后,cI。R提供了许多与内存和对象管理、数据编组,以及线程(thread)相关的低级的,或组装函数。这不仅通过降低bug的发生可能性而建立了更好的可靠度,而且还使得程序员能将精力集中于那些用于他们特定的应用程序的“行业”代码上,而不必重新实现标准的Windows函数。●CLR执行的一项非常重要的功能是在可控制代码和不可控制代码(即脱离CLR运行的传统的Windows代码)间起中介作用。特别地,它使开发者可以将新的.NET代码与现存的Windows库和COM组件结合起来,并将一个应用程序逐渐地从老平台迁移到新平台上来。不过,需要指出的是,不可控制代码脱离CLR的控制而运行,因此有可能冲击应用程序,泄露内存,或者通过缓冲溢出打开安全漏洞。一个.NET应用程序只是和它的最弱环节——它的不可控制代码一样强壮。3.4ADO.NET简介ADO.NET提供对MicrosoftSOLServer等数据源以及通过OLEDB和XML公开的数据源的一致性访问。数据共享使用者应用程序可以使用ADO.NET来连接到这些数据源,并检索、操作和更新数据。ADO.NET有效地从数据操作中将数据访问分解为多个可以单独使用的不连续组件。ADO.NET包含用于连接到数据库、执行命令和检索结果的.NETFramework数据提供程序。您可以直接处理检索到的结果,或将其放入ADO.NETDataSet对象,以便与来自多个源的数据或在层之间进行远程处理的数据组合在一起,以特殊方式向用户公开。ADO.NETDataSet对象也可以独立于.NETFramework数据提供程序使用,以管理应用程序本地的数据或源自XML的数据。 武汉理工大学硕十学位论文3.4.1ADO.NET的设计目标随着应用程序开发的发展演变,新的应用程序已基于Web应用程序模型越来越松散地耦合。如今,越来越多的应用程序使用XML来编码要通过网络连接传递的数据。Web应用程序将HTTP用作在层间进行通信的结构,因此它们必须显式处理请求之间的状态维护。这一新模型大大不同于连接、紧耦合的编程风格,此风格曾是客户端/服务器时代的标志。在此编程风格中,连接会在程序的整个生存期中保持打开,而不需要对状态进行特殊处理。在设计符合当今开发人员需要的工具和技术时,Microsoft认识到需要为数据访问提供全新的编程模型,此模型是基于.NETFramework生成的。基于.NETFramework这一点将确保数据访问技术的一致性一组件将共享通用的类型系统、设计模式和命名约定。设计ADO.NET的目的是为了满足这一新编程模型的以下要求:具有断开式数据结构;能够与XML紧密集成:具有能够组合来自多个、不同数据源的数据的通用数据表示形式;以及具有为与数据库交互而优化的功能,这些要求都是.NETFramework固有的内容。在设计ADO.NET时,Microsoft具有以下设计目标咖】.[241149]。l、利用当前的ADO知识ADO.NET的设计满足了当今应用程序开发模型的多种要求。同时,该编程模型尽可能地与ADO保持一致,这使当今的ABO开发人员不必从头开始学习全新的数据访问技术。ADO.NET是.NETFramework的固有部分,因此对于ADO程序员决不是完全陌生的。ADO.NET与ADO共存。虽然大多数基于.NET的新应用程序将使用ADO.NET来编写,但.NET程序员仍然可以通过.NETCOM互操作性服务来使用ADO。2、支持N层编程模式ADO.NET为断开式n层编程环境提供了一流的支持,许多新的应用程序都是为该环境编写的。使用断开式数据集这一概念已成为编程模型中 武汉理T火学硕士学位论文的焦点。i3层编程的ADO.NET解决方案就是DataSet。3、集成XML支持XML和数据访问是紧密联系在一起的,即XML的全部内容都是有关数据编码的,而数据访问越来越多的内容都与XML有关。.NETFramework不仅支持Web标准,它还是完全基于Web标准生成的。.NETFramework和ADO.NET中的XML类是同一结构的一部分,它们在许多不同的级别集成。您不必在数据访问服务集和它们的XML相应服务之间进行选择;它们的设计本来就具有从其中一个跨越到另一个的功能。3.4.2ADO与ADO.NET比较我们可以通过将ADO,NET的各项功能与Active)[数据对象(ADO)的特定功能进行比较来理解ADO.NET的功能。[231[4911、数据的内存中表示形式在ADO中,数据的内存中表示形式为记录集。在ADO.NET中,它为数据集。它们之间有重要的差异。2、表的个数记录集看起来像单个表。如果记录集将包含来自多个数据库表的数据,则它必须使用JOIN查询,将来自各个数据库表的数据组合到单个结果表中。相反,数据集是一个或多个表的集合。数据集内的表称为数据表:明确地说,它们是DataTable对象。如果数据集包含来自多个数据库表的数据,它通常将包含多个DataTable对象。即,每个DataTable对象通常对应于单个数据库表或视图。这样,数据集可以模仿基础数据库的结构。数据集通常还包含关系。数据集内的关系类似于数据库中的外键关系,即它使多个表中的行彼此关联。例如,如果数据集包含一个有关投资者的表和另一个有关每个投资者的股票购买情况的表,则数掘集可能还包 武汉理:[人学硕士学位论文含一个关系来连接投资者表的各个行和购买表的对应行。由于数据集可以保存多个独立的表并维护有关表之间关系的信息,因此它可以保存比记录集丰富得多的数据结构,包括白关联的表和具有多对多关系的表。3、数据导航和游标在ADO中,您使用ADO的MoveNext方法顺序扫描记录集的行。在ADO.NET中,行表示为集合,因此您可以像依次通过任何集合那样依次通过表,或通过序号索引或主键索引访问特定行。DataRelation对象维护有关主记录和详细资料记录的信息,并提供方法使您可以获取与正在操作的记录相关的记录。例如,从Investor表的“NateSun”的行开始,可以定位到Purchase表中描述其购买情况的那组行。“游标”是数据库元素,它控制记录导航、更新数据的能力和其他用户对数据库所做更改的可见性。ADO.NET不具有固有的游标对象,而是包含提供传统游标功能的数据类。例如,在ADO.NET的DataReader对象中提供只读游标的功能。4、将打开连接的时间降至最低在ADO.NET中,打开连接的时间仅足够执行数据库操作,例如“选择”(Select)或“更新”(Update)。您可以将行读入数据集中,然后在不保持与数据源的连接的情况下使用它们。在ADO中,记录集可以提供不连接的访问,但ADO主要是为连接的访问设计的。ADO和ADO.NET中的不连接处理之间存在一个显著差异。在ADO中,通过调用OLEDB提供程序来与数据库通信。但在ADO.NET中,您通过数据适配器(01eDbDataAdapter、SqlDataAdapter、0dbcDataAdapter或OracleDataAdapter对象)与数据库通信,这将调用OLEDB提供程序或基础数据源提供的API。ADO和ADO.NET之间的主要区别在于:在ADO.NET中,数据适配器允许您控制将对数据集所做的更改传输到数据库的方式,方法是实现性能优化、执行数据验证检查或添加其他任何额外处理。数据适配器、数据连接、数据命令和数据读取器是组成.NET 武汉理工大学硕士学位论文Framework数据提供程序的组件。Microsoft和第三方供应商可能会提供其它提供程序,这些提供程序也可集成到VisualStudio中。5、在虑用程序问共亭数据在应用程序问传输ADO.NET数据集比传输ADO不连接的记录集要容易得多。若要将ADO不连接的记录集从一个组件传输到另一个组件,请使用COM封送。若要在ADO.NET中传输数据,请使用数据集,它可以传输XML流。相对于COM封送,XML文件的传输提供以下便利之处:●更丰宦的数据类型COM封送提供一组有限的数据类型(由COM标准定义的那些类型)。由于ADO.NET中的数据集传输基于XML格式,所以对数据类型没有限制。因此,共享数据集的组件可以使用这些组件一般会使用的任何丰富的数据类型集。●性能传输大型ADO记录集或大型ADO.NET数据集会使用网络资源;随着数据量的增长,施加于网络的压力也在增加。ADO和ADO.NET都使您可以最大限度地降低所传输的数据。但ADO.NET还提供另一个性能优势:ADO.NET不需要数据类型转换。而需要COM封送来在组件间传输记录集的ADO,则需要将ADO数据类型转换为COM数据类型。●穿透防火墙防火墙可以影响试图传输不连接的ADO记录集的两个组件。请记住,防火墙通常配置为允许HTML文本通过,但防止系统级请求(如COM封送)通过。因为组件使用XML交换ADO.NET数据库,所以防火墙可以允许数据集通过。3.5ADO.NET的体系结构设计ADO.NET组件的目的是为了从数据操作中分解出数据访问。ADO.NET的两个核心组件会完成此任务:DataSet和。NETFramework数 武汉理工大学硕士学位论文据提供程序,后者是一组包括Connection、Command、DataReader和DataAdapter对象在内的组件。ADO.NETDataSet是ADO.NET的断开式结构的核心组件。DataSet的设计目的很明确:为了实现独立于任何数据源的数据访问。因此,它可以用于多种不同的数据源,用于XML数据,或用于管理应用程序本地的数据。DataSet包含一个或多个DataTable对象的集合,这些对象由数据行和数据列以及主键、外键、约束和有关DataTable对象中数据的关系信息组成。ADO.NET结构的另一个核心元素是.NETFramework数据提供程序,其组件的设计目的相当明确:为了实现数据操作和对数据的快速、只进、只读访问。Connection对象提供与数据源的连接。Command对象使您能够访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。DataReader从数据源中提供高性能的数据流。最后,DataAdapter提供连接DataSet对象和数据源的桥梁。DataAdapter使用Command对象在数据源中执行SQL命令,以便将数据加载到DataSet中,并使对DataSet中数据的更改与数据源保持一致。可以为任何数据源编写.N朗’Framework数据提供程序。,NETFramework提供了四个.NETFramework数据提供程序:SQLServer.NETFramework数据提供程序、OLEDB。NETFramework数据提供程序、ODBC.NETFramework数据提供程序和Oracle.NETFramework数据提供程序。下图阐释了ADO.NET结构的组件。 武汉理【:大学硕士学位论文图l、ADO.NET结构图3.5.1数据提供程序(DataProvider).NETFramework数据提供程序用于连接到数据库、执行命令和检索结果。您可以直接处理检索到的结果,或将其放入ADO.NETDataSet对象,以便与来自多个源的数据或在层之间进行远程处理的数据组合在一起,以特殊方式向用户公开。.NETFramework数据提供程序在设计上是轻量的,它在数据源和代码之间创建了一个最小层,以便在不以功能为代价的前提下提高性能。组成。NETFramework数据提供程序的四个核心对象分别为:125t1、Connection对象它负责建立与特定数据源的连接2、Command对象它负责对数据源执行命令。公开Parameters,并且可以从Connection在Transaction的范围内执行。3、DataReader对象它负责从数据源中读取只进且只读的数据流。4、DataAdapter对象它负责用数据源填充DataSet并解析更新。.NETFramework包括SOLServer.NETFramework数据提供程序 武汉tN_3-大学硕士学位论文(用于MicrosoftSOLServer7.O版或更高版本)、OLEDB.NETFramework数据提供程序和ODBC,NETFramework数据提供程序。l、SOLServer.NETFramework数据提供程序使用它自身的协议与SOLServer通信。由于它经过了优化,可以直接访问SOLServer而不用添加OLEI)B或开放式数据库连接(ODBC)层,因此它是轻量的,并具有良好的性能。下图对比了SOLServer.NETFramework数据提供程序和OLEDB.NETFramework数据提供程序的异同。OLEDB.NETFramework数据提供程序通过OLEDB服务组件(它提供连接池和事务服务)和数据源的OLEDB提供程序与OLEDB数据源进行通信。2、OLEDB.NETFramework数据提供程序通过COMInterop使用本机OLEDB启用数据访问。OLEDB.NETFramework数据提供程序支持本地事物和分布式事务两者。对于分步式事务,默认情况下,OLEDB.NETFramework数据提供程序自动登记在事务中,并从Windows2000组件服务获取事务详细信息。3、ODBC.NETFramework数据提供程序通过COM使用本机OBBC驱动程序管理器(DM)启用数据访问。ODBC数据提供程序支持本地事物和分布式事务两者。对于分步式事务,默认情况下,OBBC数据提供程序自动登记在事务中,并从Windows2000组件服务获取事务详细信息。3.5.2数据集(DataSet)l、两种类型(主要区别是一个有数据的结构,一个没有)A、类型化数据集它先从基DataSet类派生,然后使用XML架构文件(.xsd文件)中的信息生成新类。架构中的信息(表、列等)被作为一组对象和属性生成并编译为此新数据集类。B、非类型化数据集相形之下,非类型化数据集没有相应的内置架构。非类型化数据集 武汉理_I:大学硕士学位论文也包含表、列等,但它们只作为集合公开。C、对比类型化和非类型化数据集中的数据访问类型化数据集的类有一个对象模型,在该对象模型中此数据集的表和列第一类对象。例如,如果使用的是类型化数据集,可以使用如下代码引用列:strings:s=dscustomersOrdersl.Customers[0].CustomerID:(其中dsCustomersOrdersl为数据集)相比较而言,如果使用的是非类型化数据集,等效的代码为:strings=(string)dsCustomersOrdersl.Tables[”Customers”].Rows[O][”CustomerID“]:类型化的数据集的优点m】:易于读取,完全受VisualStudio代码编辑器中智能感知的支持,在编译时提供类型检查,运行时对表和列的访问也略为快一些。非类型化的数据集的优点【491:尽管类型化数据集有许多优点,但在许多情况下需要使用非类型化数据集。最显而易见的情形是数据集无架构可用。更常见的是,许多时候可能需要动态创建无可用架构的数据集。例如,只有在运行的时候才知道数据集的结构时就一定要用非类型化的数据集。2、DataSet的结构●DataTableCollection~个ADO.NETDataSet包含DataTable对象所表示的零个或更多个表的集合。DataTableCollection包含DataSet中的所有DataTable对象。DataTable在System.Data命名空间中定义,表示内存驻留数据表。它包含DataColumnCollection所表示的列和ConstraintCollection所表示的约束的集合,这些列和约束一起定义了该表的架构。DataTable还包含DataRowColleetion所表示的行的集合,而DataRowCollection则包含表中的数据。除了其当前状态之前,DataRow还会保留其当前版本和初始版本,以标识对行中存储的值的更 武汉理工大学硕士学位论文改。图2、DataSet的结构图●DataRelationCollectiOnDataSet在其DataRelationc01lection对象中包含关系。关系由DataRelation对象来表示,它使一个DataTab]e中的行与另一个DataTuble中的行相关联。关系类似于可能存在于关系数据库中的主键列和外键列之间的联接路径。DataRelation标识DataSet中两个表的匹配列。关系使您能够在DataSet中从一个表导航至另一个表。DataRelation的基本元素为关系的名称、相关表的名称以及每个表中的相关列。关系可以通过一个表的多个列来生成,方法是将一组DataColumn对象指定为键列。当关系被添加到DataRelationCollection中时,如果已对相关列值作出更改,它可能会选择添加一个uniqueKeyconstraint和一个ForeignKeyConstraint来强制完整性约束。●ExtendedPropertiesDataSet(以及DataTab]e和DataColumn)具有ExtendedProperties属性。ExtendedProperties是一个PropertyCollection,您可以在其中放置自定义信息,例如用于生成结果 武汉理一【:大学硕士学位论文SELECT语句或表示数据生成时间的同期/时间戳。ExtendedProperties集合与OataSet(以及DataTable和DataColumn)的架构信息一起进行保持。㈣3.6本章小结本章详细介绍了.NET开发平台的基本概念,包括.NET的组成、.NETFramework、CLR和ADO.NET。我们可以看到.N£T平台的优点是十分明显的:标准的集成(XML、SOAP以及其它)、轻松部署、Web服务支持、用于任何.NET语言的标准工具集、对移动设各的支持、自我管理的代码、对平台非依赖性、不缺乏学习资源、现代化的语言。ADO.NET是.NET平台的数据存取程序,同时也是ADO的升级。但是和ADO又有很大的不同。ADO,NET的效率更高、操作更简单以及和操作系统的集成更紧密。数据集的断开式连接也是一个可喜的进步,不用长期占用数据库服务器的资源,而且对各种数据格式都可以灵活的进行数据的存取。 武汉理工人学硕士学位论文第四章构造企业级分布式应用程序4.1企业级分布式应用程序模板VisualStudio为结构设计者提供了一组企业级模板,用作开发更复杂应用程序的基础。这些模板基于应用程序试图完成的任务,而不是集中于所使用的编程语言。企业级分布式应用程序通常需要描述多个项目的大型解决方案。它们往往涉及多种开发语言和很多平台服务以确保应用程序可缩放、易管理并且安全。创建该类应用程序是~项复杂而耗时的任务,通常的做法是从一个空白的解决方案开始,然后从数百个组件、项目类型以及用户界面元素中进行选择。通过使用“企业级模板”软件,体系结构设计者可以为开发组提供有关如何在一个体系结构中工作的指导说明,使开发人员不必进行涉及选择组件和项的决策(这些决策不应成为开发人员的负担)。例如,企业级模板可以通过动态修改VisualStudio的集成开发环境(IDE)功能来简化这些选择。通过提供起始项目结构以及在添加组件、公开属性和赋值时提供连续开发指导,企业级模板还可向开发人员和管理人员提供大量的帮助。企业级模板由三个主要项组成:图1企业级模板VisualStudio提供带有各种复杂性、多语言的原型项目的企业级模板。这些原型项目还附有策略文件,您可以使用并修改策略文件以适合自己的项目需要。还提供了一个项目,您可以从中创建自己的模板,附加自己的策略文件,并在“添加新项目”对话框中显示它以备将来项目使用。企业级模板的特点:f331 武汉理工大学硕士学位论文●企业级模板是为解决某个特定类型的问题而设计的。这点优先于其他因素(如使用的编程语言或技术)。●企业级模板最常见的用途是创建多个具有相同类型或结构和设计规则的应用程序。·用企业级模板生成的项目可以包含用相同或不同语言编写的多个语言项目。·使用企业级模板生成业务应用程序之前,必须先自定义它。4.1.1企业级分布式应用程序的策略企业级应用程序由许多单独项目组成,这些项目提供组件、接口和服务。使用企业级模板,可以快速提供创建复杂的分布式应用程序结构所需要的初始解决方案结构。另外,企业级模板帮助定义策略和最佳实施策略,简化VisualStudio集成开发环境(IDE)并对整个开发过程提供指导。企业级模板指定三项:●初始解决方案结构及其项目在解决方案资源管理器中打开某企业级模板解决方案,将显示该解决方案的结构以及填充它的初始项目。●上下文信息及相关联帮助主题使用关键字和上下文属性,企业级模板还可以控制帮助主题和自定义指导页的显示。●策略文件策略文件描述组成多项目应用程序的元素,并随着开发人员在单个项目上的工作来自定义VisualStudioIDE。策略文件很重要,因为策略文件不断改造VisualStudio环境,帮助开发人员在整个开发过程中遵守首选实施策略。149j 武汉理一I:大学硕士学位论文4.1.2优点软件结构设计者经常评估新的技术,探索它们可能的用法,并推荐最好的做法。企业级模板为结构设计者提供了分发和实施这些建议的方法。企业级模板执行三种基本服务,提高开发的有效性并降低分布式应用程序的整体成本:【49J㈣【”1●定义分布式应用程序的初始结构企业级模板以初始应用程序结构和策略的形式提供结构层次指导,定义可以在哪里使用各种组件和技术。VisualStudio提供了多个面向一般分布式应用程序的模板。通常,该通用结构将应用程序划分为一组组件(如Web/Windows用户服务、业务外观/逻辑、数据服务/存储),并用语言项目填充解决方案的每一层以提供应用程序的组件、接口和服务。●为开发人员降低复杂性企业级模板通过只提供单位的结构设计专家建议的选项,使缺少经验的开发人员可以比较容易地做出适当的选择,而不用分析开发过程中的每个分歧点。企业级模板实现首选的开发策略,控制Visua]Studi0集成开发环境(IDE)中可用的选项和属性,指定自定义帮助来指导项目完成。这些开发策略适用于整个应用程序、项目、类和其他解决方案项。·提供结构层次指导和技术指导结构层次指导是关于使用应用程序结构的已证实、可重用的构造块。每个企业级模板均通过以下各项操作来提供这种结构层次指导:定义基本应用程序结构,提供起始项目文件,控制关联开发策略,通过动态帮助和任务列表项来显示适当的开发人员指导信息。策略和指导信息推动开发人员完成应用程序的最终组件、接口和服务。技术指导是关于使用适合于贵公司结构的已知技术。每家公司都有自己独特的一套方法和物理约束,它们要求特殊过程以及自定义结构。使用企业级模板,可以创建可重用的、为支持贵公司要求而量体定做的模板。使用新技术(或新版本技术)的项目几乎都包含某种隐藏默认设置, 武汉理工火学硕士学位论文这种设置会以某种意外的方式损坏系统。识别特定默认设置并确定其为问题的原因会延迟开发进度,直到其被修复。使用企业级模板,可以实现策略(您自己的一组规则)来配置组件或服务,设置正确的属性值,帮助保持项目按进度进行。符合本地标准,使用已知组件和您自己的内部解决方案是快速生成分布式应用程序的可靠步骤。4.2企业级分布式应用程序结构企业级模板关联的概念基于~个常规分布式应用程序结构并围绕这个结构而建立,Microsoft最近几年为降低企业范围内应用程序的复杂性而开发了这个结构。这一模型有时被称为“多层结构”(Multitier),原因是它可以非常容易地按照逻辑分组来加以理解。由于使用的是模板,因此某些决策甚至在您打开一个项目之前就已经确定了。其优点在于减少了工作量和计划时间,但它也意味着您放弃了一些控制。其中之一就是您无法选择实现附加服务的位置。各种分布式应用程序模板提供了使用分布式结构开发应用程序的标准方法。使用模板的同时即选择了在标准位置实现服务,并无需实现所有的层。对于那些要实现的服务,模板假定它们将在与分布式应用程序结构相一致的层中实现。例如,如果需要XMLWebservices,在“Web服务项目”层中实施它,而不是将它添加到客户端或业务逻辑层。在每一个主要的组中都存在附加类别,用于提供应用程序必须提供的所有服务范围。在VisualStudio的分布式应用程序模板中,这些逻辑部分可以通过以下方式查看:f”l【33】149]●用户服务主要是指客户端实现的类型。●业务服务通常由多个层构成,提供与多种业务功能相关的服务器端服务。●数据访问和持久性服务包括存储分布式应用程序的数据的物理数据库和该数据库中所包含的数据的接口。 武汉理二[大学硕士学位论文在这些层次内部以及在它们之间,使用了VisualStudio.NET和Windows的关键技术,以提供安全性、可扩展性和性能等等。显而易见,在每一个类别(或层)中,特定的基础元素和组件会在多种企业级应用程序中重现。4.2.1系统框架层系统框架项目层与提供系统服务、系统基础结构功能或其他共享功能的应用程序的组件相关。这一功能可能不是特定于任何给定的应用程序的。系统框架项目层可由系统结构中的任何层使用。此外,强类型的数据集驻留于系统类型层。当某些共享功能只在一个应用程序中使用,而其他共享功能在若干个应用程序之间共享时,可以考虑将它们分成不同的系统类型项目,4.2.2数据访问层数据访问项目层执行从数据库(或其他数据服务)获取数据或向数据库发送数据的功能。在分布式应用程序结构中,相应功能使用ADO.NET数据适配器和SOL服务器存储过程来完成。数据访问层的功能:1491●从“业务规则”层接收请求,从“数据服务”获取数据或向其发送数据。●使用存储过程获取数据,并可选用ADO.NET向数据库发送数据。●将数据库查询结果返回到“业务规则”层,作为强类型的ADO.NET数据集。 武汉理工大学硕士学位论文4.2.3业务规则层业务规则项目块包含业务对象本身以及应用于它们的规则。这也是主要业务对象所在的位置。它们实现业务实体或系统对象。系统的业务规则将在这些对象中编码,尽管部分业务规则可能实际上已在数据库的存储过程和触发器中进行了编码。业务规则层的功能:【491●从“业务外观”层接受请求。●根据编码的业务规则处理请求。·从“数据访问”层获取数据或将数据发送到“数据访问”层。●将处理结果传递回“业务外观”层。4.2.4业务外观层该块常用于向基础业务对象提供一致的接口,并将客户端同基础业务逻辑的更改隔离开。当它出现时,它或者处于客户端和业务逻辑之问,或者处于Web服务项目和业务逻辑层之间。业务外观项目层的功能:㈤●从“用户服务”层(Windows用户界面或Web用户界面客户端应用程序)接收用户输入。●如果请求需要对数据进行只读访问,则可能使用“数据访问,,层。●将请求传递到“业务规则”层。●将响应从“业务规则”层返回到“用户服务”层(windows用户界面或Web用户界面客户端应用程序)。●在对“业务规则”层的调用之间维护临时状态。 武汉理工大学硕士学位论文4.2.5用户服务层用户服务是指在应用程序中实现的客户端。在分布式应用程序结构中,用户服务可以是Web客户端或Windows客户端,或者两者都是,或者两者都不是,这具体取决于特定的应用程序。用户服务的分布式应用程序模板实现例如,在开发用于Internet或Intranet的典型Web应用程序时,可能需要提供具有标准Windows用户界面或Web用户界面或同时具有这两者的用户服务。通常,这种一般类型的应用程序包含以下功能:f491●管理Web页或Windows界面的呈现和行为●显示数据●捕获数据●数据验证检查●为用户提供任务指南●向“业务外观”发送用户输入●从“业务外观”接收结果●向用户显示错误4.2本章小结本章介绍了构建企业级分布式应用程序的一些关键性概念,可以看到.NET开发平台给开发者提供了强大的帮助、向导和支持。企业级分布式应用程序策略为开发者提供了初始解决方案结构及其项目、上下文信息及相关联帮助主题和策略文件。利用策略的优点可以定义分布式应用程序的初始结构、为开发人员降低复杂性以及提供结构层次指导和技术指导。最后详细的介绍了.NET开发平台企业级分布式应用程序的多层结构,以及每层项目的主要功能。 武汉理工火学硕十学位论文第五章贵州益佰制药电子商务系统本章具体阐述了贵州益佰制药电子商务系统的分析与实现。本系统包括了基础信息管理、信用额度管理、合同管理、订单管理、回款与结算管理、发票管理、库存管理和智能决策八大模块。由于篇幅的限制,本章着重介绍合同管理、订单管理、库存管理以及基础信息的管理,并阐述了整个系统的整体设计和实现。5.1系统需求分析根据对贵州益佰制药公司的实际销售流程的分析和优化,我们提出了如下的系统设计方案。5.1.1优化后的销售流程●经销商的录入与审核。因为我国的药品销售是有限制的,只有特定的经销商才有资格销售药品。不同的经销商信用及资金的状况也是各不相同的,而且在医药行业中,大量的销售类型为赊销。所以,公司一定要对经销商进行审核,也只有通过审核的经销商才可以和公司签订销售合同。各省区的经销商由当地市场助理管理,经销商的基础信息由市场助理上网在系统中录入。然后由公司物流部人员对经销商的信息进行审核。●由省区经理和经销商签订药品销售合同,市场助理在公司的电子商务平台上录入合同细节。在现代社会中,企业之间的贸易往来,一定是先签合同再进行交易。只有这样才能保证企业双方的利益。合同是由省区经理和当地的经销商签订的,是具有法律效应的。书 武汉理工大学硕士学位论文面合同的管理不在系统的管理范围内。市场助理在系统中录入合同的细节,主要是药品的数量。经销商的信息以及药品信息是由系统自动给出并加到合同细节中,市场助理是不可以更改这些基本信息的。●公司物流部人员上网审核省区经理和经销商签订的合同。省区经理与经销商签订的合同,公司一定要审核合同,也就是确认合同的合法性。只有审核通过的合同,公司才承认它的合法性。合同录入系统中后,物流部人员就可以在系统中看到他待审核的合同。物流部对合同的细节进行审核。审核通过后,系统会更改合同状态为已审核。这样省区经理和市场助理就知道合同己通过了审核。●当经销商要求发货时,就和当地的市场助理联系。市场助理上网申请订单。合同签订了,但经销商不一定马上就要货。当经销商要货时,可以联系当地的市场助理申请发货。市场助理在系统中申请订单也就是申请发货。一个合同可以执行一次或多次发货。也就是说:订单的数量可以不等于合同的数量,但一定不能大于合同的数量。当申请的数量大于合同数量时,申请订单是不能成功的。要更多的货时,就要再签订合同以及重新申请发货。●市场助理申请订单后,由物流部审核订单。市场助理申请的订单,要由物流部审核通过后,才可以发货。这是为了避免申请的订单有误。如果出现错误,物流部可以要求市场助理修改申请单。●订单通过审核后,储运部上网就可以看到要发货的订单。订单通过审核,就交给储运部发货。●货物到了经销商,市场助理要去取得到货确认函。当货物到了经销商手中,市场助理要去经销商那里,确认货物已到达目的地。●经销商回款后,市场助理上网申请回款结算。回款结算的流程是在经销商回款给公司后开始。 武汉理:l:大学硕十学位论文经销商在收到货物后,一般要求在一段时间内回款。这个时间叫做回款期限,回款期限从到货的那天开始计算。如果在这段时间内回款,公司会给经销商一定的折扣。当经销商回款后,会通知市场助理这笔回款是结算那些订单的货物。市场助理根据这些信息在系统中拆分这笔回款,也就是说结算那些订单的药品、药品数量以及拆分的金额。●物流部审核回款结算的申请。市场助理在系统中拆分了回款后,物流部要对拆分的金额、药品数量以及是那张订单进行审核,这也是一个对拆分二次检查,保证结算工作的正常进行。在物流部审核结算申请的同时,系统会自动的根据与经销商的协议计算时间返利,价格返利,年度返利等。系统根据公司的政策计算出市场留存,部门留存,公司留存。这就很清楚的计算出回款的每一个部分,公司可以根据这个结算结果分配回款。●市场助理上网申请发票。发票流程由市场助理申请发票开始。经销商在回款后要求开发票时,联系当地的市场助理申请发票。市场助理根据经销商提供发票的金额,在系统中申请发票。系统自动给出经销商未开发票的订单列表,市场助理选择给那些订单开发票。·物流部审核市场助理申请的发票。物流部要对市场助理申请的发票进行审核。主要的工作是确认发票的金额与拆分到每个订单的金额之和相等。●财务部根据物流部提供的信息开发票。财务部在系统中可以看到那些是要开出的发票,根据发票金额以及经销商的信息开发票。 武汉理工大学硕士学位论文5.1.2根据销售流程的系统设计根据销售流程的系统用例图如图l。p8j-|431●系统用户使用本系统主要有如下4类用户市场助理:每个地区都有一个至两个市场助理。主要的责任是与本地的经销商联系与沟通,并管理涉及该区域的财务。从用例图中我们可以清楚的看到市场助理在系统中的主要工作为:合同申请、订单申请、到货确认、结算申请、发票申请及确认。物流部:工作地点在总公司,主要的责任是管理并监督整个公司的销售流程。在系统中他的主要工作是:审核合同、审核订单、回款结算、发票审核。储运部:主要责任是根据审核过的订单发货。在系统中主要工作是:发货处理。财务部:主要责任是根据审核通过的发票申请单开发票。在系统中主要工作是:发票处理。●系统中的五个用例实例及其相互关系合同处理:市场助理申请合同,物流部审核合同。订单处理:市场助理申请订单,物流部审核订单。发货处理:储运部发货,市场助理填报到货确认函。回款结算:市场助理申请回款结算,物流部审核回款结算。发票处理:市场助理申请发票和到票确认函,物流部审核发票,财务部开发票。相互关系:市场助理根据已审核的合同申请订单,储运部根据已审核过的订单发货,市场助理根据未结算的订单拆分回款或根据未结算的合同拆分回款,市场助理根据未开票的订单申请开票。 ~—~—巡墼塑娑L图l、系统用仍』图39 武汉理丁大学硕士学位论文5.1.3系统的静态结构图分析系统的用例图和公司销售流程,我们设计的静态结构图如图2。图2、静态结构图 武汉理工大学硕士学位论文5.2系统结构分析本系统的结构主要从两个方面进行介绍:硬件结构,软件结构。5.2.1硬件结构系统的硬件结构:数据库服务器和应用服务器放在公司内部的局域网,物流部、储运部、财务部的工作站也在公司局域网中。这样便于保护公司的销售数据和财务数据。外地的市场助理只要在可以上因特网的地方就可以登录公司的电子商务平台。所以我们的电子商务平台是开放性的商务平台,物流部人员也可以在公司局域网外登录并完成工作,这极大的方便了公司人员出差在外的情况。硬件结构图如图3。5.2.2软件结构图3、硬件结构图先总体的介绍系统的组件组成和部署结构,在详细介绍合同和发货这两个流程的活动图和时序图。●组件图系统分为五大组件: 武汉理工大学硕士学位论文基础信息组件:基础信息组件包括经销商信息、发货流程组件:发货流程组件包括合同的处理、结算流程组件:药品信息、系统用户信息等。订单的处理、发货处理等。结算流程组件包括申请回款结算和回款结算。发票流程组件:发票流程组件包括发票申请和发票审核。数据库处理组件:数据库处理组件是整个系统中对数据库的一个组件,以上4个组件所以和数据库进行的数据处理都通过它来处理。一鞫⋯一争—.⋯⋯k⋯一一L⋯⋯⋯⋯⋯⋯一—二图4、系统组件图●部署图在系统的部署时,考虑到数据量和机器的性能,我们把应用组件和数据库放在不同的主机上,以提高系统的性能。这也与前文提到的系统硬件结构相符。 武汉理工大学硕士学位论文图5、系统部署图●活动图下面是合同活动图和发货活动图。 武汉理工大学硕士学位论文I}r场岫捌物流鼎#*过『{Ij、厂==a、厂=j:、IIW卅-早怔·t/7’J日I/.?/、f6/、\/’t通逍Ⅲf刚蛹:t郴牲1腓广%.—土L.l竺竺竺J【!竺:卜亭f《《1>一///卤|、么-、I叠45 武汉理工人学硕士学位论文●时序图固囤日圉田囤,I‘嗤*卜可|1一?中o.秘螬lr攀礴nmd$“’R悍十H。N)相一A“IT目“刖0J≈*图8、销售时序图5.3系统的功能模块本系统包括八大功能模块:基础信息管理、信用额度管理、合同管理、订单管理、回款与结算管理、发票管理、库存管理和智能决策。功能模块图如图9所示。 武汉理工大学硕士学位论文图9、功能结构图基础信息管理:主要管理系统的基础信息。比如说上网用户、客户信息管理和药品管理等。信用额度管理:主要是对经销商的信用额度进行管理。因为药品是赊销的,但不表明经销商可以无限量的赊销。因此每个经销商根据其信用的好坏有一个赊销的数量额度或金额额度。合同管理:合同分为年度合同和临时销售合同两种。年度合同是经销商与公司签订的在本年度要销售的~个大合同。该合同规定了全年经销商应完成的销量和结算条件。完成年度合同的经销商,公司会在年底给予一定的销售折扣。临时销售合同是经销商每次要货时与公司签订的具有法律效应的买卖合同。订单管理:订单可分为:普通订单、破损订单、调拨订单、样品订单等。普通订单是正常销售流程中申请的订单。破损订单是由于在运输过程中破损了药品,经销商要求补发破损药品而申请的订单。调拨订单是在不同的经销商之间进行药品的调拨,公司不允许经销商之间私自调拨药品,因而调拨药品是要向公司申请调拨订单的。样品订单是公司在各地举办活动时,要样品药时才申请的。回款与结算管理:主要是回款管理和结算管理。回款管理主要是对财务部录入的回款进行管理。结算管理要求计算出经销商的时间返利、价格返利和年度返利,以及市场部留存、部门留存和公司留存。发票管理:主要是管理发票的申请和审核。库存管理:主要是入库和出库管理。 武汉理工大学硕士学位论文智能决策:主要分为回款趋势分析、结算趋势分析和广告与回款的关系趋势分析。5.4系统的功能实现本系统有八大功能模块,由于篇幅的限制,主要介绍基础信息模块的实现,并且其他功能模块的实现也是使用类似的技术。本系统是按照.NET平台的企业级分布式应用程序模板构建的,也分为系统框架层、数据访问层、业务外观层、业务规则层和用户界面层。因而本文是按照每层逐一介绍系统的功能实现的。5.4.1系统框架层在系统框架层中首先介绍Web.Config文件的一些重要设置。这些设置是整个系统公用的。</configSections>标记指出了在系统中的两个配置文件,并给出了一个名字(如ApplicationConfiguration)和文件的类型及所在的命名空间(Gz_YiBai.SystemFrameworks.ApplicationConfiguration.GzYiBai.SystemFrameworks)。下面的代码是这两个配置文件的初始值。 武汉理工人学硕十学位论文——-____●_______。_____。____________———————-—_‘’‘。。。。。。。。_。___-。。。。。。。。_。’———————————’’—————————一<卜一日志事件设置一></Applicatio兀Configuration>系统框架层还包括了ApplicationConfiguration.cs、ApplicationLog.cs和ApplicationAssert.cs三个类。ApplicationConfiguration.CS:主要是给文件Web.config添加附加的设置选项。ApplicationLog.CS:主要是为系统提供跟踪和曰志。ApplicationAssert.CS:主要是帮助进行错误检查、错误出处自动记录和条件检查。系统框架层是对整个系统的一个配置,因而无论那个功能模块的系统框架层都是相同的。5.4.2数据访问层数据库访问层的实现总的来说是通过两个不同的类来实现的。它们是数据表类和数据库处理类。数据表类是为了建立内存表,它为数据集提供一个表的空间。首先在类中定义数据表中的字段名。///该常量用于Users表名</value>publicconstStringUSERS—TABLE=”Users”:///该常量用于Users表的UserName字段</value>publieconstStringUSERNAMEFIELD: 武汉理1二大学硕士学位论文”UserName”:IIIpublicconstStringUSER—TYPE_FIELD=”UserType”:///该常量用于Users表的Passsword字段</value>publicconstStringPASSWORD_FIELD=”Password”:///该常量用于Users表的字段Power</value>publicconstStringPOWER—FIELD=”Power”:///该常量用于Users表的Department字段</value>publiceonstStringDEPARTMENT—FIELD=”Department”:///该常量用于Users表的Email字段</value>publicconstStringEMAIL_FIELD=”Email”:/II该常量用于Users表的Area字段</value>publicconstStringAREA—FIELD=”Area”:///该常量用于Users表的BusinessRange字段</value>publicconstStringBUSINESS—RANGEFIELD=”BusinessRange“定义了字段后要生成表,这和数据库建表的思路是相一致的。privatevoidBuildDataTables()f{{//创建Users数据表}}DataTabletable=newDataTable(USERS_TABLE)DataC01umnC01lectioncolumns=tableColumnscolumns.Add(USER—NAME—FIELD,typeof(System.String)):columns.Add(USER_TYPE_FIELD,typeof(System.String)),columns.Add(PASSWORD_FIELD,typeof(System.String)):columns.Add(POWER_FIELD,typeof(System.String)):columns.Add(DEPARTMENT_FIELD,typeof(System.String))5 武汉理lj火学硕十学位论文columns.Add(EMAIL—FIELD,typeof(System.String)):columns.Add(BUSINESS—RANGE_FIELD,typeof(System.String))this.Tables.Add(table):)订单管理和库存管理的数据表类的实现代码和以上代码是相似的。数据库处理类的功能包括数据库的添加、修改、删除和查询。数据库处理类先定义了一个数据适配器、三个SQL命令实例以及几个存储过程参数。prirateSqlDataAdapterdsCommand:}}//存储过程参数名十iprivateconstStringUSER_NAME_PARM=”@UserName”:pri‘vateeonstStringUSER—TYPEPARM=”@UserType”:pri‘vateeonstStringPASSWORD—PARM=”@Password”:prl‘rateeonstStringPOWERPARM=”@Power”-prl’vateconstStringDEPARTMENTPARM=”@Department”:prl+rateconstStringEMAILPARM=”@Email”:pri‘vateconstStringBUSINESS—RANGEPARM=”@BusinessRange”privateSqlCommandinsertCommand:privateSqlCommandupdateCommand:privateSqlCommanddeleteCommand:添加数据到数据库的代码如下所示:privateSqlCommandGetlnsertCoramand0fif(insertCommand==null){52 武汉理工大学硕士学位论文insertCommand=newSqlCommand(”InsertUser”,newSqlConnection(DrugShopConfiguration.ConnectionString)):insertCommand.CommandType=CommandType.StoredProcedure:SqiParameterCollectionsqlParams=insertCommand.Parameters:sqlParams.Add(newSqlParameter(USER—NAME—PARM,SqlDbType.NVarChar,20)):sqlParams.Add(flOWSqlParameter(USERJYPE—FARM,SqlDbType.NVarChar,20)):sqlParams.Add(newSqlParameter(PASSWORD—PARM,SqlDbType.NVarChar,20)):sqlParams.Add(newSqlParameter(POWER—PARM,SqlDbType.NVarChar,1oo)):sqlParams.Add(newSqlParameter(DEPARTMENT_PARM.SqlDbType.NVarChar,20)):sqlParams.Add(newSqlParameter(EMAIL—PARM,SqlDbType.NVarChar,50)):sqlParams.Add(newSqlParameter(BUSINESS_RANGE_PARM,SqlDbType.NVarChar,20)):sqlParams[USER—NAME_PARM].SourceCohmnUserData.USER_NAME—FIELD;sqlParams[USERSYPE—PARM].SourceColumnUserData.USER_TYPE—FIELD:sqlParams[PASSWORD_PARM].SourceColumnUserData.PASSWORDFIELD:sqlParams[POWER_PARM].SourceColumnUserData.POWER_FIELD:sqlParams[DEPARTMENT—PARM].SourceColumn53 武汉理工大学硕士学位论文UserData.DEPARTMENTFIELD:sqlParams【EMAIL_PARMI.SoureeColumn。UserData.EMAIL—FIELD:sqlParams[BUSINESS—RANGE—PARM],SourceColumn2UserData.BUSINESSRANGEFIELD:)returninsertCommand:)Getlnserteommand这个方法的功能是建立一个SOL命令实例,供插入数据的方法(InsertUser)调用这个SQL命令实例。insertCommand=newSqlCommand(”InsertUser”,newSqlConnection(DrugShopConfiguration.ConnectionString)):是新建一个插入SQL命令的实例,并连接到数据库以及给出了SOL命令。连接字符串是在Web.Config文件中给出的。insertCommand.CommandType=CommandType.StoredProcedure:指定了SOL命令是通过调用存储过程来实现的。其后的代码是存储过程中的参数赋值和返回s钆命令实例。publicboolInsertUser(UserDataHser){if(dsCommand==null)(thrownewSystem.0bjectDisposedException(GetType0.FullName):)dsCommand.InsertCommand=GetInsertCommand():dsCommand.Update(user,UserData.USERS_TABLE)://检查数据表发生的错误来判断更新是否失败if(user.HasErrors){ 武汉理__L=人学硕士学位论文user.Tables[UserData.USERS_TABLE].GetErrors()[0].ClearErrors();returnfalse:)else{user.AcceptChanges0:returntrue:)}在InsertUser方法中首先检查数据适配器是否存在,不存在就产生异常。当适配器存在时,把在GetlnsertCommand方法中生成的SQL命令实例赋给适配器的插入SQL命令属性。并用dsCommand.Update(user,UserData.USERSTABLE):语句更新数据库数据。修改操作和删除操作的代码和插入基本相似,不同的地方有两处:1、在GetInsertCommand方法的新建SQL命令实例的语句中,插入操作的SQL命令实例的SQL命令是插入数据的存储过程名字(InsertUser),而修改操作和删除操作的SQL命令分别是修改数据的存储过程名字(UpdateUser)和删除数据的存储过程名字(DeleteUser)。2、在InsertUser方法中给适配器的插入SQL命令属性赋值,而在修改操作和删除操作时要分别给修改SQL命令属性和删除SOL命令属性赋值。查询操作与插入操作的最大不同之处在于,查询操作时有dsCommand.Fill(data):语句,而插入操作时没有。dsCommand.Fill(data)的功能是把从数据库中查到的数据赋给适配器中的数据集的数据表,方便以后在用户界面层的页面中显示。 武汉理工大学硕士学位论文5.4.3业务规则层业务规则层在本系统中主要的功能是对数据的有效性的验证。比如说E-Mail地址的格式是否正确和数据集中的数据表不能为空。一下的方法就是对E-Mail地址的格式的验证。privateboolIsValidEmail(DataRowuserRow){//检查字段长度boolisValid=IsValidField(userRow,UserData.EMAIL—FIELD,50):if(isValid){isValid=(newRegex(REGEXP-ISVALIDEMAIL)).IsMatch(userRow[UserOata.EMAILFIELD].ToStrin90)://标记Email地址无效if(!isValid){userRow.SetColumnError(UserData.EMAIL~FIELD,UserData.EMAIL—FIELD_INVALID—FOREa.T):)returnisValid:)ApplicationAssert.CheckCondition(user!_null,”参数user不能为空”,ApplicationAssert.LineNumber):是检查user表是否为空,也就是user表不存在。 武汉理]:大学硕士学位论文5.4.4业务外观层在业务外观层中,代码的功能主要是给出接口,方便用户界面层的调用。具体到本系统就是为了提供把数据显示在页面上的接口和数据处理的接口。提供把数据显示在页面上的接口主要是方便数据查询的显示。以下代码是关于查询所有上网用户的接口。它的返回值是一个数据集,也就是UserData数据表类。publicUserDataGetUserByAll0{//获得上网用户数据表类的实例UserDatadataSet:using(DataAccess.UsersusersDataAccess=newDataAccess.Users0)dataSet5usersDataAccess.GetUserByName(”ALL”):)returndataSet:』数据处理的接口主要是给数据库插入、修改和删除操作提供的。代码如下所示。publicboolUpdateUser(UserDatauser){ApplicationAssert.CheckCondition(userl_null,~,ApplicationAssert.LineNumber)://要求数据集不为空return(newUser0).Update(user)://调用数据库处理类的方法进行数据更新1 武汉理工大学硕士学位论文5.4.5用户界面层用户界面层主要是通过调用业务外观层的接口来实现数据的显示和操作,并对页面中用户填入的数据进行简单的有效性验证。代码不是太复杂,主要看一下页面运行的结果。图10、登录页面 武汉理工大学硕士学位论文5.5本章小结图1l、市场助理登录后的工作页面本章对贵州益佰制药公司电子商务系统的需求分析、系统结构、系统功能及功能的实现进行了详细的阐述。对电子商务系统在处理正常销售流程时的分析和实现,提出了系统的解决方案。但由于篇幅的限制和系统过于庞大,并没有对每个流程的处理都说明。对一些特殊销售流程并没有涉及到。比如说,订单管理中的破损订单申请的流程就和普通订单流程有很大的区别,如在结算时并不考虑破损订单,但普通订单是要做回款结算处理的。在企业级应用程序的开发中有很多的特殊流程状况,这也是我们在为企业做电子商务解决方案是必须考虑的问题。如果只是简单的照搬本文提供的解决方案为企业做电子商务解决方案是不行的。 武汉理一r大学硕士学位论文第六章结束语由于医药行业的商务模式是一种特殊的商务模式,对它的一些特殊流程还是缺乏理解;.NET开发平台是新的开发平台,很多的技术在实际应用中没有经验,也由于本人的水平有限,本文研究工作存在了一些有待改进的地方。1、特殊的销售流程在设计初期没有考虑到系统中。在库存管理中的出货管理没有考虑到,订单的数量大于库存量,造成不可以发货。2、用户界面不够美观和人性化。3、在系统安全上考虑不够。系统是在公共因特网上运行,我们采用的是用户认证机制保证安全,这在当前的网络中安全是没有得到很好的保证的。由于对网络加密和数字签名技术的不够了解,没有在系统中实现。4、对系统的可扩展性和升级考虑不够完善。因在设计系统时没有过多考虑到系统的升级和需求变更,当客户需求改变时,系统设计工作就异常繁重,也产生了~些不可调节的矛盾。5、其他在开发过程中尚未发现的不足之处,恳请指正。60 武汉理工大学硕士学位论文【11【2】【3】参考文献王理平张晓峰,电子商务:管理新视角:amanagerialperspective,电子工业出版社,2003丹尼尔·阿莫著(DanielAmor);董兆一,童志庭,白洁译,电子商务:变革与演进:llyingandworkinginaninterconnectedworld,机械工业出版社,2003卡拉科特(Kalakota,R.)等著;商修杰等泽,电子商务:管理.技术.应tl=}j,清华大学出版社,2000电子商务管理指南(美)RaviKalakota,(美)AndrewB.Whinston著;陈雪美译北京:清华大学出版社,2000孙永强,陆波,杨丽昆编著,Framework程序设计,清华大学山版社,2001年3月ThuanThai.HoangQ.Lam著;王敏之泽,.NET框架精髓,中国电力出版社,2001DanRahmel编著:陈君等译,.NETFramework程序员查询辞典,中国铁道出版社,2003RobertPowell,Richardweeks著;袁鹏b译,c#和.NET架构,人民邮电出版社。2002张志学等编著,.NET框架程序开发指南.上册,清华大学出版社,2002张志学等编著,.NET框架程序开发指南.下册.清华大学出版社,2002ThaanThai,Hoangq.Lam著:王敏之泽,.NET框架精髓,中国电力出版社,200lAlbahari,B(美),C#精髓,清华大学出版社,2001年08月JasonPrice(美)等著窦芳等译,Visualc#.NET从入门到精通,MasteringVisualc#.NET,电子工业出版社.原出版社:SYBEX,2003年3月A.RussellJones(美)著陈建春等译ASP.NET与c#从入门到精通,Mastering6,,lg¨日明蚰H“n阳nl=n 武汉理工火学硕士学位论文ASP.NETwithC#,电子1:业山版社,原出版社:SYBEX,2003年3月【151普悠玛译,.NET程序设计示例导学,北京科海电子出版社,2003年2月【16]廖信彦译,ASP.net交互式Web数据库程序设计,中国铁道出版社,2003年2月【17】MichaelAmundsen等著朱礼军等译,ASP,NET开发人员指南.中国电力出版杜,2003年1月【181AlexHomer:DaveSussman著魏胤红任东胜等译,ASP.NET分布式数据应用程序高级编程,ASP.NETDistributedDataApplications,清华大学出版社,原出版社:乐思出版公司,2002年11月【19]DinoEsposito著梁超译,构建Web解决方案一应用ASP.NET和ADO.NET,BuildingWebSolutionswithASP.NETandADO.NET,清华大学出版社,原出版社:MicrosoftPress,002年lO月【20】ShawnWiidermuth著;周靖译,ADONET实J=Ij指南:面向Internet世界的数据访问技术,清华大学山版社,2003[21】SanjeevRohilla(美)等著陈君等译,ADO.NET专业项目实例开发,MicrosoftADO.NETProfessionalProjects,中国水利水电山版社,2003年1月[221RebeccaM.Riordan(美)著李高健孙英霖译,ADO.NET程序设计,MicrosoftADO.NETStepbyStep,漕华大学出版社,2002年7月【23】MikeGunderloy(美)著邱仆潘等译,ADO与ADO.NET编程指南,ADOandADO.NETProgramming,电子1业出版社,2002年8月124】KoureshArdestani,KevinHoffman,DonaldXie著:张哲峰泽,高效掌握ADO.NETc#编程篇,清华大学出版社2003[25】(美)MichaelOtey,DenielleOtey著;史创明,崔金铃译,ADO.NET技术参考大全,清华大学出版社2003【26】MarcoBellinaso等著康博译,ASP.NETWeb站点高级编程一提出问题一设计方案一解决方案,ASP.NETWebsiteProgramming。清华大学出版社,2002年9月[27】StephenWalther(美)著马朝晖等译,ASP.NET技术内幕,ASP.NET Unleashed,机械T业山版社,2002年8月[281hshishBanerjee.AravindCorera等著;康博译,C*1Web服务高级编程一一使用。NETRemoting雨lASP。NET创建Web服务,C#WebServices——BuildingWebServiceswith.NETRemotingandASP.NET,清华人学山版社,2002年8月【29】MatthewReynolds,KarliWatson著:康博泽,.NET企业应用高级编程:c#编程篇,清华大学出版社。2002【30]MatthewReynolds.KarliWatson等著;康博译,.NET企业应用高级编程:VB.NET编程篇,清华大学出版社,2002【31】曾登高编著。.NET系统架构与开发,电子工业出版社,2003【32】HershBhasin(美)著高健等泽,ASP.NET专业项目实例开发,MicrosoftASP.NETProfesionalProjects,中国水利水电出版社,2002年7月【331.NET框架下电子商务站点建设指南JasonBentrum&JamesWhatley著.机械工业出版社,2002[341RobCaron.DevelopaWebServiceupandRunningwiththeSOAPToolkitfo,VisualStudio,TheMicrosoftJournalforDevelopers.2001[351JohnA.Miller,SonaliSbeth,QueryingXMLdocumenm,IEEEPOTENTlALS.2001【36】MaryKirtland,TheProgrammableWebServicesProvideBuildingBlocksfo,theMicrosoft.NETFramework,TheMicrosoftJournalforDevelopers.2001【37]DaveMendlen。HsualStudio.NETBuild肫bApplicationsFas把randEasierUsingWebServicesandXML,TheMicrosoftJournalforDevelopers.-2001[381Gogolla,Martin,Berlin,UML2001:theunifiedmodelinglanguagejmodelinglanguages,concepts,andtools,4thinternationalconference,Toronto,Canada,October1-5,2001[391UMLAndRationalRose2002MastingWendyBoggs&MichaelBoggsPublishingHouseofElectronics2002[401UML2001:theunifiedmodelinglanguage:modelinglanguages,concepts,andtools:4thinternationalconfefence,Toronto,Canada,0ctober1.5.2001: 武汉理工大学硕士学位论文proceedings/Gogolla,Martin,Berlin;NewYork:Springer,2001[41】(美)JosephSchmuller著;李虎,王美英,万里译,((UML基础、案例与应用》,北京:人民邮电出版社.2002[421SinanSiAlhir著:常晓波译,UML技术手册,中国电力出版社,2002[43】张龙祥编著,《(UML与系统分析设计》,北京:人民邮电出版社,2001144]微软中文社区http://www.microsoft.tom/china【45】微软新闻组msnews.Microsoft.com[46】中国BS网http://www.chinabs.net[471CSDNhttpl}fⅧⅧ。csdn。net[481Codeprojecthttp:“W㈣jcodeproject。corn149]Msdnhttp://msdn.microsoft.tom 武汉理J:人学硕士学位论文缩写词全称:1、CLR2、BtoS3、EDI4、BtoB5、Btoc6、etoC7、ctoB8、PDA9、xML10、IDEll、ASP12、SOAP13、MSII.14、JIT附录一CommonLanguageRuntime通用语言运行环境BusinessToSelf企业对本企业ElectronicDataInterchange电子数据交换BusihesstoBusiHess企业对企业BusinesstoC1ient企业对个人C1ienttoC1ient个人对个人C1ienttoBusiness个人对企业PersonalDigitalAssistant个人数字助理ExtensibleMarkupLanguage扩展标记语言IntegratedDevelopmentEnvironment统一开发平台ActiveServerPagesSimpleObjectAccessProtocol简单对象传输协议MicrosoftIntermediateLanguage微软中间语言Just—in—Time及时编译 武汉理工大学硕士学位论文硕士在学期间发表的论文1、《武汉理工大学学报》2004已发ISSN1007—144X篇名:SQLServer数据库的一种分布式查询解决方法第二作者2、《计算机应用研究》2004待发ISSN1001—3695篇名:在ASENET中Web值传递方法比较第二作者 武汉理工大学硕士学位论文致谢本论文的工作是在导师张能立副教授的悉心指导下完成的,张老师的严谨的治学作风,求实的工作态度,勤奋努力的学习精神都使我受益匪浅。在学习期间,张老师不仅在学业与工作上给我指导,还教我了做人的道理,这些都是我今后人生道路的一笔宝贵的财富。在此,向张能力副教授致以崇高的敬意和真心的谢意。一并感谢三年来一直帮助我的杨绍明同学。最后,还有感谢参加评审答辩的各位老师:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭