亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        ASP.NET三層架構(gòu)的概念及關(guān)系分析

        2013-03-27 21:16:50哈爾濱鐵道職業(yè)技術(shù)學(xué)院
        電子世界 2013年2期
        關(guān)鍵詞:數(shù)據(jù)庫結(jié)構(gòu)功能

        哈爾濱鐵道職業(yè)技術(shù)學(xué)院 喬 冰

        選擇合適的系統(tǒng)體系架構(gòu)是一項(xiàng)影響整個(gè)應(yīng)用系統(tǒng)設(shè)計(jì)的關(guān)鍵工作。使用三層架構(gòu)可以使得系統(tǒng)的結(jié)構(gòu)更加清楚,分工更加明確,有利于系統(tǒng)的分工合作和后期維護(hù)。B/S模式的三層結(jié)構(gòu)是一種簡單、成熟,并得到普遍應(yīng)用的應(yīng)用程序架構(gòu),它將應(yīng)用程序結(jié)構(gòu)劃為分三個(gè)相對(duì)獨(dú)立層,包括用戶表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層。每一層只實(shí)現(xiàn)該層內(nèi)相對(duì)獨(dú)立的功能,而當(dāng)任何一層發(fā)生變化時(shí),只要保持層間接口關(guān)系不變,則其他各層都不會(huì)受到影響。三層結(jié)構(gòu)是一種嚴(yán)格的分層協(xié)作,即數(shù)據(jù)訪問層只能被業(yè)務(wù)邏輯層訪問,業(yè)務(wù)邏輯層只能被表示層訪問。用戶通過表示層將請(qǐng)求傳送給業(yè)務(wù)邏輯層,業(yè)務(wù)邏輯層完成相關(guān)業(yè)務(wù)規(guī)則和邏輯,并通過數(shù)據(jù)訪問層訪問數(shù)據(jù)庫獲得數(shù)據(jù),然后按照相反的順序依次返回,將數(shù)據(jù)顯示在用戶界面層。

        在軟件體系架構(gòu)設(shè)計(jì)中,分層式結(jié)構(gòu)是最常見,也是最重要的一種結(jié)構(gòu),微軟推薦的分層式結(jié)構(gòu)一般分為三層,從下至上分別為:數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層(又或成為領(lǐng)域?qū)樱?、表示層?/p>

        所謂三層體系結(jié)構(gòu),是在客戶端與數(shù)據(jù)庫之間加入了一個(gè)“中間層”,也叫組件層。這里所說的三層體系,不是指物理上的三層,不是簡單地放置三臺(tái)機(jī)器就是三層體系結(jié)構(gòu),也不僅僅有B/S應(yīng)用才是三層體系結(jié)構(gòu),三層是指邏輯上的三層,即使這三個(gè)層放置到一臺(tái)機(jī)器上。三層體系的應(yīng)用程序?qū)I(yè)務(wù)規(guī)則、數(shù)據(jù)訪問、合法性校驗(yàn)等工作放到了中間層進(jìn)行處理。通常情況下,客戶端不直接與數(shù)據(jù)庫進(jìn)行交互,而是通過COM/DCOM通訊與中間層建立連接,再經(jīng)由中間層與數(shù)據(jù)庫進(jìn)行交互。

        一、系統(tǒng)各層次原理

        三個(gè)層次中,系統(tǒng)主要功能和業(yè)務(wù)邏輯都在業(yè)務(wù)邏輯層進(jìn)行處理。

        1.用戶表示層(USL)

        用戶表示層也叫用戶界面層,封裝人機(jī)界面的所有表單和組件,是應(yīng)用系統(tǒng)與系統(tǒng)用戶之間的直接接口。主要用于顯示由業(yè)務(wù)邏輯層動(dòng)態(tài)傳送過來的數(shù)據(jù)信息,結(jié)合使用相應(yīng)的HTML標(biāo)記和樣式表定義來實(shí)現(xiàn);用戶錄入數(shù)據(jù)信息并通過簡單的校驗(yàn)后,經(jīng)由數(shù)據(jù)接口傳送給業(yè)務(wù)邏輯層下載論文。

        2.業(yè)務(wù)邏輯層(BLL)

        業(yè)務(wù)邏輯層主要完成對(duì)應(yīng)用系統(tǒng)相關(guān)業(yè)務(wù)規(guī)則和邏輯的封裝,在為用戶表示層訪問提供功能調(diào)用的同時(shí),它又通過調(diào)用數(shù)據(jù)訪問層所提供的功能來訪問數(shù)據(jù)庫。業(yè)務(wù)邏輯層主要根據(jù)系統(tǒng)設(shè)計(jì)的需要,通過構(gòu)建系統(tǒng)的關(guān)鍵對(duì)象類,實(shí)現(xiàn)系統(tǒng)的大部分邏輯控制功能。

        3.數(shù)據(jù)訪問層(DAL)

        數(shù)據(jù)訪問層只能被業(yè)務(wù)邏輯層訪問,并且系統(tǒng)只通過它訪問數(shù)據(jù)庫來獲取數(shù)據(jù)。當(dāng)數(shù)據(jù)訪問層根據(jù)業(yè)務(wù)邏輯層的要求與數(shù)據(jù)庫進(jìn)行交互時(shí),主要完成從數(shù)據(jù)庫中提取數(shù)據(jù)庫記錄的查詢和插入、修改與刪除數(shù)據(jù)庫記錄的更新數(shù)據(jù)功能。眾所周知,數(shù)據(jù)庫訪問是動(dòng)態(tài)信息管理應(yīng)用系統(tǒng)中最頻繁、最消耗資源的操作,所以必須優(yōu)化對(duì)數(shù)據(jù)庫的訪問策略,以提高系統(tǒng)的性能和可靠性。B/S模式的三層結(jié)構(gòu)是一種嚴(yán)格的分層定義,它首先將應(yīng)用系統(tǒng)復(fù)雜的開發(fā)工作劃分為相對(duì)簡單的小分塊,然后在每一層中只實(shí)現(xiàn)系統(tǒng)相應(yīng)層的功能設(shè)計(jì),層間的交互由相鄰層對(duì)應(yīng)的功能模塊進(jìn)行調(diào)用,信息傳遞只由接口進(jìn)行傳送。業(yè)務(wù)實(shí)體組件體現(xiàn)的是現(xiàn)實(shí)生活中的業(yè)務(wù)數(shù)據(jù),而數(shù)據(jù)訪問邏輯組件則是在數(shù)據(jù)庫中檢索數(shù)據(jù)或把業(yè)務(wù)實(shí)體數(shù)據(jù)保存到數(shù)據(jù)庫。

        二、系統(tǒng)各層次職責(zé)

        1.用戶表示層(USL)

        UI(User Interface)層的職責(zé)是數(shù)據(jù)的展現(xiàn)和采集,數(shù)據(jù)采集的結(jié)果通常以Entity object提交給BL層處理;

        Service Interface側(cè)層用于將業(yè)務(wù)或數(shù)據(jù)資源發(fā)布為服務(wù)(如WebServices)。

        2.業(yè)務(wù)邏輯層(BLL)

        BL(Business Logic)層的職責(zé)是按預(yù)定的業(yè)務(wù)邏輯處理UI層提交的請(qǐng)求。

        (1)Business Function子層負(fù)責(zé)基本業(yè)務(wù)功能的實(shí)現(xiàn);

        (2)Business Flow子層負(fù)責(zé)將Business Functio子層提供的多個(gè)基本業(yè)務(wù)功能組織成一個(gè)完整的業(yè)務(wù)流。(Transaction只能在Business Flow子層開啟)。

        3.數(shù)據(jù)訪問層(DAL)

        ResourceAccess層的職責(zé)是提供全面的資源訪問功能支持,并向上層屏蔽資源的來源。

        (1)BEM(Business Entity Manager)子層采用DataAccess子層和ServiceAccess子層來提供業(yè)務(wù)需要的基礎(chǔ)數(shù)據(jù)/資源訪問能力。

        (2)DataAccess子層負(fù)責(zé)從數(shù)據(jù)庫中存取資源,并向BEM子層屏蔽所有的SQL語句以及數(shù)據(jù)庫類型差異;DB Adaptor子層負(fù)責(zé)屏蔽數(shù)據(jù)庫類型的差異;ORM子層負(fù)責(zé)提供對(duì)象-關(guān)系映射的功能;Relation子層提供ORM無法完成的基于關(guān)系(Relation)的數(shù)據(jù)訪問功能。

        (3)ServiceAccess子層用于以SOA的方式從外部系統(tǒng)獲取資源。Service Entrance用于簡化對(duì)Service的訪問,它相當(dāng)于Service的代理,客戶直接使用Service Entrance就可以訪問系統(tǒng)發(fā)布的服務(wù)。Service Entrance為特定的平臺(tái)(如Java、.Net)提供強(qiáng)類型的接口,內(nèi)部可能隱藏了復(fù)雜的參數(shù)類型轉(zhuǎn)換。

        (4)ConfigAccess子層用于從配置文件中獲取配置object或?qū)⑴渲胦bject保存倒配置文件。

        三、系統(tǒng)各層次規(guī)則

        1.系統(tǒng)各層次及層內(nèi)部子層次之間都不得跨層調(diào)用;

        2.Entity object在各個(gè)層之間傳遞數(shù)據(jù);

        3.需要在UI層綁定到列表的數(shù)據(jù)采用基于關(guān)系的DataSet傳遞,除此之外,應(yīng)該使用Entity object傳遞數(shù)據(jù);

        4.對(duì)于每一個(gè)數(shù)據(jù)庫表(Table)都有一個(gè)DB Entity class與之對(duì)應(yīng),針對(duì)每一個(gè)Entity class都會(huì)有一個(gè)BEM Class與之對(duì)應(yīng);

        5.有些跨數(shù)據(jù)庫或跨表的操作(如復(fù)雜的聯(lián)合查詢)也需要由相應(yīng)的BEM Class來提供支持;

        6.對(duì)于相對(duì)簡單的系統(tǒng),可以考慮將Business Function子層和Business Flow子層合并為一個(gè);

        7.UI層和BL層禁止出現(xiàn)任何SQL語句。

        四、系統(tǒng)各層次優(yōu)缺點(diǎn)

        1.三層結(jié)構(gòu)的優(yōu)點(diǎn)

        (1)提高程序的可維護(hù)性:三層架構(gòu)層次分明,開發(fā)人員可以只關(guān)注整個(gè)結(jié)構(gòu)中的其中某一層;

        (2)可以并行開發(fā),提高了開發(fā)的速度;

        (3)提高系統(tǒng)的安全性:可以降低層與層之間的依賴;

        (4)提高系統(tǒng)的擴(kuò)展性:三層結(jié)構(gòu)最大的好處是在擴(kuò)展應(yīng)用系統(tǒng)時(shí),改動(dòng)的部分不會(huì)影響到大局,比如要給這個(gè)系統(tǒng)增加Oracle數(shù)據(jù)庫的功能,只需要改動(dòng)數(shù)據(jù)層就可以了,其他層保持不變。

        2.三層結(jié)構(gòu)的缺點(diǎn)

        (1)降低了系統(tǒng)的性能。如果不采用分層式結(jié)構(gòu),很多業(yè)務(wù)可以直接造訪數(shù)據(jù)庫,以此獲取相應(yīng)的數(shù)據(jù),如今卻必須通過中間層來完成。

        (2)有時(shí)會(huì)導(dǎo)致級(jí)聯(lián)的修改。這種修改尤其體現(xiàn)在自上而下的方向。如果在表示層中需要增加一個(gè)功能,為保證其設(shè)計(jì)符合分層式結(jié)構(gòu),可能需要在相應(yīng)的業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層中都增加相應(yīng)的代碼。

        (3)增加了開發(fā)成本?!叭龑咏Y(jié)構(gòu)”開發(fā)模式,不適用于對(duì)執(zhí)行速度要求過于苛刻的系統(tǒng),如在線訂票、在線炒股等。它比較適用于商業(yè)規(guī)則容易變化的系統(tǒng)。

        五、ASP.NET三層架構(gòu)的實(shí)現(xiàn)

        1.數(shù)據(jù)訪問層

        當(dāng)開始著手實(shí)現(xiàn)程序時(shí),首先要做的便是設(shè)計(jì)數(shù)據(jù)庫。而表示層要做的便是應(yīng)用面向?qū)ο笾蓄悓?duì)象相應(yīng)知識(shí),設(shè)計(jì)相應(yīng)的類和方法來實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的操作。ASP.NET數(shù)據(jù)訪問層的代碼都放到特定文件夾App_Code中,這樣在網(wǎng)站初始化時(shí),此特定文件夾中的代碼會(huì)自動(dòng)進(jìn)行編譯,便于檢查出錯(cuò)誤和提高程序應(yīng)用時(shí)的效率。一般對(duì)應(yīng)數(shù)據(jù)庫中的表都要建立實(shí)體類,封裝其變量及屬性,其中變量對(duì)應(yīng)數(shù)據(jù)庫中字段。數(shù)據(jù)訪問層建立于系統(tǒng)中模塊相關(guān)的類,然后將系統(tǒng)中對(duì)應(yīng)的功能在類中以方法的方式完成。用這些方法為業(yè)務(wù)邏輯層提供服務(wù)。為了更好完成對(duì)數(shù)據(jù)庫的操作,可以將一些對(duì)數(shù)據(jù)庫通用的操作封裝成類,然后在數(shù)據(jù)訪問層中進(jìn)行調(diào)用,其中最有代表的是微軟提供的SQLHelper類。

        2.業(yè)務(wù)邏輯層

        業(yè)務(wù)邏輯層為介于表示層和數(shù)據(jù)訪問層之間處理邏輯關(guān)系的一層。在業(yè)務(wù)邏輯層里建立相應(yīng)的數(shù)據(jù)訪問層相應(yīng)類實(shí)例,然后調(diào)用數(shù)據(jù)訪問層的方法。由于在數(shù)據(jù)訪問層類方法中已經(jīng)近似完成了對(duì)應(yīng)的業(yè)務(wù)邏輯層所要完成的功能,但業(yè)務(wù)邏輯層仍是不可缺少的。所有的業(yè)務(wù)上的控制,如判斷數(shù)據(jù)的有效性,都邏輯層完成。有時(shí)候邏輯層只是簡單的傳遞調(diào)用的數(shù)據(jù)訪問層的方法的返回值。但是保留此層對(duì)以后進(jìn)行維護(hù)有很大的幫助。如:public static int majorNameToID(string name){return M_MajorDAL.majorNameToID(name);}以上代碼便是僅僅返回了數(shù)據(jù)訪問層類的靜態(tài)方法的返回值,返回了專業(yè)名對(duì)應(yīng)的專業(yè)ID。

        3.表示層

        表示層只處理接收數(shù)據(jù)、顯示數(shù)據(jù)和判斷輸入數(shù)據(jù)的有效性等問題。ASP.NET中表示層由數(shù)量不等的網(wǎng)頁文件組成,這些網(wǎng)頁各自獨(dú)立,相互之間存在不同程度的關(guān)聯(lián)。表示層為面向用戶的部分,其好壞直接影響到用戶的評(píng)價(jià)。表示層整體框架做出來后,其頁面修飾便由網(wǎng)站美工來完成。

        以上介紹了ASP.NET技術(shù)的三層結(jié)構(gòu)模式。通過介紹分層規(guī)劃,體現(xiàn)了利用ASP.NET技術(shù)編寫三層結(jié)構(gòu)的清晰邏輯,并有效地實(shí)現(xiàn)了系統(tǒng)中各功能層的相對(duì)獨(dú)立,使系統(tǒng)具有更強(qiáng)大的靈活性、可擴(kuò)展性和可維護(hù)性;而且系統(tǒng)分層管理使分級(jí)分布部署成為現(xiàn)實(shí),可極大地提高系統(tǒng)的性能和安全性。

        [1]譚政,邢劍寬,鄭翔.軟件體系結(jié)構(gòu)[M].清華大學(xué)出版社.

        [2]Paul Sarknas.ASP.NET電子商務(wù)高級(jí)編程[M].清華大學(xué)出版社.

        [3]孫琳俊,陳松.新手學(xué)ASP.NET3.5網(wǎng)絡(luò)開發(fā)[M].電子工業(yè)出版社.

        猜你喜歡
        數(shù)據(jù)庫結(jié)構(gòu)功能
        也談詩的“功能”
        中華詩詞(2022年6期)2022-12-31 06:41:24
        《形而上學(xué)》△卷的結(jié)構(gòu)和位置
        論結(jié)構(gòu)
        中華詩詞(2019年7期)2019-11-25 01:43:04
        關(guān)于非首都功能疏解的幾點(diǎn)思考
        數(shù)據(jù)庫
        論《日出》的結(jié)構(gòu)
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        創(chuàng)新治理結(jié)構(gòu)促進(jìn)中小企業(yè)持續(xù)成長
        被三个男人绑着躁我好爽视频| 亚洲av国产精品色a变脸| 久久国产亚洲精品一区二区三区| 亚洲精品国产成人片| 51久久国产露脸精品国产| 亚洲欧美日韩精品中文乱码| 国产在线观看免费不卡视频| 国产精品蝌蚪九色av综合网| 无码ol丝袜高跟秘书在线观看| 国产夫妻av| 男女啦啦啦视频在线观看| 久久精品一区午夜视频| 国产操逼视频| 亚洲中文欧美日韩在线人| av网站韩日在线观看免费| 日本视频二区在线观看| 亚洲伊人成综合网| 91久久福利国产成人精品| 蜜桃视频永久免费在线观看| 一本色道久久hezyo无码 | 日本巨大的奶头在线观看| 国产亚洲日本人在线观看| av天堂亚洲另类色图在线播放| 男女猛烈xx00免费视频试看| 亚洲天堂在线播放| 青青草手机成人自拍视频| 凌辱人妻中文字幕一区| 国产精品igao视频| 亚洲性69影视| 国产高清一区二区三区三州| 色噜噜久久综合伊人一本| 精品人妻无码视频中文字幕一区二区三区| 初尝人妻少妇中文字幕在线| 久久精品熟女亚洲av麻| 亚洲av无码精品色午夜| 2020国产精品久久久久| 日韩av一区二区三区高清| 亚洲va久久久噜噜噜久久男同| 日本在线视频网站www色下载| 精品国模人妻视频网站| 日韩av无码一区二区三区不卡|