版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C#項(xiàng)目開發(fā)規(guī)范與三層架構(gòu)三層結(jié)構(gòu)開發(fā)模式三層結(jié)構(gòu)是基于模塊化程序設(shè)計(jì)的思想,為實(shí)現(xiàn)分解應(yīng)用程序的需求,而逐漸形成的一種標(biāo)準(zhǔn)模式的模塊劃分方法。 三層架構(gòu)的優(yōu)點(diǎn)在于不必為了業(yè)務(wù)邏輯上的微小變化而遷至整 個(gè)程序的修改,只需要修改商業(yè)邏輯層中的一個(gè)函數(shù)或一個(gè)過程;增強(qiáng)了代碼的可重用性; 便于不同層次的開發(fā)人員之間的合作,只要遵循一定的接口標(biāo)準(zhǔn)就可以進(jìn)行并行開發(fā)了,最終只要將各個(gè)部分拼接到一起構(gòu)成最終的應(yīng)用程序。本節(jié)將主要介紹三層結(jié)構(gòu)的基本概念及如何搭建三層結(jié)構(gòu)。18.2.1三層結(jié)構(gòu)概念三層結(jié)構(gòu)通常是指數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層和表示層。三層結(jié)構(gòu)之間的關(guān)系如圖18-2所示。表示層位于最上層, 用于顯示和
2、接收用戶提交的數(shù)據(jù),為用戶提供交互式的界面。 表示層一般為Windows窗體應(yīng)用程序或Web應(yīng)用程序。業(yè)務(wù)邏輯層是表示層和數(shù)據(jù)訪問層之間溝通的橋梁,主要負(fù)責(zé)數(shù)據(jù)的傳遞和處理。數(shù)據(jù)訪問層主要實(shí)現(xiàn)對(duì)數(shù)據(jù)的讀取、保存和更新等操作。圖18-2三層結(jié)構(gòu)之間關(guān)系時(shí)在三層結(jié)構(gòu)中,各層之間相互依賴,表示層依賴于業(yè)務(wù)邏輯層,業(yè)務(wù)邏輯層依賴于數(shù)據(jù)訪問層圖184創(chuàng)建空白解決方案找*J*H(2)在打開的"新建項(xiàng)目"對(duì)話框中,選擇項(xiàng)目類型為"Visual Studio解決方案",選擇模板為"空白解決方案”。然后填寫解決方案的名稱為"MyBookShop&quo
3、t;,并指定保存位置,如圖18-4所示。(3)在"解決方案資源管理器”中,在解決方案名稱上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇"添加”r”新建項(xiàng)目”命令,如圖18-5所示。新建空白解決方案打開m美屈:.口mect/itM新建項(xiàng)目*:變件9工Jt© 厝試® 曰皿 牡區(qū)©耕淺也 Ega CP整蜂.eg-專 PMS*并營(yíng)工JU M3rjur MXHB蚌;砰圖1&3新建項(xiàng)目.iirta)«0M!«i偵y蛇m推料nt i,i1.如何搭建三層結(jié)構(gòu)本節(jié)將通過一個(gè)簡(jiǎn)單的登錄功能實(shí)現(xiàn),講述如何搭建三層結(jié)構(gòu)。1.搭建數(shù)據(jù)訪問層(1)打開
4、VS 2005開發(fā)環(huán)境,依次選擇”文件”,新建”5項(xiàng)目”命令,如圖18-3所示。VicrAtft TKuH Sturti(iSwrr圖1&5新建項(xiàng)目-(4)在打開的"新建項(xiàng)目"對(duì)話框中,選擇項(xiàng)目類型為"Visual C#",選擇模板為"類庫"。填寫項(xiàng)目的名稱為"MyBookShop.DAL”,該項(xiàng)目用于實(shí)現(xiàn)數(shù)據(jù)訪問層。此時(shí)項(xiàng)目的保存位置 已經(jīng)默認(rèn)輸入了,是剛才創(chuàng)建空白解決方案時(shí)產(chǎn)生的路徑,如圖 18-6所示。2. 搭建業(yè)務(wù)邏輯訪問層搭建業(yè)務(wù)邏輯層的步驟與搭建數(shù)據(jù)訪問層類似,不同的是需要重新填寫項(xiàng)目名稱為MyBookS
5、hop.BLL",如圖 18-7 所示。3. 搭建表示層(1) 在"解決方案資源管理器”中,在解決方案名稱上單擊鼠標(biāo)右鍵,在彈出的快捷菜 單中選擇"添加""新建網(wǎng)站”命令,如圖18-8所示。廣茨町解廈刀等中)*重黠室故前ETcfl呂型町批生風(fēng)Q1 , -配置管#朋Q).康目催炒摩0一 現(xiàn)崗生期鞍序卓 潘加甲橫重啟勃頊目3圖1*8新建朗站,以L實(shí)現(xiàn)表示層上驊建歌日部現(xiàn)膏網(wǎng)站g.新建網(wǎng)站,(2) 在打開的”添加新網(wǎng)站”對(duì)話框中,選擇"ASP.NET網(wǎng)站”,選擇位置為”文件系統(tǒng)”, 并設(shè)置網(wǎng)站的路徑,如圖18-9所示。圖18-9添加網(wǎng)站a在
6、三層結(jié)構(gòu)開發(fā)中,通常還會(huì)使用模型層。 模型層包含所有與數(shù)據(jù)庫中的表相對(duì)應(yīng)的實(shí) 體類。表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層三層之間通過傳遞實(shí)體對(duì)象來達(dá)到數(shù)據(jù)傳遞的目的。創(chuàng)建模型層的步驟與搭建業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層類似,不同的是需要重新填寫項(xiàng)目名稱為"MyBookShop.Models",如圖 18-10 所示。圖131。創(chuàng)建模理層日此時(shí),在"解決方案資源管理器"中,三層結(jié)構(gòu)的基本框架如圖18-11所示。4. 添加各層之間依賴關(guān)系此時(shí),雖然三層結(jié)構(gòu)的基本框架已經(jīng)搭建成功,但是各層之間是獨(dú)立的。只有添加依賴關(guān)系,才能讓它們相互協(xié)作。(1)添加表示層對(duì)業(yè)務(wù)邏輯層及模型
7、層的依賴。在"解決方案資源管理器"中,在表示層上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇”添加引用"命令,如圖18-12所示。,»n/匚饋邏輯層/L_J表不層*1數(shù)據(jù)訪間層模型層_j *»>_D*t* r*i * 一wil t,,您 1廣厚可8二土* I土 土 Proper li*s|;A-oa 引用 «*、:lLq 笙皇,廣*"況福fFL%:|!Jfe. f z1 fr-b frr IL e£-聾用I*、ci j1尸亍際至廳,苗7、III +' =J引用產(chǎn)、CIkeJ »:圖1811三層增構(gòu)的
8、基本框架碘壽臬漫甘!1需Y X. 從1 哩二解竺竺2也£曲 tt m E63HP匕stsrawopB媯歐如s三r呼,新加航項(xiàng)op+耕*土四桐皿有頊姻-.3 «y»k5r J蝌心骨其叫勺 土梅切峪HH交件漆P ,型z _物禍®.一添加引用補(bǔ)= Ms”暨 rSvTiffiaT- 士 = Jr 吁+日引用紅豪看克夫莉EE四g電宜蒯阿精中 .一,.a圖1&12選擇添加引用/(2) 在打開的"添加引用"對(duì)話框中,選擇"項(xiàng)目"選項(xiàng)卡,選中項(xiàng)目名稱為"MyBookShop.BLL"和"MyB
9、ookShop.Models"的兩個(gè)項(xiàng)目,單擊”確定”按鈕,如圖18-13所示。(3) 使用上述方法在業(yè)務(wù)邏輯層中添加對(duì)數(shù)據(jù)訪問層和模型層的依賴,以及數(shù)據(jù)訪問 層對(duì)模型層的依賴。圖1企13在表示層中添加引用#該部分視頻教程位置如圖18-14所示。圖俺13在表示層中派加引用至此,三層結(jié)構(gòu)及各層之間的依賴關(guān)系創(chuàng)建完畢。下面以登錄為例, 測(cè)試各層之間如何協(xié)同工作的3)編寫業(yè)務(wù)邏輯類 UserManager1)編寫實(shí)體類 User.cs在模型層中,將默認(rèn)的類名 Class1.cs重命名為"User.cs”,該實(shí)體類與數(shù)據(jù)庫 BookShop中的表Users相對(duì)應(yīng)。實(shí)體類 User.
10、cs中部分代碼如下:using System;'using System .Co 1 lectio n?. Gen ericusxng Systemnamespace MyBookS hop -ModeIspublic User () putalie inr id; public inr g一一一 一 I一一I get- cetuii idr r*-i set id = value; ) + 'i pt:ivate srrlnq Lclald; 性乖名屬性public str irig Loginlt +J一 :項(xiàng)巳& ret-urn log in Id; ,+1(iy
11、set loginld - value; *;時(shí)ptivate string Lo或inPwd; public str ing LoginPTffd*-', w w» V *_ _ i get cetvu;n IginPwdr 十 |i set? loginPwd = value; )<lkprivate string 門丑忙, public str ing Mame-1仲:get iretrni"set 皿re - value; ;R在上述代碼中,數(shù)據(jù)訪問類中使用了DBHelper類,該類包含了常用的對(duì)數(shù)據(jù)庫進(jìn)行操作的方法。由于篇幅所限在此不列出具體代碼,讀
12、者可以查看源代碼。4)編寫表示層(1)創(chuàng)建頁面Login.aspx,其設(shè)計(jì)視圖如圖18-15所示。-1Serializable ()' *編號(hào)屬愴,public classUser針對(duì)模型層中的每個(gè)實(shí)體類,數(shù)據(jù)訪問層有一個(gè)對(duì)應(yīng)的數(shù)據(jù)訪問類。例如,針對(duì) 實(shí)體類,創(chuàng)建一個(gè)對(duì)應(yīng)的UserService類,用于對(duì)數(shù)據(jù)表 Users的數(shù)據(jù)處理。在UserService類中添加一個(gè)根據(jù)登錄名進(jìn)行查詢的方法,代碼如下:sruiriQ scfl = f,se Leet * Eroin Useus Loginldusii1 CSLDaraPj&srier ir&a.cl5r = DBIf
13、eIper.GetPesdetr(2eil, new SqlParstiiiLog!nldrrf Leg!nld) J+1( 俊即誑用?鐐息后,傍其保存到J*U$哲對(duì)葬中,養(yǎng)遮回諾封韌If "源e. FeeG。)*,r%a. A=* 三二 aa>a.a> ._i 7ser umui;=璃f User ()強(qiáng):user. Id = ( int) readeri user,Lcginld = (3t-ring> tEdsr ,FLoginIdM ;<' user. LoginPud - (string) reedier ,rLeglrPwd,r;<t
14、reader .Close () ;+J return user;/Relse#'Wneader. Close ()_、rret-urn. null; * 未棧鋼諼用戶.則退回 皿11k,*w51CIO.I針對(duì)模型層中的每個(gè)實(shí)體類,業(yè)務(wù)邏輯層中也有一個(gè)對(duì)應(yīng)的類。例如,針對(duì)User實(shí)體類,創(chuàng)建一個(gè)對(duì)應(yīng)的 UserManager類。在UserManager類中添加用于登錄驗(yàn)證的業(yè)務(wù)方法,其代碼如下:using SystemsSysi-esfn.Ccllectrians. Generic;*1usinff Svstem.TEKtgusing HyEeokShop.DAL;uainff nyE
15、cokShcp, Mode Is;*1nsrrespaE;e MyEoekShop. ELL*廠一public class UserHaiiagerJ1( 登錄蚣證,'t時(shí)upublic 3rati.c bool L&giii(srring Logm Id, string lt5ginPTJdf out Us&r vali +JUser user = U兮目說 cvi咬.Gen Um虹8 jLcj gl n Itl E J口 g i_ii 工日 J; >' 母(user 戶信意. 1vial zijdtJser = naull;技術(shù)成就return fal
16、se;*-1卜卷歸正硝it (us&r. LaginPvd = loLHPwd)*validUEr » user;*-return t仃(.已Lm Sf鴿情度.,(*val idUgei; = nulX;4-1return f alse;kJ*(2)雙擊"登錄”按鈕,生成其Click事件,并在代碼后置文件 Login.aspx.cs中編寫事件 處理程序,其代碼如下: -« 一Fb r,r !P- » fl «- r ”= ,-using System;using Systemusing Sys tera *Ccnf igurat ion
17、;<-:using Syatem. Collect ion 5;;using System.leh;*-1:using System.¥ek).Security1i using 5yateni«UetoiUI;ttsiftg S7staki.Ueb.UI. W&b Contra is;-:using System neito.UI. UeL»Contrcls*WeoFart s;*1E;using Sys tern, Ul-HtmLContrXola;Ei using MyB ookShop. Mode La jii using Hy3ooKrSli
18、op.BLL;public partial class LoQin : SystEiti. U&b. UI .Paeij+|jo rcc ecved vc id P鼠罪一 Load (obj ect se ndei? f Event Atqs e) t!2技術(shù)成就夢(mèng)iSprojected wid iirnlciQin LGK;(ooject; seiideu, Event-Ars 目七(4J、User user;*" Wj 一(this-txtLaginld.Text.Trim() .Length - 0PJS 我If*S9Responae.Wti.te ("<script>alert (11) </scLipt>")(thls.txtrP wA, Text. TtunC) , Length )*Response. Urrte (M<script>aLert ( 輸入密碼i ) </script>fF)rf (IT
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 解構(gòu)交叉學(xué)科
- 教育研究脈絡(luò)揭秘
- 2024年版商務(wù)咨詢與服務(wù)合同
- 3我不拖拉 說課稿-2023-2024學(xué)年道德與法治一年級(jí)下冊(cè)統(tǒng)編版
- 25 少年閏土(說課稿)-2024-2025學(xué)年統(tǒng)編版語文六年級(jí)上冊(cè)
- 金融科技項(xiàng)目投資與風(fēng)險(xiǎn)管理合同
- 美麗人生故事解讀
- 2024水利工程設(shè)計(jì)咨詢合同 for 水電站項(xiàng)目
- 企業(yè)并購的100%股權(quán)轉(zhuǎn)讓協(xié)議
- 個(gè)人與物流公司2024年度運(yùn)輸合同3篇
- 滬教版小學(xué)數(shù)學(xué)三(下)教案
- 中鐵開投、中鐵云投招聘筆試沖刺題2025
- 2024-2025年度村支書工作述職報(bào)告范文二
- 陜西省西安市高新一中2024-2025學(xué)年九年級(jí)上學(xué)期綜合素養(yǎng)評(píng)價(jià)(三)化學(xué)試卷(含答案)
- 繼電保護(hù)多選試題庫與參考答案
- 品管圈PDCA改善案例-降低住院患者跌倒發(fā)生率
- 2024版健康醫(yī)療服務(wù)機(jī)構(gòu)合作協(xié)議范本3篇
- 公務(wù)車輛定點(diǎn)加油服務(wù)投標(biāo)文件(技術(shù)方案)
- DB21∕T 3240-2020 芹菜農(nóng)藥安全使用生產(chǎn)技術(shù)規(guī)程
- 科研辦公樓施工組織設(shè)計(jì)
- 《交換機(jī)基本原理》課件
評(píng)論
0/150
提交評(píng)論