MS.NET開發三層結構應用程序

傳統兩層結構

  在過去應用系統開發過程中,CLIENT/SERVER體系結構得到了廣泛的應用 。其特點是,應用程序邏輯通常分佈在客戶和服務器兩端,客戶端發出數據資源訪問請求,服務器端將結果返回客戶端。但CLIENT/SERVER結構存在着很多體系結構上的問題,比如:當客戶端數目激增時,服務器端的性能會因爲負載過重而大大衰減;一旦應用的需求發生變化,客戶端和服務器端的應用程序都需要進行修改,給應用維護和升級帶來了極大的不便;大量的數據傳輸增加了網絡的負載等等。

  三層結構介紹

  所謂三層體系結構,是在客戶端與數據庫之間加入了一個"中間層",也叫組件層。這裏所說的三層體系,不是指物理上的三層,不是簡單地放置三臺機器就是三層體系結構,也不僅僅有B/S應用纔是三層體系結構,三層是指邏輯上的三層,即使這三個層放置到一臺機器上。

  三層體系的應用程序將業務規則、數據訪問、合法性校驗等工作放到了中間層進行處理。通常情況下,客戶端不直接與數據庫進行交互,而是通過COM/DCOM通訊與中間層建立連接,再經由中間層與數據庫進行交互。

  ASP.net只是.net中的一部分。它最大的優點除了是編譯執行速度快外,我覺得最大的優點是頁面和代碼分離的編寫方式(效果就象DELPHI裏的FORM設計界面和處理代碼分離一樣),對我們這些慣使RAD工具的人來說不啻是個福音。再加上.net庫提供的支持事件的各種WEB控件,和以前編寫網頁方式相比可謂是一場革命。隨着分佈式對象技術的逐漸成熟,多層分佈式應用體系結構得到了越來越多的應用。應用系統只有向多層分佈式轉變,才能最終解決CLIENT/SERVER結構存在的問題。在多層架構下,應用可以分佈在不同的系統平臺上,通過分佈式技術實現異構平臺間對象的相互通信。將應用系統集成於分佈式系統之上,能極大地提高系統的可擴展性。

  在多層分佈式應用中,在客戶端和服務器之間加入了一層或多層應用服務程序,這種程序稱爲"應用服務器"。開發人員可以將應用的商業邏輯放在中間層應用服務器上,把應用的業務邏輯與用戶界面分開。在保證客戶端功能的前提下,爲用戶提供一個簡潔的界面。這意味着如果需要修改應用程序代碼,只需要對中間層應用服務器進行修改,而不用修改成千上萬的客戶端應用程序。從而使開發人員可以專注於應用系統核心業務邏輯的分析、設計和開發,簡化了應用系統的開發、更新和升級工作。

  Microsoft.NET 爲三層結構做的準備

  Microsoft .NET Framework是微軟推出的一套下一代開發平臺。.NET 基於開發人員的角度來說它是一個公共平臺的類庫(FCL),包含了近100 個命名空間(namespace)的近5000個類,想想看這是多的強大,還包括一個公共語言運行庫(CLR)。因爲只要符合.NET的公共運行規範(CLS的語言都可以 使用它提供的強大的類,並編譯爲微軟的中間語言(MSIL),在其他的應用中就可以當作一個組件來調用。同時享受公共運行庫帶來的一切好處: 垃圾自動回收(GC)、實時編譯(JIT)、跨語言互動、跨平臺。 .NET 還可比喻是操作系統提供給開發人員的面向對像的API。 ASP.net是.net中的一部分。它最大的優點除了是編譯執行速度快外,我覺得最大的優點是頁面和代碼分離的編寫方式,再加上.net庫提供的支持事件的各種WEB控件,以及.NET公共平臺的類庫(FCL),和以前編寫網頁方式相比可謂是一場革命。

  用ASP.NET部署三層架構

  ASP.NET可以使用.NET平臺快速方便的部署三層架構。ASP.NET革命性的變化是在網頁中也使用基於事件的處理,可以指定處理的後臺代碼文件,可以使用C#,VB,J#作爲後臺代碼的語言。.NET中可以方便的實現組件的裝配,後臺代碼通過命名控件可以方便的使用自己定義的組件。顯示層放在ASP頁面中,數據庫操作和邏輯層用組件來實現,這樣就很方便的實現了三層架構。

20046382.gif

  下面分別就各層的實現舉個製作留言簿的小例子。

  我們首先在sqlserver數據庫中建一個數據庫GestDB,在GestDB中建表:Guestbook

20046383.gif



  第一步:打開VS.NET,點擊文件-》新建-》空白解決方案,在彈出的新建項目中選擇Visal C#項目,模板選擇ASP.NET Web應用程序.在位置處給本方案命名爲geustbook.如下圖所示。

20046384.gif

  第二步:建數據庫訪問控件。單擊上圖的"確定"。在窗口右邊的 "解決方案資源管理器"中右擊"解決方案"guestbook""選擇"添加"->"新建項目",彈出如下窗口,如圖模板選擇類庫,填寫名稱,位置。注意該類庫理論上與留言簿的工程是沒有關係的,所以存儲位置可以任意。

20046385.gif

  第三步:建立邏輯處理層。同第二步,建立另一個控件BusinessLayer。此控件用來調用數據庫控件,封裝留言簿所有的邏輯處理。如下圖所示。

20046386.gif

  第四步:關於引用。因爲BUSINESSLAYER要用到系統的WEB控件和剛纔建的DBLayer,所以必須把二者添加引用。右鍵點擊BUSINESSLAYER的"引用",選擇.NET的"System.web.dll"雙擊選中

20046387.gif

  然後再點項目的"DBLayer"雙擊選中。

20046388.gif

  第五步:把GUESTBOOK ASP.NET項目跟邏輯層聯繫起來,同樣使用添加引用。注意:在BUSINESSLAYER已經引用過DBLAYER,在GUESTBOOK處只需引用BUSINESSLAYER就可以了。

20046389.gif

  現在你的GUESTBOOK解決方案資源管理器應該是如下圖所示:

200463810.gif

  如果不是的話,請檢查一下上面的步驟哪裏是否出錯。

  通過上述步驟,就已經成功部署了ASP.NET的三層架構。在guestbook這一層我們放置應用顯示的ASP頁面,在BusinessLayer層,我們把所有的業務邏輯代碼在該層實現。DataLayer層主要處理數據庫的操作,供BusinessLayer層調用。

  只要在各個層中實現具體的類就可以成功實施三層結構的應用程序了。



  總結:

  本文簡要描述了三層架構的軟件體系思想,通過一個留言簿的例子主要介紹了用MS.NET部署三層結構的具體實現方法。
作者:孫運動  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章