唐世毅
摘 要:在面向?qū)ο筌浖_發(fā)實(shí)踐中,越來(lái)越多的使用三層結(jié)構(gòu),結(jié)合《高職院校畢業(yè)生職業(yè)發(fā)展跟蹤評(píng)價(jià)系統(tǒng)》的開發(fā),本文介紹了.NET三層結(jié)構(gòu)的實(shí)現(xiàn)方法,并重點(diǎn)探討了.NET三層結(jié)構(gòu)的實(shí)現(xiàn)原理及三層結(jié)構(gòu)的具體好處。
關(guān)鍵詞:.NET;三層結(jié)構(gòu);實(shí)現(xiàn)原理;類型無(wú)關(guān);可維護(hù)性
.NET三層結(jié)構(gòu)是一種比較成熟的軟件開發(fā)架構(gòu),由于其適應(yīng)性廣、可維護(hù)性強(qiáng)、適合團(tuán)隊(duì)開發(fā)等優(yōu)勢(shì),在MIS類數(shù)據(jù)庫(kù)應(yīng)用程序中得到了廣泛的應(yīng)用。發(fā)展到Microsoft Visual Studio 2010開發(fā)平臺(tái),微軟公司進(jìn)一步實(shí)現(xiàn)了自動(dòng)化和集成處理,讓三層結(jié)構(gòu)的實(shí)現(xiàn)變得簡(jiǎn)單、高效。《高職院校畢業(yè)生職業(yè)發(fā)展跟蹤評(píng)價(jià)系統(tǒng)》的開發(fā)應(yīng)用了三層結(jié)構(gòu)的架構(gòu),下面介紹在開發(fā)中三層結(jié)構(gòu)的具體實(shí)現(xiàn)。
1 .NET三層結(jié)構(gòu)的實(shí)現(xiàn)步驟
首先在解決方案中創(chuàng)建網(wǎng)站,即Web項(xiàng)目;其次創(chuàng)建Model項(xiàng)目,模板選擇“類庫(kù)”,在Model項(xiàng)目中添加新建項(xiàng),模板選擇“ADO.NET實(shí)體數(shù)據(jù)模型”,然后根據(jù)已有的數(shù)據(jù)庫(kù)生成Model項(xiàng)目;最后創(chuàng)建BLL項(xiàng)目,模板選擇“類庫(kù)”。三層創(chuàng)建完成后,添加各層之間的依賴關(guān)系,通過(guò)“添加引用”來(lái)實(shí)現(xiàn),目的是可以順利的訪問(wèn)其它層的類,從而實(shí)現(xiàn)系統(tǒng)的功能。
2 .NET三層結(jié)構(gòu)的框架及模型:
前述步驟完成后,形成基本框架如圖1。三層結(jié)構(gòu)在本系統(tǒng)中的模型如圖2。
3 .NET三層結(jié)構(gòu)的實(shí)現(xiàn)原理
Model項(xiàng)目中生成了一個(gè)名為MISModel.edmx的文件,即把數(shù)據(jù)庫(kù)映射成實(shí)體對(duì)象的文件,打開MISModel.Designer.cs文件,主要分為“上下文”和“實(shí)體”兩部分,“上下文”部分聲明了最重要的一個(gè)實(shí)體類“MISEntities”,該類對(duì)目標(biāo)數(shù)據(jù)庫(kù)的方方面面作了詳細(xì)的描述,是連接Model項(xiàng)目與BLL項(xiàng)目最為重要的紐帶,也是實(shí)現(xiàn)三層結(jié)構(gòu)的關(guān)鍵之所在?!皩?shí)體”部分就是對(duì)目標(biāo)數(shù)據(jù)庫(kù)各個(gè)基本表格的映射,一張表格對(duì)應(yīng)一個(gè)實(shí)體類。
下面舉例說(shuō)明,三層結(jié)構(gòu)實(shí)現(xiàn)的關(guān)鍵技術(shù)
Web項(xiàng)目:
Default.aspx里一段代碼:
BLLUserManagement bllUser = new BLLUserManagement();
tblUsers aUser = bllUser.getAUsersByUserLoginName(TextBox1.Text.Trim());
BLL項(xiàng)目:
MISEntities misEntities = new MISEntities();
ObjectSet
ObjectSet
此處:misEntities.CreateObjectSet
Model項(xiàng)目:
public partial class MISEntities : ObjectContext
public partial class tblUsers : EntityObject
public partial class tblUserGroupPermission : EntityObject
4 .NET三層結(jié)構(gòu)的好處:
⑴如果軟件系統(tǒng)發(fā)生改變,如果只改變形式,不改變邏輯功能。⑵如果軟件系統(tǒng)發(fā)生改變,改變了邏輯功能。包括數(shù)據(jù)庫(kù)本身發(fā)生了改變,數(shù)據(jù)訪問(wèn)層可以自動(dòng)生成,工作量很??;業(yè)務(wù)邏輯層和表示層的改動(dòng)工作量并不大,整個(gè)工作并不繁瑣,最為關(guān)鍵的是,改動(dòng)的工作清晰、有序。⑶對(duì)于較大的軟件系統(tǒng),更能體現(xiàn)三層結(jié)構(gòu)的價(jià)值。每一層分工明確,每一層的人員專注于本層的工作,同時(shí)也能很好的協(xié)作。能實(shí)現(xiàn)的原因在于各層相對(duì)獨(dú)立,耦合度低,關(guān)鍵技術(shù)還是類型無(wú)關(guān)性。
[參考文獻(xiàn)]
[1]陳超.深入理解三層軟件架構(gòu)[J].福建電腦,2010(11):75-76.
[2]布什波.C#3.0設(shè)計(jì)模式[M].北京:機(jī)械工業(yè)出版社,2008:78-98.
[3]北大青鳥.在.NET框架下開發(fā)三層結(jié)構(gòu)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)[M].北京:科學(xué)技術(shù)文獻(xiàn)出版社,2008:11-61.
[4]岳付強(qiáng).三層架構(gòu)在學(xué)位論文管理系統(tǒng)中的應(yīng)用研究[J].西昌學(xué)院學(xué)報(bào)(自然科學(xué)版),2010(4):72-74.
[5]徐照興,劉武.基于B/S模式的高職畢業(yè)生就業(yè)數(shù)據(jù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2012(9):297-300.