999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ASP.NET三層結構軟件的研究與開發

2010-04-12 00:00:00陳友良盛可軍王陽陽
現代電子技術 2010年6期

摘 要:為了增加軟件的結構性和可重用性,引入了三層結構軟件開發模式。介紹了基于ASP.NET三層結構軟件開發中涉及的相關概念和實現原理,詳細闡述了針對不同數據庫,通過工廠模式實現數據訪問層的具體過程,這也是文章的突出重點;對于業務邏輯層和表示層,提出了一些通用的觀點,開發人員可以根據具體的需求進一步擴展完善。最后總結這種開發模式的優缺點和適用性。實踐證明,三層結構的開發模式對軟件開發具有重要的應用價值。

關鍵詞:ASP.NET;設計模式;三層結構;可重用性

中圖分類號:TP311文獻標識碼:B

文章編號:1004-373X(2010)06-058-03

Research and Development of Three-layer Architecture Software Based on ASP.NET

CHEN Youliang1,SHENG Kejun2,WANG Yangyang3

(1.China Academy of Safety Science and Technology,Beijing,100029,China;2.Yantai Wanhua Group,Yantai,264002,China;

3.Henan University,Kaifeng,475001,China)

Abstract:The model of three-layer architecture is introduced in order to improve the architecture and reusage of software.The relevant concept and implementation principle of three-layer architecture software development based on ASP.NET,implementation of data access layer for different type of database by the way of factory model,which is the outstanding emphasis are introduced,some common viewpoints for business logic layer and user interface layer are brought forward,the developer can extend and perfect the project by different requirements.The advantages,shortcomings and applicability of the development pattern are concluded in the end.Practice has proved the model of three-layer architecture is very valuable to software development in the field of practical application.

Keywords:ASP.NET;design pattern;three-layer architecture;reusage

0 引 言

隨著互聯網應用軟件的發展以及組件技術的出現,軟件體系結構逐漸從原C/S結構方式向更適合互聯網應用的B/S結構模式轉變,兩層的C/S結構也逐漸轉向三層或多層結構[1]。軟件的應用環境在不斷變化,用戶對軟件系統的要求也越來越高,由此基于傳統的軟件開發模式開發的軟件系統存在一些問題。三層體系結構是在客戶端與數據庫之間加入了一個中間層,也叫組件層。這里所說的三層體系,不是指物理上的三層,不是簡單地放置三臺機器就是三層體系結構,三層是指邏輯上的三層,即使這三個層放置到一臺機器上[2]。三層體系的應用程序將業務規則、數據訪問、合法性校驗等工作放到了中間層進行處理。通常情況下,客戶端不直接與數據庫進行交互,而是通過對象組件模型(Component Object Model,COM)/分布式對象組件模型(Distributed Component Object Model,DCOM)[3]與中間層建立連接,再經由中間層與數據庫進行交互[4]。這種方式在一定程度上改變了軟件開發的模式,提高了軟件系統的可用性、穩定性和兼容性。

1 ASP.NET三層結構概述

Microsoft.NET Framework 是微軟推出的一套開發平臺。ASP.NET可以使用.NET平臺來快速方便地部署三層架構。ADO.NET 的數據庫訪問基礎是.NET數據供應器( Data Provider)[5]。顯示層放在顯示頁面中,數據庫操作和邏輯層用組件來實現,這樣就能很方便地實現三層架構。在ASP.NET 2.0中,典型的三層架構包括表示層(即頁面及后臺代碼)、業務邏輯層(即業務接口、業務實體、業務邏輯)和數據訪問層[6]。三層架構示意圖如圖1所示。

數據訪問層 主要是對原始數據的操作,具體來說是為業務邏輯層或表示層提供數據服務。在實現的時候要保證“數據訪問層”中函數功能的原子性。

業務邏輯層 主要負責對數據層的操作,也就是說把一些數據層的操作進行組合。其目的是將“數據訪問層”的基礎存儲邏輯組合起來,形成一種業務規則。

表示層 指應用程序中實現的客戶端。用戶服務主要是Web客戶端和Windows客戶端,也可以是其他平臺應用程序,主要作用是對用戶的請求接受,以及數據的返回,為客戶端提供應用程序的訪問。

圖1 三層架構示意圖

2 具體解決方案

2.1 數據訪問層

在數據訪問層中,完全采用“面向對象接口編程”思想[7],以使用創建型設計模式中的工廠模式為主,根據一個工廠類傳入的參量決定創建出哪一類產品類的實例[8]。抽象出來的數據庫訪問模塊,脫離了與具體數據庫的依賴,從而使得整個數據庫訪問層利用數據庫遷移。由于數據庫類型的不同,對數據庫的操作也有所不同,代碼因此也會有所區別。具體類庫結構圖如圖2所示。

圖2 數據訪問層結構圖

