.NET三層架構(gòu)的概念,作用及區(qū)分方法
.NET三層架構(gòu)的概念
◆用戶界面表示層(USL)
◆業(yè)務邏輯層(BLL)
◆數(shù)據(jù)訪問層(DAL)
BLL將USL與DAL隔開了,并且加入了業(yè)務規(guī)則
各層的作用
1:數(shù)據(jù)數(shù)據(jù)訪問層:主要是對原始數(shù)據(jù)(數(shù)據(jù)庫或者文本文件等存放數(shù)據(jù)的形式)的操作層,而不是指原始數(shù)據(jù),也就是說,是對數(shù)據(jù)的操作,而不是數(shù)據(jù)庫,具體為業(yè)務邏輯層或表示層提供數(shù)據(jù)服務.
2:業(yè)務邏輯層:主要是針對具體的問題的操作,也可以理解成對數(shù)據(jù)層的操作,對數(shù)據(jù)業(yè)務邏輯處理,如果說數(shù)據(jù)層是積木,那邏輯層就是對這些積木的搭建。
3:表示層:主要表示W(wǎng)EB方式,也可以表示成WINFORM方式,WEB方式也可以表現(xiàn)成:aspx, 如果邏輯層相當強大和完善,無論表現(xiàn)層如何定義和更改,邏輯層都能完善地提供服務。
.NET三層架構(gòu)具體的區(qū)分方法
1:數(shù)據(jù)數(shù)據(jù)訪問層:主要看你的數(shù)據(jù)層里面有沒有包含邏輯處理,實際上他的各個函數(shù)主要完成各個對數(shù)據(jù)文件的操作。而不必管其他操作。
2:業(yè)務邏輯層:主要負責對數(shù)據(jù)層的操作。也就是說把一些數(shù)據(jù)層的操作進行組合。
3:表示層:主要對用戶的請求接受,以及數(shù)據(jù)的返回,為客戶端提供應用程序的訪問。
.NET三層架構(gòu)概念的解釋
所謂三層體系結(jié)構(gòu),是在客戶端與數(shù)據(jù)庫之間加入了一個中間層,也叫組件層。這里所說的三層體系,不是指物理上的三層,不是簡單地放置三臺機器就是三層體系結(jié)構(gòu),也不僅僅有B/S應用才是三層體系結(jié)構(gòu),三層是指邏輯上的三層,即使這三個層放置到一臺機器上。 三層體系的應用程序?qū)I(yè)務規(guī)則、數(shù)據(jù)訪問、合法性校驗等工作放到了中間層進行處理。通常情況下,客戶端不直接與數(shù)據(jù)庫進行交互,而是通過COM/DCOM通訊與中間層建立連接,再經(jīng)由中間層與數(shù)據(jù)庫進行交換.
開發(fā)人員可以將應用的商業(yè)邏輯放在中間層應用服務器上,把應用的業(yè)務邏輯與用戶界面分開。在保證客戶端功能的前提下,為用戶提供一個簡潔的界面。這意味著如果需要修改應用程序代碼,只需要對中間層應用服務器進行修改,而不用修改成千上萬的客戶端應用程序。從而使開發(fā)人員可以專注于應用系統(tǒng)核心業(yè)務邏輯的分析、設計和開發(fā),簡化了應用系統(tǒng)的開發(fā)、更新和升級工作。
那么為什么要應用“中間業(yè)務層”呢?舉些例子:
我們假設有一段登錄代碼,則可以這樣處理Web程序,外觀層負責接收前臺頁面的數(shù)據(jù),然后傳給中間層,中間層對數(shù)據(jù)進行處理,比如格式化,防SQL注入等等一些,這樣的數(shù)據(jù)再傳給數(shù)據(jù)訪問層然后與數(shù)據(jù)庫進行操作,比如與數(shù)據(jù)庫的用戶名和密碼匹配等等一些代碼。
“中間業(yè)務層”的用途有很多,例如:驗證用戶輸入數(shù)據(jù)、緩存從數(shù)據(jù)庫中讀取的數(shù)據(jù)等等……但是,“中間業(yè)務層”的實際目的是將“數(shù)據(jù)訪問層”的最基礎的存儲邏輯組合起來,形成一種業(yè)務規(guī)則。例如:“在一個購物網(wǎng)站中有這樣的一個規(guī)則:在該網(wǎng)站第一次購物的用戶,系統(tǒng)為其自動注冊”。這樣的業(yè)務邏輯放在中間層最合適:
在“數(shù)據(jù)訪問層”中,最好不要出現(xiàn)任何“業(yè)務邏輯”!也就是說,要保證“數(shù)據(jù)訪問層”的中的函數(shù)功能的原子性!即最小性和不可再分?!皵?shù)據(jù)訪問層”只管負責存儲或讀取數(shù)據(jù)就可以了。
以上就是.NET三層架構(gòu)的概念,作用及區(qū)分方法。
【編輯推薦】