ASP.NET的三層結構指什嗎?

來源:互聯網
上載者:User
為何使用N層架構?

因為每一層都可以在僅僅更改很少量的代碼後,就能放到物理上不同的伺服器上使用,因此結構靈活而且效能更佳。此外,每層做些什麼其它層是完全看不到的,因此更改、更新某層,都不再需要重新編譯或者更改全部的層了。這是個很強大的功能。例如,如果把資料存取碼與商務邏輯層分離,當資料庫伺服器更改後,你只需要更改資料訪問的代碼,因為商務邏輯層是不變的,因此不需要更改或者重新編譯商務邏輯層。

一個N層的應用程式通常有三層:表現層、業務層和資料層。下面讓我們看看每層都做些什麼。

表現層(Presentation Layer)

表現層用於使用者介面的展示,以及用業務層的類和對象來“驅動”這些介面。

在ASP.NET中,該層包括aspx頁面、使用者控制、伺服器控制以及某些與安全相關的類和對象。

業務層(Business Tier)

業務層用於訪問資料層,從資料層取資料、修改資料以及刪除資料,並將結果返回給表現層。

在ASP.NET中,該層包括使用SqlClient或OleDb從SQL Server或Access資料庫取資料、更新資料及刪除資料,並把取得的資料放到DataReader或DataSet中返回給表現層。返回的資料也許只有一個整型數字,比如一個表的行記錄數目,但這也要用資料層的資料進行計算。

BLL和DAL

通常該層被劃分成兩個子層:商務邏輯層(Business Logic Layer,BLL)和資料訪問層(Data Access Layers,DAL)。商務邏輯層在資料訪問層之上,也就是說BLL調用DAL的類和對象。DAL訪問資料並將其轉給BLL。

在ASP.NET中,該層可以用SqlClient或OleDb從SQL Server或Access資料庫取資料,把資料通過DataSet 或DataReader的形式給BLL,BLL處理資料給表現層。有的時候,例如直接把DataSet 或DataReader送給表現層的時候,BLL是一個透明層。

資料層(Data Tier)

資料層是資料庫或者資料來源。在.NET中,通常它是一個SQL Server或Access資料庫,但不僅限於此兩種形式,它還可能是Oracle,mySQL,甚至是XML。

邏輯層VS(分布式)物理層

人們容易將這兩個概念搞混。我們說邏輯層是把層按類的集合來劃分,而這些層都在同一台個伺服器上。(分布式)物理層是指類的集合在不同的伺服器上,用附加的代碼來處理層間的通訊,比如remoting和web服務。

決定如何劃分你的層(是物理的還是不是物理的)是非常重要的。在劃分時應考慮下面因素:

1、注意如果劃分成物理層,你的應用程式的速度會因為不同伺服器在網路中通訊的延遲而減慢。所以,如果你決定用物理層,請確保獲得效能的提升大於效能的降低。

2、按照n層架構設計你的應用程式。

3、部署以及維護物理分布式的應用程式的成本是很高的。你首先需要不止一台伺服器,你還需要網路硬體來串連這些伺服器。在這種情況下,部署應用變得更加複雜!因此這樣做之前請確定這樣做是否值得。

另外還要注意,你的應用程式的每層都做何使用。你也許因為啟動並執行多個服務都需要某一層而把該層放到別台伺服器上。例如,你也許會因為給不同的使用者定製不同的表現層,而將商務邏輯層放於別處;你也許會因為還有其它的應用訪問同一個資料庫,而把SQL server服務放到別處。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.