《企业级项目实践——架构设计.docx》由会员分享,可在线阅读,更多相关《企业级项目实践——架构设计.docx(8页珍藏版)》请在第一文库网上搜索。
1、企业级项目实践一一架构设计MVC3.0版本系统的运行环境需要Visua1Studio2010,数据库Sq1server2008版本,与POWerDeSigner15版本。面向服务的架构图View(视图)ControI1er(控制器)Mode1s(页面实体)服务层服务契约数据契约工作流业务逻辑层业务处理业务实体公共组件安全组件日志公共类库数据访问层EntityFramework其他应用程序服务数据实体组件说明公共组件层数据访问层!业务接口层除安方案5。IUtion,(8个项电&APP_手B11Common商DA1.到ID11WcfHost服务宿主淳IWFDecigner页面展示层逻辑层工作流活动
2、层工作流设计器图表1项目组件说明图1) App页面展示层使用MVC框架,使用Jquery脚本库,控件选用Easyuio2) WcfHost服务宿主3) IB11业务接口层业务逻辑层的方法对外暴露的接口与服务契约。4) B11-业务逻辑层业务逻辑的操作,包含业务处理,事务,日志。5) DA1一一数据访问层数据库访问的操作,数据实体,业务实体,数据校验,使用EntityFrameWOrk。6) Common公共组件层整个应用程序使用的公共辅助方法。7) WFActivitys工作流活动层定义了工作流需要的活动,使用微软WF技术。8) WFDesignei工作流设计器能够让实施人员自由配置工作流的设
3、计器,使用微软WPF技术。分析DA1(数据访问层)的结构新建ADO.NET实体数据模型;35*单元更试ADO.NET实体加5模型1INQtoSQ1类XM1蝴XM1.文件Visua1C项Visua1C项Visua1C*项Visua1C#项Visua1C#项类型:Visua1C*项用于创建ADO.NET实用町模型的项目项.排序依握:默认值已安曲葩Q已安雌怪版XS1T文件本期温库Visua1C#项Visua1C项u1本地数3霹缓存册服务的数宾SVisua1C#理Visua1C项Visua1C名称(N):Mode12.edm/Visua1C#53WebWindowsFormsWPF意现代码SQSRep
4、ortingWorkf1ow在设计器中点击右键,从下拉菜单中选择“从数据库更新模型”;2?IaattKa耳即说ta*Es煌MIAS*se在go京U4fjMaawJ心”BmMCMK1-arr.*TI八,二.JJ1ttys3Hw*1U33BUaCcmeo一。3小APPaCoe1Modi1dfnxAfcEreQas)设定连接字符串后,选中表、视图与存储过程,注意不要勾选“确定所生成对象名称的单复数形式”,点击“完成”。串UoCM,罡W.43H1RJH*3女的MKOBY)IIEIp)立乂晒MSEiTM)EAJMH)WW(C)*5HU2OW将AppConfig文件中的ConneetionStringS节
5、点复制到APP项目的Webconfig文件中。Web.configApp.ConfigMode11.edmx*EX!一有关如何配置ASP.NET应用程序的详细信息,httD:/go.Microsoft.ComzfWIink?1ink1d=15BBaddname=*SysEntities*connect!onStrin数据实体就在自动生成的MOde11edmX文件中,如下:SysMessage卤:-雌当IdBiaoTi身1eiXing_2T*Message才TipTime2RemarkState2CreateTime14CreatePerson2,UpdateTime兮UpdatePerson2
6、Version-导S牖性业务实体在SySMeSSage.es文件中的SySMerSage,它是一个分部partia1类,内部有自定义属性,MetwdmType属性中指定了该实体属性的校验类ZSMeSFageMe1iida1.,同时它继承了SysMessage.cs*XBaseRepository.esSysMessageRepository.es*Mode11.edmx*也DA1SysMessage2_rCustomsAttribute123456789;|12|13141516171819202122232425262728293usingSystem:usingSystem.Co11ect
7、ions.Generic;usingSystem.1inq;usingSystem.Text;usingSystem.ComponentMode1.DataAnnotations:二namespaceDA1MetadataType(typeof(SysMessageMetadata)- pub1icpartia1c1assSysMessage:IBaseEntityI#region自定义属性pub1icstringCustomsAttributeget;set;#endregion- pub1icc1assSysMessageMetadata(Scaffo1dCo1ujnn(fa1se)Dis
8、p1ay(Name=主键,Order=1)pub1icstringIdget;set;RequiredCErrorMessage=不能为空)Scaffo1dCo1xunn(true)String1ength(200,ErrorMessage=长度不可超过200)DataType(DataType.Text,ErrorMessage=字符格式不正确“)Disp1ay(Name=标题,Order=2)pub1icobjectBiaoTiget;set;IBaseEntity接口(此接口暂时没有任何成员);Sy,7-IgoRepoJtcy类定义了SyWCSSa对象的所有操作(包含对数据库的增删改查)
9、,该类继承了BaSeRePCSitOry,IDiSPOSabIe与ISysMessageRepository次呻)m;ey)amRjQH回t)MMjIm(AJIJkn*woEA夕IKN)sm,,/1.,:O7aBaseRepository.cs又件包含了所有数据访问的抽象基类BaSeRePoSitory,匕里面的成员如下:一3aPP3U3Common-3DA1pub1icErancRbHcGnZMHCrnn!Ptt1icftrucM曲ibmw。鼻川xao)CwUwCej整监)尔KK)qmwi*id)3,nhU.33nta.-NMfPMCU.Ms9intBpub1icKcace1*svBtxRP
10、oECnytn4.T&MI,CEBn1nT*.II5trt.EIctu*St.tnfIIZh4,1McetIreturn*fI.Iiww-t己m,u5e方公ft1raum7)pran*xd-BM031IZparia.-/PMbHcIMg1EeEr*z14)(UfUKOyiIntitiei0evSysEfititiesO(th&*.D1(tid).returnSavVg)Q1rmevd(久4sHkpMdoy1Mt*9Rpo*orysmSyDptnRtxtHS*Drtm*Moc*yxSWZytDSWdiRegfEC为SRudCS,夕SyUooryD%Mec2SyMruRpovtoy力XsMd9eo
11、fo(si2)S0Nnocs0SCNTSO*p4oyProntpPro)b)傅玄IauMeBiAj)*go=身分Sg口做)fH)*i8t1yMew4QeB11t*b11cF1r“O:,(Jt114PkngCtxiMua)JE中J,9/:?.(y6beQoetyPttttepotItMy.a.t6hcS7dbrxaa*CtAOrepohcyQarcMMtoCcmt(tnn9沁.Srift9vtMiSyta.&nSyrtCo11ectofts.Cmrie,0xnSyv1ut,s%nSyxtIe.wnSyvtMuTriMactict.MinM1MMtJMMWi.:/tf1otymi1.rtM1toryrevm二,”j,ry.iArtr;瑞良I1e&MpaRP.11nt()忖倭由*XMMnr)cc1wS1rfSeMf4t11tCreMt(rVSaon(rrswWMorrror切,Mr9ecn(rfVeSdaf1ksnirrorTidaeOrErKIQmyaH“McfSwte*CrftvMMcErrOfi.Strigid)0OWteCoIeakxKre*VMtio*1ortyW*9n12.wi&WtK。MOVEdh(rfVeidattcnfrrc