ASP.NET的三層結構指什嗎?
為何使用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。