国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ASP.NET三層架構(gòu)應(yīng)用系統(tǒng)解析

2013-07-29 00:56:32翟自強
中國新通信 2013年6期
關(guān)鍵詞:表示層類庫用戶界面

翟自強

【摘要】隨著ASP.NET應(yīng)用的普及,越來越多的軟件系統(tǒng)采用ASP.NET技術(shù)。然而很多中小WEB應(yīng)用都采用不分層的方式進(jìn)行開發(fā),導(dǎo)致了代碼的混亂。為日后的維護(hù)工作帶來了極大的困難。本文闡述了ASP.NET三層架構(gòu)的優(yōu)點和如何構(gòu)建三層架構(gòu)。

【關(guān)鍵詞】表示層(PL)業(yè)務(wù)邏輯層(BLL)實體(Entity)數(shù)據(jù)訪問層(DAL)

一、三層架構(gòu)概述

所謂三層架構(gòu)中的三層,指的是表示層(PL)、業(yè)務(wù)邏輯層(BLL)和數(shù)據(jù)訪問層(DAL):數(shù)據(jù)訪問項目執(zhí)行從數(shù)據(jù)庫(或其他數(shù)據(jù)服務(wù))獲取數(shù)據(jù)或向數(shù)據(jù)庫發(fā)送數(shù)據(jù)的功能。在分布式應(yīng)用程序結(jié)構(gòu)中,相應(yīng)功能使用ADO. NET數(shù)據(jù)適配器和SQL服務(wù)器存儲過程來完成。業(yè)務(wù)規(guī)則項目包含業(yè)務(wù)對象本身以及應(yīng)用于它們的規(guī)則。這也是主要業(yè)務(wù)對象所在的位置。它們實現(xiàn)業(yè)務(wù)實體或系統(tǒng)對象。系統(tǒng)的業(yè)務(wù)規(guī)則將在這些對象中編碼,盡管部分業(yè)務(wù)規(guī)則可能實際上已在數(shù)據(jù)庫的存儲過程和觸發(fā)器中進(jìn)行了編碼。

用戶界面項目是指在應(yīng)用程序中實現(xiàn)的客戶端。在分布式應(yīng)用程序結(jié)構(gòu)中,用戶服務(wù)可以是Web客戶端或Windows客戶端,這具體取決于特定的應(yīng)用程序。例如,在開發(fā)Web應(yīng)用程序時,可能需要提供具有標(biāo)準(zhǔn)Windows用戶界面或Web用戶界面。

二、三層架構(gòu)優(yōu)點

在三層架構(gòu)的軟件系統(tǒng)中,表示層(PL)即用戶界面(UI)、業(yè)務(wù)邏輯層(BLL)和數(shù)據(jù)訪問層(DAL)之間是相對獨立的。相鄰的兩層之間產(chǎn)生一定的聯(lián)系(即耦合),隔層是不會產(chǎn)生影響的。這樣當(dāng)任何一層發(fā)生改變的時候,只需做簡單的調(diào)整就可以了。降低了變更所帶來的影響,為后續(xù)的系統(tǒng)維護(hù)工作提供了便利。

三、三層架構(gòu)實例

下面將仍以“用戶登陸”為例,講述如何搭建三層架構(gòu)的應(yīng)用系統(tǒng)。

(一)在VS2008中搭建解決方案“MySchoolPro”。(1)在VS2008中建立名為“MySchoolPro”的解決方案;(2)建立名為“MySchool”的WEB項目;(3)建立名為“DAL”的類庫項目;(4)建立名為“BLL”的類庫項目;(5)在“BLL”項目中添加“DAL”引用;(6)在“MySchool”中添加“BLL”引用。

(二)在“DAL”中加入微軟的ADO封裝類“SqlHelper”;SqlHelper是一個基于.NET Framework的數(shù)據(jù)庫操作組件。組件中包含數(shù)據(jù)庫操作方法。

(三)添加實體類User。實體類是對業(yè)務(wù)實體的抽象、封裝,它與數(shù)據(jù)庫中的實體表相對應(yīng)。實體類User中不但包含了構(gòu)造函數(shù)、私有成員和屬性,也包含了與該實體相關(guān)的行為。在沒有實體類的情況下,數(shù)據(jù)的傳輸只能依靠DataSet。然而在DataSet中數(shù)據(jù)是以關(guān)系數(shù)據(jù)的形式存在,不具備OO的特點。對DataSet操作的代碼往往散落在BLL或UI之中,容易造成代碼的混亂。添加實體類之后各層之間都依靠實體來進(jìn)行消息傳遞,從而彌補了上述的不足。

