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

三層架構分別是數據訪問層 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對象。

/// <summary>

/// 執行查詢,返回數據集

/// </summary>

/// <param name="connectionName">連接字符串名</param>

/// <param name="commandType">命令類型(存儲過程或T-SQL查詢語句)</param>

/// <param name="command">存儲過程名或T-Sql查詢語句</param>

/// <returns>數據集</returns>

public static DataSet ExecuteDataSet(QueryType commandType, string command)

{

SqlConnection mysqlconnection = new SqlConnection(myconnectionstring);

……

Mysqlconnection.close();

Return mydataset;

}

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

在BLL項目中添加一個新類TheUser.

其中部分代碼爲:

Public class TheUser

{

///<summary>

///根據用戶Id返回用戶詳細信息

///</summary>

/// <param name="userid">用戶ID</param>

/// <returns>數據集</returns>

 

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裏是三個’)。然後你會發現程序自動出現了層次清晰的註釋代碼。你只需要在該加註釋的地方補充你的註釋即可。這樣的註釋看起來很漂亮,而且你以後調用的時候能看到它的動態提示。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章