在圖2中,所有的類和方法都放在工廠DBAccessFactory中,通過接口IDBAccess向外提供服務(見表1)。在工廠DBAccessFactory中,最高層靜態父類IDBAccess包含了一些基本方法;抽象類DBAccess繼承類IDBAccess,定義了一些常用變量和公用的抽象和實例。對于不同的數據庫,定義一個不同的類,這些類繼承類DBAccess,并根據不同數據庫實例化了父類的抽象方法,同時該類還包含了針對不同數據庫的個性方法。部分類的部分變量和方法描述如表1~表3所示。

表1 接口IDBAccess

變量或者方法描述

DBType DBType獲取枚舉的數據庫類型

void Open()打開數據庫連接

void Close()關閉數據庫連接

int RunNoQuery(string strCmd);執行SQL語句

DataTable RunQuery(string strCmd);根據sql條件語句獲取結果集

表2 類DBAccess

變量或者方法描述

protected DbConnectionm_oConn數據庫連接對象

protected conststring CON_strServer數據庫服務器地址或者名稱

protected conststring CON_strUser數據庫用戶名

public abstract void InitConn(string strServer,string strDataBase,string strUser,string strPwd)初始化數據庫

public abstract DbCommandGetCmd(string strCmd)獲取DbCommand對象

public string GetParameter(string parameter)根據條件獲取參數

表3 類Oracle

變量或者方法描述

變量或者方法描述

public OracleTransaction tranOracle事務變量

public override void InitConn(string strServer,string strDataBase,string strUser,string strPwd)實例化數據庫連接

public void TranBegin()開始事務

public void TranRunSql(string str_Sql)執行事務

public void TranEnd()結束事務

SQL類、DB2類和MySQL三個類中的變量和方法類似于Oracle類,在此不再詳述。

2.2 業務邏輯層

業務邏輯層的核心模塊包含了整個系統的核心業務。在業務邏輯層中,不能直接訪問數據庫,而必須通過數據訪問層。業務邏輯層將表示層提出的請求轉換為對數據訪問層的請求,并將數據服務層返回的結果提交給表示層。對數據訪問業務的調用是通過接口IDBAccess完成的。既然與具體的數據訪問邏輯無關,則層與層之間的關系是松散耦合的。如果此時需要修改數據訪問層的具體實現,只要不涉及到接口定義,那么業務邏輯層就不會受到任何影響。例如,在應急救援系統中,用于處理業務邏輯和分析的功能模塊有應急資源調度模塊、應急預案管理模塊、報警方案形成模塊、報警通知模塊等;網上購物系統的庫存管理、物流管理、客戶關系管理和客戶訂單管理都可以放在業務邏輯層中實現。業務邏輯層包含了業務對象本身以及應用于它們的規則。這也是主要業務對象所在的位置。它們實現業務實體或系統對象。系統的業務規則將在這些對象中編碼,即從表示層接收請求,根據編碼的業務規則處理請求,從數據訪問層獲取數據或將數據發送到數據訪問層,將處理結果傳遞回表示層。部分處理方法描述如表4所示。

表4 部分處理方法描述

業務邏輯方法描述

Thread fThread_dealAllMobilTel報警方式中,處理短信報警線程

Thread fThread_dealTelPhone報警方式中,處理電話尋呼報警線程

Thread fThread_dealBroadcast報警方式中,處理廣播群呼報警線程

Thread fThread_alarmSendStatus報警狀態結果顯示線程

對系統功能的擴展,主要是指在業務邏輯層中增加各種業務處理與分析邏輯的應用,業務對象的實現,則使用C#的標準類庫,建立數據存取對象,并根據ASP.NET 2.0提供的接口標準予以編寫,從而實現系統結構化。

2.3 表示層

表示層是三層結構中用戶與系統的交互層,設計中最重要的模式是模型-視圖-控制器(Model-View-Controller,MVC)模式。在.NET平臺下,不需要自己去實現MVC模式。就視圖對象而言,ASP.NET已經提供了常用的控件,非常方便,也可以通過繼承System.Web.UI.UserControl,自定義用戶控件,并利用頁面組合控件來實現視圖。表示層的設計與實現均遵循以下特點:要有方便、友好的客戶交互界面。

3 三層架構給系統的優點

(1) 結構清晰、耦合度低。

采用三層結構將表示層和業務邏輯層分離[9]。客戶端和應用服務器、應用服務器和數據庫服務器之間的通信可以通過中間件或者相關程序來實現。當數據庫或者應用服務器的業務邏輯改變時,客戶端并不需要改變,反之亦然,從而大大提高了系統模塊的復用性,降低了維護費用。

(2) 便于系統擴展。

模塊化使得系統很容易在縱向和水平兩個方向拓展。一方面可以將系統升級為更大、更有力的平臺;另一方面還可以適當增加規模,以增強系統的網絡應用。

