版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C#c/s結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)框架詳解(一)vjsdn自發(fā)布多文檔界面(MDI)系統(tǒng)框架-C#完整版后又有了新想法,就是再寫個(gè)C#版C/S結(jié)構(gòu)系統(tǒng)框架。因時(shí)間關(guān)系斷斷續(xù)續(xù)寫了很久。借周日機(jī)會(huì),我將源代碼整理好再寫些說明文檔發(fā)布出來,希望給大家?guī)韺W(xué)習(xí)機(jī)會(huì)。特別聲明的是:C/S結(jié)構(gòu)系統(tǒng)框架是優(yōu)化和改編自幾個(gè)大型系統(tǒng),是經(jīng)歷過考驗(yàn)和實(shí)際應(yīng)用的。希望大家好好珍惜。這個(gè)框架有很多學(xué)習(xí)要點(diǎn),提醒大家不僅僅是下載代碼而應(yīng)該去好好研究,甚至閱讀每一行代碼每一個(gè)模塊每一個(gè)細(xì)節(jié)!你學(xué)會(huì)了它也許將來作為一個(gè)優(yōu)秀架構(gòu)師需要設(shè)計(jì)同樣一個(gè)系統(tǒng)時(shí),這時(shí)你用上它,不是事半功倍么?另外,請(qǐng)尊重作者版權(quán),寫一個(gè)框架的確需要大量時(shí)間和
2、精力。程序員有個(gè)共性是寫作永無止境,雖是深夜2點(diǎn),但我們?nèi)栽谒伎迹栽趯懽?!眼睛睡覺了但思維和創(chuàng)作動(dòng)力仍在冗奮中,作為一個(gè)程序員的你,我說的對(duì)嗎?有同樣的感受嗎?所以:轉(zhuǎn)載時(shí)請(qǐng)注明本文來自易學(xué)網(wǎng) HYPERLINK http:/www.vjsdn !言歸正傳,接下來講解系統(tǒng)框架實(shí)現(xiàn)過程。首先看幾個(gè)圖對(duì)框架有個(gè)初步認(rèn)識(shí)。1.登陸窗體準(zhǔn)備登錄窗體如通過驗(yàn)證用戶,則加載MDI主窗體,留意圖片內(nèi)的動(dòng)態(tài)消息:正在初始化用戶界面,請(qǐng)稍候.登錄窗體是多數(shù)應(yīng)用程序的入口,在進(jìn)入系統(tǒng)前需要用戶驗(yàn)證。請(qǐng)看實(shí)現(xiàn)過程:2.MDI主窗體登錄成功后顯示MDI主窗體.圖片為測(cè)試模塊II的主界面.訂單資料測(cè)試霍煥II(VS結(jié)
3、構(gòu)程序框架-1DI主窗體系SE管理Login:程序:易學(xué)原創(chuàng)版本:141VJSDN,測(cè)試模塊一測(cè)試模塊工工膛)稱助并閉匕買4茶統(tǒng)設(shè)胃務(wù)測(cè)試窗體81試賀塊一聚統(tǒng)管理關(guān)于程序lbar|養(yǎng)盂町工框架模塊(ModuleWindow)ty易學(xué)原創(chuàng)測(cè)試窗懷用戶權(quán)限測(cè)試按鈕登錄成功后顯示MDI主窗體.圖片為系統(tǒng)管理模塊的主界面.3.關(guān)于程序/作者4解決方案SolutionExplorer從+Troperties+旦Referencesffl-口bina-dobj業(yè)務(wù)層BusinessLayerSolution*vjsdn_CS3La.yers?(9projects).須vjsdn.CS3LayersFram
4、evork.B-usiness二Soles:“首ITserRolG.cs歯tlLService.cs:濟(jì)muswT.u囂.jjvjsdn.CS3LayersFrrework.CorwhonrrcbpertiesReferences公共IS塊Globals.csIfilsg.csMsg.csSingletoxiPrograjn.cs+i:=lProperties+Referencesa-Ql占況二objdalUser.cs數(shù)據(jù)層DataAccessLayerDataProvider.cs0.事vjsdn.CS3Layers_Franework.LibraryI:習(xí)IProperties7Refe
5、rences控件庫崔D(zhuǎn)AssemblyfiloduleEn.try.csS固frmBase.cs(3圈frmModuleBase,cs酋LoadStat-us.cs酋ModuleLoader.cs電1Modulehlaiiager.cs;_皙SpLashLab.csSvjsdji.CS3L&yers.fraBevork.Iftin十國(guó)Tfoperties+9LeferencesMDI主禮序(3,_jLeso-urces酋AppEntry.cs(3固frnAboutVjsdii.csS)闔frmLogin.csE)圉frmMain.cs7酒Frogram.cs-.卻vjsdn.CS3Layers
6、Framework.ModelsFiProper5Referencesillbin口obj皙TStudent.cs酋TTeacher.cs建TUser.cs甲十十十實(shí)體類rjsdn.CS3Layers_Franework.SytemModiile創(chuàng)Properties7Keferences核塊:系姚設(shè)置揍塊,_j|EGSources國(guó)frffiSysterTiMsiin.es國(guó)fkTiSystemOptions.e5-.Jjjvjsdn.CS3Layers_Franiework.TestModulwlStiw占皙ksseiTiblylnfo.cs模塊;測(cè)試核塊I用代碼實(shí)現(xiàn)登錄到加載MDI主窗體
7、.1.程序入口代碼:0日代碼staticclassProgramSTAThreadstaticvoidMain()/捕獲系統(tǒng)所產(chǎn)生的異常。Application.ThreadException+=newThreadExceptionEventHandler(Application_ThreadException);SystemConfig.ReadSettings();/讀取系統(tǒng)設(shè)置bllService.SetDataBasePath();/因用至UAccess,扌旨定個(gè)MDB文件Processinstance=SingletonProgram.GetRunningInstance();if(
8、instance!=null)Msg.Warning(程序已經(jīng)運(yùn)行.);if(instance!=null)&(!SystemConfig.CurrentConfig.AllowRunMultiInstance)SingletonProgram.HandleRunningInstance(instance);/Activeinstancereturn;Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);/注意:先打開登陸窗體,如登陸成功后再正式運(yùn)行程序(MDI主窗體)/學(xué)會(huì)這
9、種寫法。if(AppEntry.Login()Application.Run(AppEntry.MainForm);elseApplication.Exit();privatestaticvoidApplication_ThreadException(objectsender,ThreadExceptionEventArgse)Msg.ShowException(e.Exception);轉(zhuǎn)載請(qǐng)注明來自易學(xué)網(wǎng)易學(xué)原創(chuàng)作品留意這段代碼:if(AppEntry.Login()Application.Run(AppEntry.MainForm);elseApplication.Exit();調(diào)用Ap
10、pEntry類表態(tài)方法Login(),如登錄成功,此時(shí)已經(jīng)創(chuàng)建MainForm實(shí)例,則運(yùn)行主窗體.AppEntry類是個(gè)公共類,僅定義登錄方法及MDI主窗體變量.在登錄窗體內(nèi)用到該類.用戶登錄成功則創(chuàng)建frmMain實(shí)例.然后調(diào)用Application.Run(AppEntry.MainForm)方法.AppEntry類,應(yīng)用程序入口類.國(guó)日代碼publicclassAppEntrypublicstaticboolLogin()returnfrmLogin.TryLogin();privatestaticfrmMain_mainForm=null;publicstaticfrmMainMain
11、Formgetreturn_mainForm;set_mainForm=value;登錄窗體源代碼:S日代碼publicpartialclassfrmLogin:Form/將構(gòu)造器設(shè)為靜態(tài),防止外部創(chuàng)建實(shí)例privatefrmLogin()InitializeComponent();/打開登陸窗體,公開一個(gè)主靜態(tài)方法/publicstaticboolTryLogin()frmLoginformnewfrmLogin();boolret=form.ShowDialog()=DialogResult.OK;returnret;privatevoidbtnLogin_Click(objectsend
12、er,EventArgse)/調(diào)用業(yè)務(wù)層登錄方法boolret=newbllUser().Login(txtUser.Text,txtPwd.Text);if(ret)/登錄成功創(chuàng)建主窗體AppEntry.MainFormnewfrmMain();/初始化主窗體(如加載模塊,初始化用戶界,加載系統(tǒng)參數(shù))/在初始化同時(shí)login窗體會(huì)動(dòng)態(tài)顯示信息。AppEntry.MainForm.InitUserInterfacnewStatusLable(this.lblLoadingInfo);this.DialogResult=DialogResult.OK;this.Close();/關(guān)閉登陸窗體el
13、seMsg.Warnin登錄失敗,請(qǐng)檢查用戶名和密碼!);privatevoidbtnCancel_Click(objectsender,EventArgse)this.Close();轉(zhuǎn)載請(qǐng)注明來自易學(xué)網(wǎng) HYPERLINK /%e6%98%93%e5%ad%a6%e5%8e%9f%e5%88%9b%e4%bd%9c%e5%93%81 /易學(xué)原創(chuàng)作品這里需要調(diào)用業(yè)務(wù)層執(zhí)行用戶登錄.要學(xué)會(huì)將業(yè)務(wù)代碼與界面代碼分離./調(diào)用業(yè)務(wù)層登錄方法boolret=newbllUser().Login(txtUser.Text,txtPwd.Text);if(ret)當(dāng)?shù)卿洺晒?,?chuàng)建MDI主窗體實(shí)例,然后調(diào)用
14、實(shí)例方法InitUserlnterface.這時(shí)初始化主窗體./初始化主窗體(如加載模塊,初始化用戶界,加載系統(tǒng)參數(shù))/在初始化同時(shí)login窗體會(huì)動(dòng)態(tài)顯示信息。AppEntry.MainForm.InitUserInterface(newStatusLable(this.lblLoadinglnfo);4.下面是MDI主窗體的代碼:0日代碼publicpartialclassfrmMain:Form/模塊管理器實(shí)例privateModuleManager_ModuleManager;publicfrmMain()InitializeComponent();/初始化用戶接口publicvoid
15、InitUserInterface(StatusLablesplash)this.SuspendLayout();splash.UpdateMessage正在初始化用戶界面,請(qǐng)稍候.);_ModuleManager=newModuleManager(this,xtraTabControl1);/創(chuàng)建模塊管理器_ModuleManager.LoadModules(splash);/加載可用模塊splash.UpdateMessage正在加載工具欄.);_ModuleManager.CreateNavBarButtonsthis.navBarContro11,this.menuStripl);/倉
16、U建導(dǎo)航工具欄按鈕splash.UpdateMessage正在加載用戶模塊.);splash.UpdateMessage正在初始化數(shù)據(jù).);splash.UpdateMessage加載完畢.);this.ResumeLayout();/顯示由參數(shù)指定的模塊/publicvoidActiveModule(stringmoduleDisplayName)foreach(XtraTabPagepageinthis.xtraTabControl1.TabPages)if(page.Text.Equals(moduleDisplayName)xtraTabControl1.SelectedTabPage
17、=page;return;privatevoidbtnHelp_Click(objectsender,EventArgse)newfrmAboutVjsdn().ShowDialog();privatevoidbtnClose_Click(objectsender,EventArgse)this.Close();privatevoidbtnAbout_Click(objectsender,EventArgse)newfrmAboutVjsdn().ShowDialog();轉(zhuǎn)載請(qǐng)注明來自易學(xué)網(wǎng) HYPERLINK /%e6%98%93%e5%ad%a6%e5%8e%9f%e5%88%9b%e4%bd%9c%e5%93%81 /易學(xué)原創(chuàng)作品窗體類定義一個(gè)_ModuleManager變量,用于加載模塊.請(qǐng)看ModuleManager詳解.InitUserlnterface()方法是初始化主窗體方法.由frmLogin調(diào)用.轉(zhuǎn)載請(qǐng)注明來自易學(xué)網(wǎng) HYPERLINK /%e6%98%93%e5%ad%a6%e5%8e%9f%e5%88%9b%e4%bd%9c%e5%93%81 /易學(xué)原創(chuàng)作品續(xù)W全部鏈接:1.C/S結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)框架詳解 HYPERLINK http:/www.vjsd http:/www.vjsd/bbs/bbsTopicDetails.aspx?pid=1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年6月浙江省高考生物試卷真題(含答案解析)
- 中國(guó)戶外廣告投光燈行業(yè)市場(chǎng)調(diào)查研究報(bào)告
- 2024至2030年中國(guó)射頻前端接收濾波放大單元數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024至2030年中國(guó)凸面平焊法蘭數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024至2030年中國(guó)HDPE再生顆粒數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024年中國(guó)耐熱硅橡膠屏蔽軟電纜市場(chǎng)調(diào)查研究報(bào)告
- 2024年中國(guó)彩照模塊市場(chǎng)調(diào)查研究報(bào)告
- 2024年中國(guó)手機(jī)外殼塑膠無塵噴涂線市場(chǎng)調(diào)查研究報(bào)告
- 程力勞動(dòng)合同
- 倉單轉(zhuǎn)賣合同
- BJ單身日記-英文臺(tái)詞劇本解析
- 幼兒園好習(xí)慣好性格養(yǎng)成繪本:壞脾氣的蛋糕
- 老舊小區(qū)改造室外給排水工程施工方案和技術(shù)措施
- CPK-數(shù)據(jù)自動(dòng)生成器
- 食品的感官檢驗(yàn)-感官檢驗(yàn)的常用方法(食品檢測(cè)技術(shù)課件)
- 傳染病護(hù)理學(xué)高職PPT完整全套教學(xué)課件
- 心理投射測(cè)驗(yàn)案例集(含解析)
- 超市物品盤點(diǎn)表
- 《大學(xué)信息技術(shù)》期末考試復(fù)習(xí)題庫(含答案)
- 貴陽烏當(dāng)富民村鎮(zhèn)銀行2023年第四期招聘應(yīng)屆畢業(yè)生(往屆可)筆試歷年高頻考點(diǎn)試題答案帶詳解
- 武漢科技大學(xué)2021年《護(hù)理綜合》考研真題與答案解析
評(píng)論
0/150
提交評(píng)論