隨著.NET 2.0的發布,將會使得使用ASP.NET 2.0來構建的Web應用越來越容 易。使用ASP.NET 2.0和SQL Server 2005,將會比ASP.NET 1.1更方便地構建多 層體系架構的web應用。本文,將使用ASP.NET 2.0和SQL Server 2005 (.net使 用Visual Studio 2005 beta 2,SQL Server 2005使用april ctp版本)來 構建一個簡單的多層應用的例子,並且說明其中在.NET 2.0和SQL Server 2005 中的一些新的特性,比如objectdatasource,master pages,clr 存儲過程, tableadapter向導等。
多層應用簡介
什麼是多層架構的應用呢?傳 統上的CLR模式便是兩層應用的典型例子,也就是客戶機/服務器模式。這種模式 只是兩層架構,客戶機發出請求給服務器,服務器將處理大量來自客戶端的請求 ,經過業務邏輯運算和處理後,再返回給客戶端。兩層架構的模式顯然不能滿足 現代以互聯網為趨勢的企業計算處理要求,因為其部署,負載均衡等處理十分麻 煩,所以就有了三層架構乃至於多層架構便出現了。多層架構的核心思想是,將 整個業務應用劃分為表示層-業務層―數據訪問層-數據庫,明確地將客戶端的 表示層、業務邏輯訪問、和數據訪問及數據庫訪問劃分出來,十分有利於系統的 開發,維護、部署和擴展。下面我們以典型的一個例子來說明,如何使用 ASP.NET 2.0和SQL Server 2005來構建一個多層應用。
我們的這個例子 十分簡單,但足以能夠說明問題。我們的應用只有兩個頁面,第一個頁面將調用 SQL Server 2005數據庫中的pubs數據庫的author表,列出所有的作者,然後點 選每個作者的鏈接,將顯示該作者寫過哪些書籍。
下面的圖,說明了在 ASP.NET 2.0架構下,我們的這個多層應用的架構圖:
從上 圖可以看出,我們將以這樣的方式來構建這個多層應用。首先,從圖的最上方開 始看,藍色部分的是表示層,就是我們web應用的外觀顯示,該層直接和用戶打 交道,比如處理輸入輸出等,在ASP.NET 2.0中,我們可以使用master page模版 技術,以構建一個外觀風格保持一致的頁面(這在下文中會提到)。接下來是業 務邏輯層,一般在該層中會直接處理業務邏輯及相關計算等,而在ASP.NET 2.0 中,我們可以很方便地通過使用objectdatasource控件來處理業務邏輯層。
業務邏輯層再接著和數據訪問層(data access layer)打交道。數據訪問層 的作用是,將所有對數據庫操作的有關過程業務分離出來,當數據庫的結構等發 生改變時,只需要對數據訪問層的代碼進行修改就可以了,不需要再修改其他的 地方,這樣會方便和不同的數據庫進行打交道。在ASP.NET 2.0中,通過使用 TableAdapter數據向導操作,可以十分快速地從已有的數據庫中,生成數據訪問 層的代碼,而基本上不需要寫什麼代碼。
最後,我們通過使用SQL Server 2005 新特性:clr stored procedure(clr 存儲過程),來創建存儲過程。在SQL Server 2005 中,你可以使用自己熟悉 的.NET語言來創建存儲過程了。