(3) 利于開發任務同步進行。

大型的軟件系統開發過程中,一個好的分層式結構,可以使開發人員的分工更加明確。一旦定義好各層次之間的接口,負責不同邏輯設計的開發人員就可以各司其職,同步開發。這樣就可以開發進度迅速提高。

4 結 語

基于ASP.NET三層架構的軟件開發已經成為一種流行的開發模式,也帶來了很多開發上的優點,適合開發應用需求靈活的系統,一定程度上保證了系統的可擴展性和可移植性。當然三層架構軟件開發模式也有一定的缺點。例如,相對于非分層的應用程序,執行速度不夠快,不適合對執行速度要求高的系統[10]。實踐證明,多層架構開發模式的應用是一條比較好的軟件系統開發途徑。

參考文獻

[1]黃啟春.基于CORBA的三層B/S結構[J].計算機與現代化,2002(4):36-39.

[2]e800技術客..NET三層架構技術.http://tech.e800.com.cn,2009.

[3]Jin Huang.Internet/CORBA-based Multi-agent System for Tele.Design and Manufacturing,ICAMT′99[C].1999.

[4]AfritXia.淺談“三層結構”原理與用意.http://blog.csdn.net/allthesky,2006.

[5]華國棟,劉文予.基于ADO.NET的數據庫訪問及其性能優化[J].計算機工程與應用,2004(6):215-218.

[6]沈軍.基于ASP.NET 2.0 技術的Web 數據庫多層架構設計與實現[J].電子測量技術,2008(2):25-28.

[7]張英剛.Microsoft.NET PetShop 4.0 架構與技術分析.http://blog.csdn.net/PrideRock,2008.

[8]談冉,陳巍,薛勝軍.設計模式在典型.NET三層架構Web 程序中的應用[J].武漢理工大學學報,2006(2):344-346.

[9][美]Erich Gamma.設計模式[M].李英軍,譯.北京:機械工業出版社,2000.

[10].NET三層架構 .http://www.cnblogs.com/gaoweipeng/archive/2009/01/18/1377855.html,2009.

主站蜘蛛池模板: 91探花国产综合在线精品| 91精品久久久无码中文字幕vr| 黄色网页在线播放| YW尤物AV无码国产在线观看| 亚洲AV无码不卡无码| 在线精品视频成人网| 91亚洲影院| 一区二区三区精品视频在线观看| 高清国产在线| 亚洲成人精品在线| 国产精品无码一二三视频| 精品国产一区91在线| 国产91导航| 日韩在线欧美在线| 中文字幕精品一区二区三区视频| 在线毛片网站| 亚洲一级色| 2021国产乱人伦在线播放| 国产网友愉拍精品| 亚洲精品不卡午夜精品| 91 九色视频丝袜| 亚洲电影天堂在线国语对白| 国产成人精品2021欧美日韩| 青青久视频| 又黄又湿又爽的视频| 国产精品久线在线观看| 国产福利影院在线观看| 久久久久人妻精品一区三寸蜜桃| 久久成人免费| 伊人久久青草青青综合| 国产在线观看人成激情视频| 在线看AV天堂| 欧美一级色视频| 9久久伊人精品综合| 天天摸天天操免费播放小视频| 四虎影院国产| 久久99久久无码毛片一区二区| 51国产偷自视频区视频手机观看 | 一个色综合久久| 亚洲色图在线观看| 亚欧成人无码AV在线播放| 九九热这里只有国产精品| 一区二区三区四区在线| 国产区免费| 日日摸夜夜爽无码| 永久免费AⅤ无码网站在线观看| 亚洲IV视频免费在线光看| 国产成人精品18| 国产第八页| 欧美精品亚洲精品日韩专区va| 伊人久久大香线蕉综合影视| 久久超级碰| 四虎永久免费地址在线网站| 日本不卡在线| 亚洲AV无码久久天堂| 伊大人香蕉久久网欧美| 六月婷婷综合| 中文无码毛片又爽又刺激| 欧美色视频网站| 国产成年女人特黄特色毛片免| 高清不卡毛片| 久久国产成人精品国产成人亚洲 | 97视频免费在线观看| 一个色综合久久| 欧美日韩国产成人高清视频| 国产激情无码一区二区三区免费| 日本a∨在线观看| 在线观看91精品国产剧情免费| 青青久久91| 亚洲福利视频网址| 欧美日韩国产精品va| 亚洲区视频在线观看| 亚洲第一成年网| 国产新AV天堂| vvvv98国产成人综合青青| 久久国产精品无码hdav| 一级高清毛片免费a级高清毛片| 久久精品66| 成人字幕网视频在线观看| 久草国产在线观看| 九色在线视频导航91| 国产小视频a在线观看|