下面將實體類(User)加入到解決方案“MySchoolPro”中:(1)在“MySchoolPro”中建立名為“Model”的類庫項目;(2)在“Model”中添加“DAL”引用;(3)在“MySchool”中添加“Model”引用;(4)在“Model”中加入User實體類(代碼同上)。

實體貫穿整個系統(tǒng),成為系統(tǒng)的業(yè)務(wù)基礎(chǔ)。這里需要加以區(qū)別的是業(yè)務(wù)實體層(Model)和業(yè)務(wù)邏輯層(BLL)之間的關(guān)系。業(yè)務(wù)實體層(Model)體現(xiàn)了業(yè)務(wù)域在系統(tǒng)的抽象;業(yè)務(wù)邏輯層(BLL)則實現(xiàn)為復(fù)雜邏輯提供服務(wù)。換句話說,業(yè)務(wù)邏輯層(BLL)實現(xiàn)了業(yè)務(wù)實體的組合調(diào)用。

(四)建立登陸頁面

由于“用戶登陸”功能僅涉及到用戶實體,所以不會在業(yè)務(wù)邏輯層(BLL)中編碼。下面在“MySchool”中建立Login.aspx,用戶登錄成功后跳轉(zhuǎn)到Default.aspx;否則提示用戶名密碼錯誤。

四、結(jié)語

三層架構(gòu)中包括:表示層(UI)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問層(DAL),每層功能明確、相對獨立,層與層之間相互隔離,體現(xiàn)了“低耦合、高內(nèi)聚”的設(shè)計思想。

參考文獻(xiàn)

[1]梁立新著.項目實踐精解·ASP.NET應(yīng)用開發(fā):基于ASP.NET、C#和ADO.NET的三層架構(gòu)案例分析.電子工業(yè)出版社,2010年

[2] Matthew MacDonald著. ASP.NET高級程序設(shè)計.人民郵電出版社,2011年

[3] Christian Thilmany. NET模式:架構(gòu)設(shè)計與過程.中國電力出版社

[4] Jeffrey Richter. Microsoft. NET框架程序設(shè)計.清華大學(xué)出版社

[5] Martin L. Shoemaker UML實戰(zhàn)教程.清華大學(xué)出版社

猜你喜歡
表示層類庫用戶界面
自然用戶界面在智能家居系統(tǒng)中的應(yīng)用路徑創(chuàng)新研究:生成式人工智能技術(shù)的調(diào)節(jié)作用
包裝工程(2023年16期)2023-08-25 11:40:58
基于CiteSpace的國外用戶界面體驗圖譜量化分析
用Java編寫客戶機/服務(wù)器端應(yīng)用程序
基于Spring的企業(yè)級Web項目架構(gòu)設(shè)計研究
軟件(2019年6期)2019-10-08 06:27:21
Python在數(shù)據(jù)可視化中的應(yīng)用
數(shù)據(jù)結(jié)構(gòu)課程教學(xué)改革方案和應(yīng)用效果
軟件工程(2017年12期)2018-01-29 17:35:55
數(shù)據(jù)結(jié)構(gòu)可視化類庫的設(shè)計與實現(xiàn)
UI用戶界面色彩設(shè)計研究
流行色(2017年12期)2017-10-26 03:08:44
ASP.NET三層構(gòu)架解析
基于SSH框架科研管理系統(tǒng)的設(shè)計
枞阳县| 沙雅县| 无极县| 延庆县| 和硕县| 监利县| 巨鹿县| 临桂县| 台南县| 南靖县| 民丰县| 安达市| 蚌埠市| 西畴县| 鲜城| 大埔区| 商都县| 乌拉特前旗| 措美县| 从江县| 扶绥县| 永新县| 图们市| 全椒县| 隆德县| 鹤峰县| 博野县| 始兴县| 岢岚县| 新津县| 丹阳市| 望城县| 抚宁县| 荥阳市| 潼关县| 红桥区| 抚州市| 浦县| 长顺县| 古丈县| 嘉禾县|