asp.net中的三層架構是什么意思
通常意義上的三層架構就是將整個業務應用劃分為:界面層(Ur Interface layer)、業務邏輯層(Business Logic Layer)、數據訪問層(Data access layer)。
界面層,很好理解,就是界面,aps.net里面就是webform。
業務邏輯層,就是業務邏輯的實現,比如你要做登錄,就在業務邏輯層判斷賬號密碼的正確性。
數據訪問層,說白了就是訪問數據庫的代碼。
asp.net三層架構與asp.net MVC各自的區別,各自應該應用在什么場合,在什么情況下用三層,什么情況下用MVC
你想知道它們用在什么場合,首先要了解它們的優點和缺點,asp.net三層架構:
統的ASP.NET開發中,微軟的開發團隊為開發者設計了一個在可視化設計器中拖放控件,編寫代碼響應事件的快速開發環境。然而,它所帶來的負面效應是:
由于控件封裝了很多東西,開發者很難了解這背后的HTML是如何運作的
容易得到一個包含大量ViewState的頁面,使得頁面尺寸遠遠超過所需的內容,使得頁面的打開速度較慢
不容易被測試。asp.net
MVC:
沒有數據回傳
沒有在頁面中保存視圖狀態
開發者可以完全掌控頁面的呈現過程
易于單元測試
易于測試驅動開發,可擴展、可替換!
ASP.NET
MVC是一個基于MVC模式的開發框架,而
三層架構是一種架構。它們可以在概念上區別開來,也就是說它們各有各的好,不能把asp.NET
MVC代替asp.net三層架構,反過來也不行!如果要做大型應用開發的話,我建議使用asp.net
mvc!
asp.net 三層架構實體層的作用是什么?
一個三層的應用程序通常有:表現層、業務層和數據層。下面讓我們看看每層都做些什么。
表現層(Prentation Layer)
表現層用于用戶接口的展示,以及用業務層的類和對象來“驅動”這些接口。
在ASP.NET中,該層包括aspx頁面、用戶控制、服務器控制以及某些與安全相關的類和對象。
業務層(Business Tier)
業務層用于訪問數據層,從數據層取數據、修改數據以及刪除數據,并將結果返回給表現層。
在ASP.NET中,該層包括使用SqlClient或OleDb從SQL Server或Access數據庫取數據、更新數據及刪除數據,并把取得的數據放到DataReader或DataSet中返回給表現層。返回的數據也許只有一個整型數字,比如一個表的行記錄數目,但這也要用數據層的數據進行計算。
數據層(Data Tier)
數據層是數據庫或者數據源。在.NET中,通常它是一個SQL Server或Access數據庫,但不僅限于此兩種形式,它還可能是Oracle,mySQL,甚至是XML。
在ASP.NET中三層架構,如何實現數據訪問層和業務邏輯層的分開,以前都是把它們放在一個cs文件中的
三層本來就是業務層和數據層分開的呀 先創建頁面層TestProject 復選create directroy for solution ,然后再點擊解決方案添加新項目classlibary分別添加業務層和數據層,添加業務對數據層的引用,這樣數據層和業務層就可以分開了。(vs2010)
ASP.NET三層架構DAL層連接數據庫的方法
假設數據庫連接字符串在web.config里配置如下
<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=.;Initial Catalog=Databa;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
對你的DAL項目右鍵添加System.Configuration引用(必須步驟),
添加Model項目引用
然后在DB類(假設為UrDAL.cs)
using System.Configuration;//這個必須.
using Model那個項目
public class UrDAL
{
public const string ConnectionString = ConfigurationManager.ConnectionStrings [ "ConnectionString" ].ConnectionString;
public int Inrt(UrInfo ur)// Model
{
SqlConnection sqlcon=new SqlConnection ( ConnectionString );
.................
}
}
BLL
添加DB和Model項目引用
using 那個DB
public class UrBLL
{
public int Inrt(UrInfo ur)
{
int i = UrDAL.Inrt(ur);
}
}
什么是ASP.NET三層架構
為何使用三層架構?
因為每一層都可以在僅僅更改很少量的代碼后,就能放到物理上不同的服務器上使用,因此結構靈活而且性能更佳。此外,每層做些什么其它層是完全看不到的,因此更改、更新某層,都不再需要重新編譯或者更改全部的層了。這是個很強大的功能。例如,如果把數據訪問代碼與業務邏輯層分離,當數據庫服務器更改后,你只需要更改數據訪問的代碼,因為業務邏輯層是不變的,因此不需要更改或者重新編譯業務邏輯層。
一個三層的應用程序通常有:表現層、業務層和數據層。下面讓我們看看每層都做些什么。
表現層(Prentation Layer)
表現層用于用戶接口的展示,以及用業務層的類和對象來“驅動”這些接口。
在ASP.NET中,該層包括aspx頁面、用戶控制、服務器控制以及某些與安全相關的類和對象。
業務層(Business Tier)
業務層用于訪問數據層,從數據層取數據、修改數據以及刪除數據,并將結果返回給表現層。
在ASP.NET中,該層包括使用SqlClient或OleDb從SQL Server或Access數據庫取數據、更新數據及刪除數據,并把取得的數據放到DataReader或DataSet中返回給表現層。返回的數據也許只有一個整型數字,比如一個表的行記錄數目,但這也要用數據層的數據進行計算。
數據層(Data Tier)
數據層是數據庫或者數據源。在.NET中,通常它是一個SQL Server或Access數據庫,但不僅限于此兩種形式,它還可能是Oracle,mySQL,甚至是XML。