winform開發(fā)框架架構(gòu)設(shè)計(jì)說明書_第1頁(yè)
winform開發(fā)框架架構(gòu)設(shè)計(jì)說明書_第2頁(yè)
winform開發(fā)框架架構(gòu)設(shè)計(jì)說明書_第3頁(yè)
winform開發(fā)框架架構(gòu)設(shè)計(jì)說明書_第4頁(yè)
winform開發(fā)框架架構(gòu)設(shè)計(jì)說明書_第5頁(yè)
已閱讀5頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

常積累的經(jīng)驗(yàn)所得,構(gòu)建一個(gè)Winform開發(fā)框架的生態(tài)體系。Winform開發(fā)框架,集成應(yīng)用程序必備的一架》中都可以獨(dú)立維護(hù)管理,方便維護(hù)和獨(dú)立更新。OutLookBar界面Weifengluo布局控件、集成美觀實(shí)用的登陸Oracle、SqlServer、SQLite、MySql加密類庫(kù)(包括Base64、Md5、SHA1、可逆與不可逆加密等)、線程(多線程、代理、Timer計(jì)時(shí)DataTable操作、打印、目錄、文件、Access、Excel、Word合并、正則表達(dá)式、網(wǎng)頁(yè)采集、壓縮算法、圖片操作、WInform窗體動(dòng)畫、INI文件操碼、人民幣格式、隨機(jī)字符、POS打印、反射操累。在學(xué)習(xí)、進(jìn)步、提升的開發(fā)工作中,開發(fā)過很多Winform共享軟件、Asp.Net的WebForm項(xiàng)目、Asp.NETMVC項(xiàng)目等,發(fā)現(xiàn)很多東西是相互關(guān)聯(lián)很緊密的,但往往升到Winform開發(fā)框架的載體和概念高度上來。cmp基于DevExpressWCFWinform開發(fā)框架一樣,整合了權(quán)限控制管理、字典管理模的特點(diǎn),支持?jǐn)?shù)據(jù)分頁(yè)、數(shù)據(jù)導(dǎo)入、Excel導(dǎo)出、支持多界面樣式、支持閃屏、熱在局域網(wǎng)中部署測(cè)試,客戶端+WCF+Oracle數(shù)據(jù)庫(kù)服務(wù)器這種部署模響應(yīng)及Winform的體驗(yàn)要依賴于帶寬的大小。WCFBLL層更進(jìn)一步的包裝,設(shè)計(jì)圖的基類,這個(gè)和Winform框架是一樣的,都是為了達(dá)到統(tǒng)一、合理封裝的目的?;旌闲涂蚣芸梢钥闯墒荳inform框架高級(jí)版本,除了它本身是一個(gè)完整的業(yè)務(wù)系化來看,就是在原有的Winform界面層,用接口調(diào)用方式,避免和業(yè)務(wù)邏輯類的緊耦WinformWCF的連接,減少主配置文件的復(fù)雜性;WCF服務(wù)邏輯獨(dú)立類庫(kù),可采用多種服務(wù)Winform開發(fā)框架之混合型框架,還是秉承模塊化的思路,可以把這個(gè)框架分為從上圖我們可以看到,整個(gè)混合型框架的架構(gòu),分為了UI層、接口調(diào)用層、我的代碼生成工具Database2Sharp,使其支持這種混合型框架的代碼生成工作,這樣框架、WCF開發(fā)框架、混合型開發(fā)框架,均實(shí)現(xiàn)插件化的框架設(shè)計(jì)。Winform開發(fā)框架在原來的基礎(chǔ)上進(jìn)行擴(kuò)展,實(shí)現(xiàn)基于插件化應(yīng)用的框架特性。nform開發(fā)框架、FbWinform開發(fā)框架中的倉(cāng)庫(kù)管理系統(tǒng)作為主業(yè)務(wù)模塊,它本身也是插件應(yīng)用之一,具框架基礎(chǔ)界面模塊,定義窗體界面基類、通用Excel導(dǎo)入模塊、通用高級(jí)查詢//////動(dòng)態(tài)創(chuàng)建RibbonPage///publicclass{privateRibbonControlcontrol;publicMainFormmainForm;publicRibbonPageHelper(MainFormmainForm,refRibbonControl{this.mainForm=mainForm;this.control=control;}publicvoid{List<MenuNodeInfo>menuList=if(menuList.Count==0)inti=foreach(MenuNodeInfofirstInfoin{RibbonPagepage=newDevExpress.XtraBars.Ribbon.RibbonPage();page.Text=firstInfo.Name;page.Name=firstInfo.ID;if(firstInfo.Children.Count==0)continue;foreach(MenuNodeInfosecondInfoinfirstInfo.Children){//添加RibbonPageGroup(二級(jí)菜單)RibbonPageGroupgroupnewRibbonPageGroup();group.Text=secondInfo.Name;group.Name=secondInfo.ID;if(secondInfo.Children.Count==0)foreach(MenuNodeInfothirdInfoinifBarButtonItembutton=newBarButtonItem();button.PaintStyle=BarItemPaintStyle.CaptionGlyph;button.LargeGlyph=LoadIcon(thirdInfo.Icon);button.Glyph=LoadIcon(thirdInfo.Icon);button.Name=thirdInfo.ID;button.Caption=thirdInfo.Name;namespacenamespace//////publicinterface//////voidInitFunction(LoginUserInfouserInfo,Dictionary<string,string>//////<paramname="controlId">功能控制///boolHasFunction(string//////LoginUserInfoLoginUserInfo{get;set;//////Dictionary<Dictionary<string,string>FunctionDict{get;set;//////AppInfoAppInfo{get;set;namespacenamespacepublicpartialclassBaseForm:DevExpress.XtraEditors.XtraForm,publicBaseForm()在我們動(dòng)態(tài)加載插件應(yīng)用的后,我們會(huì)創(chuàng)建對(duì)應(yīng)的Form對(duì)象,然后轉(zhuǎn)換為FormFormtableForm=IFunctionfunctiontableFormasIFunction;if(function!=null)function.InitFunction(Portal.gc.LoginUserInfo,function.AppInfo=newAppInfo(Portal.gc.AppUnit,Portal.gc.AppName,Portal.gc.AppWholeName,Portal.gc.SystemType);IFucntion的權(quán)限控制接口,那么框架就能夠傳遞給它相應(yīng)的數(shù)在關(guān)于權(quán)限系統(tǒng)的菜單管理圖片中,可以看到了有個(gè)Winform的窗體類型的字BarButtonItembutton=newbutton.Caption=thirdInfo.Name;button.Tag=thirdInfo.WinformType;button.ItemClick+=(sender,e)=>if(button.Tag!=null&&!string.IsNullOrEmpty(button.Tag.ToString()))stringdllFullPath=Path.Combine(Application.StartupPath,filePath);AssemblytempAssembly=stringdllFullPath=Path.Combine(Application.StartupPath,filePath);AssemblytempAssembly=System.Reflection.Assembly.LoadFrom(dllFullPath);if(tempAssembly!=null)TypeobjType=tempAssembly.GetType(type);if(objType!=null)LoadMdiForm(this.mainForm,objType,Apose.Cell控件的自定義報(bào)表等功能,WinformDotNetBar優(yōu)秀的界面組件,DevExpress界面設(shè)計(jì)也在基于傳統(tǒng)經(jīng)典模式的Winform框架基礎(chǔ)上,引入中DevExpress界面效果的字典模塊如下所示。程序入口類是Portal類,提供一個(gè)Main函數(shù),Main函數(shù)將啟動(dòng)一個(gè)名為類的實(shí)例,在Main函數(shù)啟動(dòng)的時(shí)候構(gòu)造傳遞過來。class面則可以包含無數(shù)個(gè)數(shù)據(jù)查詢顯示窗體對(duì)象,如class class class classUIDesign_Dev classItemDetailInfoinfo=BLLFactory<ItemDetail>.Instance出來的對(duì)象都是強(qiáng)類型的,具有所有class 提示也比較好。數(shù)據(jù)訪問基類BaseDAL的代碼設(shè)計(jì)所示。/////////publicabstractclassBaseDAL<T>:IBaseDAL<T>whereT:BaseEntity,BaseDAL基類封裝了各種數(shù)據(jù)庫(kù)操作方法(幾乎能滿足各種要求的方法集合),sd Winform框架中,其中權(quán)限管理系統(tǒng)、字典管理系統(tǒng),都是可以做成獨(dú)立的個(gè)鍵值的字典列表作為下拉列表,而且由于實(shí)際項(xiàng)目中,有的是SqlServer、有的是Access數(shù)據(jù)庫(kù)的或者其他數(shù)據(jù)庫(kù),所以支持多數(shù)據(jù)庫(kù)是最好的選擇?;フ希奖阒赜?,又不需重新開發(fā),非常方便、更提高效率。由于權(quán)限系統(tǒng)精

