分類  >  Web前端 >

廣州市.NET培訓之.NET開發中什麼是三層架構

tags:    時間:2013-12-09 23:14:40
廣州.NET培訓之.NET開發中什麼是三層架構

 廣州.NET培訓之.NET開發中什麼是三層架構

  昨天和一位.NET訓練營同學解釋三層時,發現同學對於三層的概念還是比較模糊,也可能是我解釋不好,我就以文字的方式將自己的思路整理一下。

  三層在.NET開發體系中算是一個比較重要的概念,如果將這個理解透徹了,那麼將來不管是三層也好,還是N多層,都不是問題。
 
  所謂三層架構,是在界面與資料庫之間加入了一個「中間層」,也叫邏輯層。這裡所說的三層體系,不是指物理上的三層,不是簡單地放置三台機器就是三層體系結構,也不僅僅有B/S應用才是三層體系結構,三層是指邏輯上的三層,即使這三個層放置到一台機器上。
 
  在項目開發的過程中,有時把整個項目分為三層架構,其中包括:表現層(UI)、業務邏輯層(BLL)和數據訪問層(DAL)。三層的作用分別如下: 
 
  表現層:為用戶提供交互操作界面,這一點不論是對於Web還是WinForm都是如此,就是用戶界面操作。我們網站展示給用戶看的界面。
 
  業務邏輯層:負責關鍵業務的處理和數據的傳遞。複雜的邏輯判斷和涉及到資料庫的數據驗證都需要在此做出處理。根據傳入的值返回用戶想得到的值,或者處理相關的邏輯。
 
  數據訪問層:見名知意,負責資料庫數據的訪問。主要為業務邏輯層提供數據,根據傳入的值來操作資料庫,增、刪、改或者其它。
 
  以下我簡單介紹下一個用戶管理模塊:
 
  為了整個項目的開發方便,我們在項目中會建幾個項目,BLL,DAL,MODEL和一個Web網站。為了命名清晰,我們可以這樣命名這個三個工程(即在解決方案里添加的類庫):
 
  業務邏輯層(BusinessLogicLayer):BLL,命名空間默認設置為BLL
 
  數據訪問層(DataAccessLayer):DAL,命名空間默認設置為DAL
 
  另外我們為了數據傳遞的方便,通常再添加一個項目,這個項目是貫穿於整個三層架構中的。即實體層。通常命名為MODEL,命名空間默認值設置為:MODEL。其中封裝的每個類都對應一個實體,通常就是資料庫中的一個表。如資料庫中的用戶表(users)封裝為(users),將表中的每個欄位都封裝成共有的屬性。
 
  而他們之間的引用關係就是 表現層引用業務邏輯層(BLL)和實體層(MODEL),業務邏輯層引用數據訪問層(DAL)和實體層(MODEL),數據訪問層(DAL)引用實體層(MODEL)即可。
 
  這樣三層架構的搭建就基本完成了。這三層有著非常強的依賴關係:
 
  表示層 ← 業務邏輯層 ← 數據訪問層
 
  他們之間的數據傳遞是雙向的,並且通常藉助實體層傳遞數據。
 
  那麼三層架構都有哪些優點呢:
 
  1、易於項目的修改和維護。在項目的開發過程中或者開發后的升級過程中,甚至在項目的移植過程中。這種三層架構是非常方便的。比如項目從Web移植到Form,我們只需要將表示層重新做一遍就可以了。其餘兩層不用改動,只需添加到現有項目就可以了。如果不採用這種架構,只是將代碼寫到表示層。那麼所有的編碼幾乎都要重新來了。
 
  2、易於擴展。在功能的擴展上同樣如此,如有功能的添加只需把原有的類庫添加方法就可了
 
  3、易於代碼的重用。這一點就不用解釋了。
 
  4、易於分工協作開
 
  其實,當我們做一個項目時,我們應該先考慮一下這個項目是不是應該應用三層/多層設計時, 先得考慮下是不是真的需要? 實際上大部分程序就開個WebApplication就足夠了, 完全沒必要作的這麼複雜. 而多層結構, 是用於解決真正複雜的項目需求的。更多關於廣州.NET培訓知識請關注廣州傳智播客官方微信號(gzitcast)
   

推薦閱讀文章

Bookmark the permalink ,來源:互聯網