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物件。
///
/// 執行查詢,返回資料集
///
/// 連線字串名
/// 命令型別(儲存過程或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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 三層架構理解架構
- MVC 與三層架構MVC架構
- 重新理解架構架構
- 理解cassandra架構架構
- NAS層架構03架構
- 【架構與設計】常見微服務分層架構的區別和落地實踐架構微服務
- 新零售SaaS架構:組織管理的底層邏輯與架構設計架構
- NUMA架構的個人理解架構
- 理解Underscore的設計架構架構
- 層次式架構案例架構
- 分層架構和SOA架構
- 區塊鏈的底層架構區塊鏈架構
- 架構分層的小糾結-層級該如何劃分與定位?架構
- Spring Cloud雲服務架構 - 雲架構程式碼結構構建SpringCloud架構
- Django與微服務架構:構建可擴充套件的Web應用Django微服務架構套件Web
- AWS副總裁Peter:解密基礎架構底層運維和構建之道解密架構運維
- LangGraph入門:構建ReACT架構的智慧AgentReact架構
- 如何構建零信任的雲資料架構架構
- 深入學習和理解Django模板層:構建動態頁面Django
- 深入理解lambada架構架構
- springcloud技術架構理解SpringGCCloud架構
- 如何理解VMware內建於IT基礎架構的原生安全能力?架構
- 計算機的層次化架構計算機架構
- 統一接入層架構的演進架構
- X86架構與ARM架構的區別:架構
- 超融合架構與傳統IT架構的區別架構
- Tomcat 架構原理解析到架構設計借鑑Tomcat架構
- 以己度人,構建理解鏈
- (五) 整合spring cloud雲服務架構 - 雲架構程式碼結構構建SpringCloud架構
- 輕鬆構建基於 Serverless 架構的小程式Server架構
- 構建自己的簡單微服務架構(開源)微服務架構
- 道與架構架構
- 架構與思維:微服務架構的思想本質架構微服務
- 我的架構夢:(五十九) Apache Hadoop 架構與原理架構ApacheHadoop
- 使用LangGraph構建多Agent系統架構!架構
- 用 Hystrix 構建高可用服務架構架構
- 說說你對前端架構的理解前端架構
- 換個角度,重新理解架構架構
- Kafka 概述:深入理解架構Kafka架構