Asp.net 2.0三層架構的構建與理解

iDotNetSpace發表於2010-03-02

三層架構分別是資料訪問層 database access layer,業務邏輯層business logic layer,使用者表現層(使用者介面層) user interface layer.簡稱分別為DAL,BLL,UIL.

資料訪問層主要是提供一些通用的對資料庫進行操作的函式。業務邏輯層則呼叫這些函式完成某些功能,而使用者表現層則又呼叫業務邏輯層的函式來使用這些功能。

說起來比較簡單,但是到底是怎麼個實現法?不要著急,給你舉個小例子就明白了。

1,開啟VS2005,建立一空白解決方案。注意是建立空白解決方案,而不是一個專案或者網站。建立方式是點選選單欄的新建專案。專案型別選其他專案型別->Visual Studio解決方案。右邊的模板選擇空白解決方案,填寫名稱,選擇位置,點選確定即可。

2,開啟解決方案資源管理器,右鍵點選此解決方案名稱新建->新建專案,專案型別為類庫,使用語言選C#,命名為DAL.用同樣的方法再新建一個專案命名為BLL,然後再新建一個ASP.NET網站,使用語言為c#,命名為 UIL.

3,新增專案BLL對專案DAL的引用。以及網站UIL對專案BLL的引用。方法是在資源管理器中右擊專案名稱,新增引用。在彈出的對話方塊中選中專案標籤,選擇適當的專案點選確定。

4,在專案DAL中新增一個新的類檔案,名稱為dataaccess.cs.然後在此類檔案中寫入那些訪問資料庫或者xml檔案的通用的方法,以供BLL層的呼叫。我通常使用的是一個微軟企業庫的元件,呼叫了裡面運算元據庫的方法。

先舉個簡單的例子,假設下面這個函式是根據傳來的查詢語句,返回一個dataset物件。

///

/// 執行查詢,返回資料集

///

/// 連線字串名

/// 命令型別(儲存過程或T-SQL查詢語句)

/// 儲存過程名或T-Sql查詢語句

/// 資料集

public static DataSet ExecuteDataSet(QueryType commandType, string command)

{

SqlConnection mysqlconnection = new SqlConnection(myconnectionstring);

……

Mysqlconnection.close();

Return mydataset;

}

5,假設我們在使用者表現層要實現一個功能,就是根據一個使用者ID獲取使用者的詳細資訊。那麼就要在業務邏輯層設計這個函式。

在BLL專案中新增一個新類TheUser.

其中部分程式碼為:

Public class TheUser

{

///

///根據使用者Id返回使用者詳細資訊

///

/// 使用者ID

/// 資料集

 

Public static DataSet GetUserInfoById(string userid)     //函式定義為靜態函式可以不用宣告新類而直接呼叫

{

     String strSql =   “select * from UserInfo where UserId = ” + userid;

     Return DAL.DataAccess.ExecuteDataSet(commandType.Text,strSql); //呼叫資料訪問層函式,DAL為其名稱空間

}

 

}

 

6,在使用者介面層來呼叫這個函式.

在UIL網站中建立一個頁面,在其.cs檔案中要呼叫的函式中加入如下程式碼:

String UserId = “001”;

DataSet dsUserInfo = BLL.TheUser.GetUeserInfoById(UserId); //呼叫業務邏輯層函式。BLL為名稱空間

DataTabel dtUserInfo = dsUserInfo.Tables[0];

這就是三層結構大體的樣子。它的好處是結構清楚,功能模組清晰,出現異常能迅速定位排除。這種模式開發出來的程式碼非常美觀,簡潔,別人閱讀起來特別方便。

另 外告訴大家一個vs2005使用中的小技巧,目前還不知道的可以嘗試下。當你寫完一個函式要加註釋的時候,在此函式名的上面一行打三個/(c#語言是三個 /,vb裡是三個’)。然後你會發現程式自動出現了層次清晰的註釋程式碼。你只需要在該加註釋的地方補充你的註釋即可。這樣的註釋看起來很漂亮,而且你以後 呼叫的時候能看到它的動態提示。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-628363/,如需轉載,請註明出處,否則將追究法律責任。

相關文章