1. 程式人生 > >如何理解.Net的三層架構

如何理解.Net的三層架構

各層的作用
1:資料資料訪問層:主要是對原始資料(資料庫或者文字檔案等存放資料的形式)的操作層,而不是指原始資料,也就是說,是對資料的操作,而不是資料庫,具體為業務邏輯層或表示層提供資料服務.

2:業務邏輯層:主要是針對具體的問題的操作,也可以理解成對資料層的操作,對資料業務邏輯處理,如果說資料層是積木,那邏輯層就是對這些積木的搭建。

3:表示層:主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表現成:aspx, 如果邏輯層相當強大和完善,無論表現層如何定義和更改,邏輯層都能完善地提供服務。
具體的區分方法

1:資料資料訪問層:主要看你的資料層裡面有沒有包含邏輯處理,實際上他的各個函式主要完成各個對資料檔案的操作。而不必管其他操作。

2:業務邏輯層:主要負責對資料層的操作。也就是說把一些資料層的操作進行組合。

3:表示層:主要對使用者的請求接受,以及資料的返回,為客戶端提供應用程式的訪問。
三層結構解釋

所謂三層體系結構,是在客戶端與資料庫之間加入了一箇中間層,也叫元件層。這裡所說的三層體系,不是指物理上的三層,不是簡單地放置三臺機器就是三層體系結構,也不僅僅有B/S應用才是三層體系結構,三層是指邏輯上的三層,即使這三個層放置到一臺機器上。 三層體系的應用程式將業務規則、資料訪問、合法性校驗等工作放到了中間層進行處理。通常情況下,客戶端不直接與資料庫進行互動,而是通過COM/DCOM通訊與中間層建立連線,再經由中間層與資料庫進行交換.

開發人員可以將應用的商業邏輯放在中間層應用伺服器上,把應用的業務邏輯與使用者介面分開。在保證客戶端功能的前提下,為使用者提供一個簡潔的介面。這意味著如果需要修改應用程式程式碼,只需要對中間層應用伺服器進行修改,而不用修改成千上萬的客戶端應用程式。從而使開發人員可以專注於應用系統核心業務邏輯的分析、設計和開發,簡化了應用系統的開發、更新和升級工作。

那麼為什麼要應用“中間業務層”呢?舉些例子:

我們假設有一段登入程式碼,則可以這樣處理Web程式,外觀層負責接收前臺頁面的資料,然後傳給中間層,中間層對資料進行處理,比如格式化,防SQL注入等等一些,這樣的資料再傳給資料訪問層然後與資料庫進行操作,比如與資料庫的使用者名稱和密碼匹配等等一些程式碼。

“中間業務層”的用途有很多,例如:驗證使用者輸入資料、快取從資料庫中讀取的資料等等……但是,“中間業務層”的實際目的是將“資料訪問層”的最基礎的儲存邏輯組合起來,形成一種業務規則。例如:“在一個購物網站中有這樣的一個規則:在該網站第一次購物的使用者,系統為其自動註冊”。這樣的業務邏輯放在中間層最合適:

在“資料訪問層”中,最好不要出現任何“業務邏輯”!也就是說,要保證“資料訪問層”的中的函式功能的原子性!即最小性和不可再分。“資料訪問層”只管負責儲存或讀取資料就可以了。

完善的三層結構的要求是:修改表現層而不用修改邏輯層,修改邏輯層而不用修改資料層。否則你的應用是不是多層結構,或者說是層結構的劃分和組織上是不是有問題就很難說.不同的應用有不同的理解,這只是一個概念的問題.
理解ASP.NET中的三層結構——為什麼要分三層?

我們用三層結構主要是使專案結構更清楚,分工更明確,有利於後期的維護和升級。它未必會提升效能,因為當子程式模組未執行結束時,主程式模組只能處於等待狀態。這說明將應用程式劃分層次,會帶來其執行速度上的一些損失。但從團隊開發效率角度上來講卻可以感受到大不相同的效果。


需要說明一下,三層結構不是.NET的專利,也不是專門用在資料庫上的技術。它是一種更加普適的架構設計理念。
個人感覺