privateprivatevoidForm1_Load(objectsender,EventArgs{List<UserInfo>userList=BLLFactory<User>.Instance.GetAll();foreach(UserInfoinfoin{}}privatevoidbtnSecurity_Click(objectsender,EventArgs{}UserInfoUserInfoinfo=FunctionfunctionBLL=newList<FunctionInfo>list=functionBLL.GetFunctionsByUser(info.ID,"WareMisif(list!=null&&list.Count>{foreach(FunctionInfofunctionInfoin{if{}}}////////////<param///publicboolHasFunction(string{boolresult=ifif{result=}return}pprivatevoidtool_Dict_Click(objectsender,EventArgs{FrmDictionarydlg=newFrmDictionary();}privateprivatevoid}持文件Zip解壓縮,支持進(jìn)度更新過程,支持參數(shù)化啟動(dòng)等。用自動(dòng)更新客戶端配置文件的XMLupdateconfiguration.config內(nèi)容如下所示。C#MSSql2000、MSSql2005、Oracle、Mysql、Access的Sql腳本等。EnterpriseLibrary代碼生成,生成整個(gè)項(xiàng)目工程框架,包含實(shí)體類、數(shù)據(jù)訪問類、業(yè)務(wù)類、A頁(yè)面類,利用泛型及緩存機(jī)制,良好的架構(gòu)極大簡(jiǎn)化代碼,強(qiáng)大完善Database2SharpNVelocity模板引擎作為代碼生成的Database2SharpWinform開發(fā)框架源碼外,還可以生成數(shù)據(jù)庫(kù)設(shè)Winform開發(fā)框架后,利用該工具主要是ProjectWinform開發(fā)框架為了項(xiàng)目數(shù)或者說明的一部分,因此,設(shè)計(jì)數(shù)據(jù)庫(kù)(SqlServer、Oracle等)的時(shí)候,我們強(qiáng)烈要采用Number類型,并為每個(gè)表指定一個(gè)部分同名的序列名稱,如Seq_ABC,其中ABC代表對(duì)應(yīng)的表名。使用代碼生成工具生成WinformWinform界面處理代Winform開發(fā)框架中常見的傳統(tǒng)界面、DotNetBar界面、DevExpress界面的代碼生成。Winform界面代碼生成后,會(huì)直接在代碼編輯窗體中打開,用戶可以復(fù)制或者保存起來放到VS的編輯器中進(jìn)行相應(yīng)的修改,后續(xù)的工作應(yīng)該較為輕松了。class對(duì)象邏輯設(shè)計(jì)機(jī)構(gòu)+編號(hào):+父編號(hào):+機(jī)構(gòu)名稱:*+地址:+備注:* 用戶+編號(hào):*+組名稱:+負(fù)責(zé)人:+備注:+創(chuàng)建人:*+創(chuàng)建時(shí)間:功能+編號(hào):*

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論