摘 要:本文通過(guò)研究三層體系結(jié)構(gòu)模式的應(yīng)用系統(tǒng)設(shè)計(jì)思路,詳細(xì)地闡述基于asp.net技術(shù)開發(fā)B/S三層結(jié)構(gòu)應(yīng)用系統(tǒng)的主要設(shè)計(jì)思想和方法。
關(guān)鍵詞:三層架構(gòu);B/S系統(tǒng);asp.net
一、前言
在應(yīng)用系統(tǒng)開發(fā)過(guò)程中,C/S架構(gòu)的兩層體系結(jié)構(gòu)的開發(fā)模式得到了廣泛的應(yīng)用。其應(yīng)用程序邏輯通常只分布在客戶端和服務(wù)器端,它采用由客戶端發(fā)出數(shù)據(jù)資源訪問(wèn)請(qǐng)求,然后服務(wù)器端將結(jié)果返回到客戶端的信息傳遞機(jī)制進(jìn)行信息傳遞,但C/S架構(gòu)的系統(tǒng)的升級(jí)與維護(hù)很難進(jìn)行,這給C/S架構(gòu)的系統(tǒng)的推行帶來(lái)了很大的困難。隨著面向?qū)ο蠹夹g(shù)、分層建模技術(shù)和網(wǎng)絡(luò)瀏覽器導(dǎo)航技術(shù)的逐步成熟,B/S模式的多層應(yīng)用體系結(jié)構(gòu)得到了越來(lái)越多的應(yīng)用。而B/S架構(gòu)的系統(tǒng)只需用戶在自己的電腦系統(tǒng)中安裝瀏覽器軟件(該軟件通常在操作系統(tǒng)中可附帶自動(dòng)安裝)即可使用軟件的全部功能,這可以大大節(jié)省系統(tǒng)維護(hù)的開銷,也為后期系統(tǒng)的優(yōu)化升級(jí)帶來(lái)了很大的方便,管理人員只需在服務(wù)器端對(duì)產(chǎn)品進(jìn)行優(yōu)化升級(jí)即可,用戶在客戶端即可使用優(yōu)化升級(jí)后的系統(tǒng)。本文研究如何基于asp.net(C#)技術(shù)實(shí)現(xiàn)三層結(jié)構(gòu)應(yīng)用系統(tǒng)的設(shè)計(jì)。
二、三層結(jié)構(gòu)系統(tǒng)模型
選擇合適的系統(tǒng)體系架構(gòu)是一項(xiàng)影響整個(gè)應(yīng)用系統(tǒng)設(shè)計(jì)的關(guān)鍵工作。B/S模式的三層結(jié)構(gòu)是一種簡(jiǎn)單、成熟,并得到普遍應(yīng)用的應(yīng)用程序架構(gòu),它將應(yīng)用程序結(jié)構(gòu)劃為分3個(gè)相對(duì)獨(dú)立層,包括用戶表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問(wèn)層。每一層只實(shí)現(xiàn)該層內(nèi)相對(duì)獨(dú)立的功能,而當(dāng)任何一層發(fā)生變化時(shí),只要保持層間接口關(guān)系不變,則其他各層都不會(huì)受到影響。三層結(jié)構(gòu)是一種嚴(yán)格的分層協(xié)作, 即數(shù)據(jù)訪問(wèn)層只能被業(yè)務(wù)邏輯層訪問(wèn), 業(yè)務(wù)邏輯層只能被表示層訪問(wèn)。用戶通過(guò)表示層將請(qǐng)求傳送給業(yè)務(wù)邏輯層, 業(yè)務(wù)邏輯層完成相關(guān)業(yè)務(wù)規(guī)則和邏輯, 并通過(guò)數(shù)據(jù)訪問(wèn)層訪問(wèn)數(shù)據(jù)庫(kù)獲得數(shù)據(jù), 然后按照相反的順序依次返回, 將數(shù)據(jù)顯示在用戶界面層。
(1) 用戶表示層(usl)。用戶表示層也叫用戶界面層,封裝人機(jī)界面的所有表單和組件,是應(yīng)用系統(tǒng)與系統(tǒng)用戶之間的直接接口。主要用于顯示由業(yè)務(wù)邏輯層動(dòng)態(tài)傳送過(guò)來(lái)的數(shù)據(jù)信息,結(jié)合使用相應(yīng)的靜態(tài)頁(yè)面標(biāo)記和樣式表定義來(lái)實(shí)現(xiàn);用戶錄入數(shù)據(jù)信息并通過(guò)簡(jiǎn)單的校驗(yàn)后,經(jīng)由數(shù)據(jù)接口傳送給業(yè)務(wù)邏輯層。(2) 業(yè)務(wù)邏輯層(bll)。業(yè)務(wù)邏輯層主要完成對(duì)應(yīng)用系統(tǒng)相關(guān)業(yè)務(wù)規(guī)則和邏輯的封裝,在為用戶表示層訪問(wèn)提供功能調(diào)用的同時(shí),它又通過(guò)調(diào)用數(shù)據(jù)訪問(wèn)層所提供的功能來(lái)訪問(wèn)數(shù)據(jù)庫(kù)。業(yè)務(wù)邏輯層主要根據(jù)系統(tǒng)設(shè)計(jì)的需要,通過(guò)構(gòu)建系統(tǒng)的關(guān)鍵對(duì)象類,實(shí)現(xiàn)系統(tǒng)的大部分邏輯控制功能。(3)數(shù)據(jù)訪問(wèn)層(dal)。數(shù)據(jù)訪問(wèn)層只能被業(yè)務(wù)邏輯層訪問(wèn),并且系統(tǒng)只通過(guò)它訪問(wèn)數(shù)據(jù)庫(kù)來(lái)獲取數(shù)據(jù)。當(dāng)數(shù)據(jù)訪問(wèn)層根據(jù)業(yè)務(wù)邏輯層的要求與數(shù)據(jù)庫(kù)進(jìn)行交互時(shí),主要完成從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)庫(kù)記錄的查詢和插入、修改與刪除數(shù)據(jù)庫(kù)記錄的更新數(shù)據(jù)功能。B/S模式的三層結(jié)構(gòu)是一種嚴(yán)格的分層定義,它首先將應(yīng)用系統(tǒng)復(fù)雜的開發(fā)工作劃分為相對(duì)簡(jiǎn)單的小分塊,然后在每一層中只實(shí)現(xiàn)系統(tǒng)相應(yīng)層的功能設(shè)計(jì),層間的交互由相鄰層對(duì)應(yīng)的功能模塊進(jìn)行調(diào)用,信息傳遞只由接口進(jìn)行傳送。
三、三層結(jié)構(gòu)優(yōu)缺點(diǎn)
(1) 三層結(jié)構(gòu)的優(yōu)點(diǎn)。1) 提高程序的可維護(hù)性。2) 可以合理開發(fā)。3)提高系統(tǒng)的安全性。4)提高系統(tǒng)的擴(kuò)展。(2) 三層結(jié)構(gòu)的缺點(diǎn)。三層結(jié)構(gòu)開發(fā)模式的一個(gè)非常明顯的缺點(diǎn)就是其執(zhí)行速度不夠快。當(dāng)然這個(gè)“執(zhí)行速度”是相對(duì)于非分層的應(yīng)用程序來(lái)說(shuō)的。 “三層結(jié)構(gòu)”開發(fā)模式,不適用于對(duì)執(zhí)行速度要求過(guò)于苛刻的系統(tǒng),如在線訂票、在線炒股等。它比較適用于商業(yè)規(guī)則容易變化的系統(tǒng)。
四、asp.net的三層設(shè)計(jì)和實(shí)現(xiàn)
基于以上對(duì)B/S三層結(jié)構(gòu)的介紹,下面引用一個(gè)基于
asp.net技術(shù)的B/S三層結(jié)構(gòu)模式的進(jìn)銷存管理系統(tǒng)的開發(fā)設(shè)計(jì)方法。(1)model(業(yè)務(wù)實(shí)體層):都是一些屬性,業(yè)務(wù)實(shí)體的屬性與數(shù)據(jù)庫(kù)中的表為一一對(duì)應(yīng)的關(guān)系,每個(gè)數(shù)據(jù)庫(kù)訪問(wèn)邏輯組件對(duì)應(yīng)一個(gè)業(yè)務(wù)實(shí)體。(2)dbutility公共類:數(shù)據(jù)庫(kù)操作的一些類庫(kù),其中包括pubconstant.cs類(實(shí)現(xiàn)從web.config獲取數(shù)據(jù)庫(kù)連接字符串)、dbhelpersql.cs 數(shù)據(jù)庫(kù)助手類、對(duì)數(shù)據(jù)訪問(wèn)的類。(3)dal(數(shù)據(jù)訪問(wèn)層)的實(shí)現(xiàn):對(duì)應(yīng)著數(shù)據(jù)庫(kù)中的表,實(shí)現(xiàn)對(duì)表常用的操作,如增刪改等常用操作。(4)bll(業(yè)務(wù)邏輯層)的實(shí)現(xiàn):創(chuàng)建每個(gè)類,每個(gè)類對(duì)應(yīng)著數(shù)據(jù)庫(kù)的每張表,完成數(shù)據(jù)表的一些業(yè)務(wù)邏輯,完成對(duì)數(shù)據(jù)層的調(diào)用過(guò)程。(5)jxc(用戶表示層):界面的編寫。
總結(jié):以上介紹了應(yīng)用基于asp.net技術(shù)的三層結(jié)構(gòu)模式來(lái)設(shè)計(jì)和實(shí)現(xiàn)B/S結(jié)構(gòu)應(yīng)用系統(tǒng)的總體方法。通過(guò)介紹示例的具體分層規(guī)劃,體現(xiàn)了利用asp.net技術(shù)編寫三層結(jié)構(gòu)的清晰邏輯,并有效地實(shí)現(xiàn)了系統(tǒng)中各功能層的相對(duì)獨(dú)立,使系統(tǒng)具有更強(qiáng)大的靈活性、可擴(kuò)展性和可維護(hù)性;而且系統(tǒng)分層管理使分級(jí)分布部署成為現(xiàn)實(shí),可極大地提高系統(tǒng)的性能和安全性,滿足日益壯大的B/S模式應(yīng)用系統(tǒng)的需求。借鑒此方法還可以開發(fā)企業(yè)其他各類應(yīng)用系統(tǒng),提高企業(yè)的信息化水平。
參考文獻(xiàn):
[1] Matthew MacDonald(作者),Adam Freeman(作者),Mario Szpuszta?(作者) ASP.NET 4高級(jí)程序設(shè)計(jì)(第4版).人民郵電出版社 2011.6
[2] 明日科技.ASP.NET項(xiàng)目開發(fā)案例全程實(shí)錄(第2版).清華大學(xué)出版社,2011.1.