asp.net三層架構(gòu)是怎樣的?三層架構(gòu)網(wǎng)站創(chuàng)建流程是怎樣的?
asp.net三層架構(gòu)是什么意思?
asp.net三層架構(gòu):指的是PL(present layer)層,BLL(business logical layer)層,DAL(data access layer)層,是一種總體設(shè)計(jì)的思想。
PL層(web層):是表現(xiàn)層,主要是用來(lái)展示數(shù)據(jù);
BLL層:是處理層,主要是用來(lái)處理數(shù)據(jù);
DAL層:主要是從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)的。
PL面向用戶,DAL面向數(shù)據(jù)庫(kù)。
具體闡述:PL是web應(yīng)用程序,調(diào)用BLL的方法將數(shù)據(jù)傳給BLL或者從BLL中獲取處理好的數(shù)據(jù);BLL層是一個(gè)類庫(kù),調(diào)用DAL的方法獲取數(shù)據(jù)或者將數(shù)據(jù)處理結(jié)果給DAL。
1.新建項(xiàng)目—>Visual C#—>Web—>ASP.NET空Web應(yīng)用程序 或者 新建網(wǎng)站—>ASP.NET空網(wǎng)站。
2.在解決方案處右擊—>新建項(xiàng)目—>Windows—>類庫(kù),分別創(chuàng)建三層架構(gòu),Model(實(shí)體層)、Dll(邏輯層)、DAL(數(shù)據(jù)層)。
3.創(chuàng)建好三層類庫(kù)后,在Model類庫(kù)項(xiàng)目上右擊,選擇添加—>類,并命名。
4.在創(chuàng)建好類之后(每一個(gè)類對(duì)應(yīng)數(shù)據(jù)庫(kù)中的一個(gè)表),輸入private string Sname(string是數(shù)據(jù)庫(kù)中字段類型,Sname是數(shù)據(jù)庫(kù)中字段名,與自己的數(shù)據(jù)庫(kù)表相對(duì)應(yīng)),如何對(duì)private string Sname選中—>右擊—>選擇重構(gòu)—>封裝字段,然后點(diǎn)擊確定即可,實(shí)現(xiàn)了對(duì)數(shù)據(jù)庫(kù)中表的一個(gè)字段進(jìn)行封裝,其余字段封裝步驟跟上述一樣,在創(chuàng)建完之后點(diǎn)擊工具欄處的“生成”—>生成Model即可。操作步驟如下圖,我的封裝后的代碼如下(根據(jù)自己的數(shù)據(jù)庫(kù)表進(jìn)行封裝)。
5.對(duì)DAL層進(jìn)行代碼的編寫(xiě),主要分為:
(1)數(shù)據(jù)庫(kù)連接函數(shù)。
(2)執(zhí)行sql語(yǔ)句函數(shù)。
(3)sql語(yǔ)句書(shū)寫(xiě)和相應(yīng)參數(shù)存儲(chǔ)函數(shù)。
注意:要在文件頭部引用using System.Data; using System.Data.SqlClient; using Model; 前兩個(gè)是asp.net集成的數(shù)據(jù)庫(kù)操作庫(kù),調(diào)用其中相關(guān)函數(shù)、變量即可,最后一個(gè)是我們自己創(chuàng)建的Model類(在使用using Model命令之前需要將Model這個(gè)類在DAL這個(gè)項(xiàng)目中引用,在DAL項(xiàng)目中的“引用”處右擊,選擇添加引用,選擇項(xiàng)目找到Model這個(gè)項(xiàng)目類確定即可)。
asp.net三層架構(gòu)優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
1、開(kāi)發(fā)人員可以只關(guān)注整個(gè)結(jié)構(gòu)中的其中某一層;
2、可以很容易的用新的實(shí)現(xiàn)來(lái)替換原有層次的實(shí)現(xiàn);
3、可以降低層與層之間的依賴(高內(nèi)聚,低耦合);
4、有利于標(biāo)準(zhǔn)化;
5、利于各層邏輯的復(fù)用。
1、降低了系統(tǒng)的性能。這是不言而喻的。如果不采用分層式結(jié)構(gòu),很多業(yè)務(wù)可以直接造訪數(shù)據(jù)庫(kù),以此獲取相應(yīng)的數(shù)據(jù),如今卻必須通過(guò)中間層來(lái)完成。
2、有時(shí)會(huì)導(dǎo)致級(jí)聯(lián)的修改。這種修改尤其體現(xiàn)在自上而下的方向。如果在表示層中需要增加一個(gè)功能,為保證其設(shè)計(jì)符合分層式結(jié)構(gòu),可能需要在相應(yīng)的業(yè)務(wù)邏輯層和數(shù)據(jù)訪問(wèn)層中都增加相應(yīng)的代碼。
聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請(qǐng)發(fā)
送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)
需注明出處:新網(wǎng)idc知識(shí)百科