.net三層架構詳解


1、三層架構的優勢:

  • 適應變化、利於維護:項目需求往往隨市場的變化而發生變化,三層架構通過將各功能模塊分離,提高了項目的可維護性和代碼的可重用性。
  • 適於協作開發。
  • 主流趨勢,越來越多的的企業在開發項目使用三層架構做為項目的基礎架構。三層架構在將來會有更大的市場。

2、三層架構包括哪些層?

數據訪問層(Database access layer)、業務邏輯層(business logical layer)、表示層(User Interface)

數據訪問層:封裝了所有與數據庫的交互操作。即對數據庫的增、刪、改、查操作,不做業務邏輯的判斷。

過去使用ADO.NET連接數據庫需要編寫固定格式的代碼,比如打開數據庫連接,關閉數據庫連接等。在面向對象的課程中,我們在每一個數據庫訪問層代碼中編寫重復的ADO.NET代碼。那么大家有沒有想到重用這些代碼呢?這里我們使用了一個封裝了ADO.NET方法的類---SqlHelper類,用來提高數據訪問代碼的可重用性。

針對模型層中的每一個類,數據訪問層都有一個對應的數據訪問類。比如針對User實體類,有一個對應UserService類,專門處理有關User表的數據。

3、三層深入理解

1. 復雜項目不能把SQL語句直接寫到界面里,不模塊化、難以維護,應該采用三層架構。先慢慢吸收,然后理解。Web開發中的三層機構也是同樣的結構。還有更復雜的三層架構和多層架構。

2. 三層的組成

  • 界面層UI
  • 數據庫訪問層DAL
  • 業務邏輯層BLL

對數據進行操作的代碼寫在DAL中,一般都是SQL語句,DAL只有對數據的操作,不能有邏輯判斷。

3. 三層架構圖

4. 三層實戰

1. 命名規則:DAL層,一般使用表名+Service,例如:EmpService。

BLL層,一般表名+BLL,例如:Emp表在BLL層命名為EmpBLL

但是這里注意一點:BLL不是簡單對DAL層的轉發,還包含業務邏輯。例如:“未經審核的數據不恩能夠刪除”這樣的業務邏輯就放在BLL中。

2. 三層的有點

UI層和BLL打交道,不用處理SQL語句;開發更方便,更不容易出錯。一般,UI層中沒有復雜的代碼,解耦合,容易改變UI層技術,如果從Winform改到asp.net只需要修改UI就可以了,如果由MsSql改成Oracle,只需要修改DAL即可。

Model是在三層中傳遞數據的,而且Model不屬於三層中的任意一層。

那么各層之間使用Model(實體類的作用是什么呢?)

表示層中使用實體類

  1. 將解析實體對象封裝的數據展示給用戶。
  2. 將用戶請求的數據封裝到實體對象中。

業務邏輯層使用實體類

  1. 將接受到的實體對象傳遞到下一層。
  2. 根據用戶請求對實體對象中的數據進行處理。

在數據訪問層中使用實體類

  1. 將數據庫中的數據封裝到實體對象中或將多個實體對象封裝成集合。
  2. 將實體對象中的數據保存到數據庫中。

5. 三層的效率

三層一般會比不分層慢,但是為了分工明確,這樣的少量的性能下降時可以接受的,很多時候效率不是唯一追求因素。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM