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

        ?

        三層架構(gòu)在基于XML技術(shù)留言本中的應(yīng)用

        2013-12-31 00:00:00殷存舉

        摘 要:程序設(shè)計(jì)追求的是代碼的通用性,可移植性,可維護(hù)性、功能可擴(kuò)展性,那么如何才能實(shí)現(xiàn)呢?首先需要大量的實(shí)踐經(jīng)驗(yàn),其次對(duì)面向?qū)ο缶幊趟枷氲纳钊肓私?。本文詳?xì)論述了通過ObjectDataSource和LINQ to XML開發(fā)了一個(gè)典型的基于三層架構(gòu)的XML留言板網(wǎng)站。

        關(guān)鍵詞:三層架構(gòu);留言板;XML技術(shù)

        中圖分類號(hào):TP311.52

        注冊(cè)用戶登錄網(wǎng)站后,可以在網(wǎng)站首頁查看用戶的留言內(nèi)容,還可以通過發(fā)表留言頁面發(fā)表留言信息,而以管理員身份登錄網(wǎng)站后還可以刪除指定的留言信息。在網(wǎng)站首頁提供了具體的導(dǎo)航功能?;赬ML技術(shù)的留言本首頁運(yùn)行效果如圖1所示。

        1 設(shè)計(jì)思想概述

        1.1 三層架構(gòu)模式設(shè)計(jì)思想。在網(wǎng)站開發(fā)過程中,需求是不斷發(fā)生變化的,給網(wǎng)站設(shè)計(jì)出一個(gè)良好的架構(gòu),會(huì)給網(wǎng)站以后的開發(fā)帶來很好的擴(kuò)展性,而三層架構(gòu)的數(shù)據(jù)庫Web應(yīng)用程序,將用戶的界面與數(shù)據(jù)庫的邏輯完全分離在不同的層面中,Web應(yīng)用程序界面不再直接與后臺(tái)的數(shù)據(jù)庫相連接,而是直接與業(yè)務(wù)邏輯層相關(guān)聯(lián)。然后業(yè)務(wù)邏輯層在與數(shù)據(jù)庫相連接。通過這個(gè)業(yè)務(wù)邏輯層,用戶界面與SQL語句實(shí)現(xiàn)了分離,便于系統(tǒng)的擴(kuò)展與維護(hù)。

        在三層架構(gòu)開發(fā)中,各個(gè)層之間的分工是很明確的,就像公司中的部門,每個(gè)部門的分工是不一樣的,哪個(gè)部門的任務(wù)就由該部門完成,一個(gè)部門完成不成任務(wù)對(duì)其他部門影響不大,甚至沒有影響。三層架構(gòu)設(shè)計(jì)模式如圖2所示。

        (1)表示層:它負(fù)責(zé)響應(yīng)用戶的請(qǐng)求,對(duì)于這一層一般代碼量很少。大量的處理工作交給業(yè)務(wù)邏輯層完成。(2)業(yè)務(wù)邏輯層:它負(fù)責(zé)實(shí)現(xiàn)業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問操作及對(duì)數(shù)據(jù)進(jìn)行有效性驗(yàn)證等。(3)數(shù)據(jù)庫層:主要實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ),本例使用SQL Server2005作為存儲(chǔ)數(shù)據(jù)的服務(wù)器。(4)Common層:用來封裝一些常用的功能性代碼,主要用來為其他層服務(wù)的。

        1.2 完美體現(xiàn)三層架構(gòu)模式的數(shù)據(jù)源控件——ObjectDataSource。大多數(shù)ASP.NET數(shù)據(jù)源控件(如AccessDataSource、SqlDataSource等)都是應(yīng)用于兩層架構(gòu)的開發(fā)。但是應(yīng)用程序設(shè)計(jì)的基本原則是將表示層與業(yè)務(wù)邏輯相分離。開發(fā)人員可以利用ObjectDataSource控件將頁面上的數(shù)據(jù)控件與業(yè)務(wù)邏輯層的數(shù)據(jù)訪問類的相關(guān)方法綁定,從而快速實(shí)現(xiàn)表示層與業(yè)務(wù)邏輯層的關(guān)聯(lián)。

        ObjectDataSource控件通過反射調(diào)用數(shù)據(jù)訪問類中的方法,實(shí)現(xiàn)對(duì)數(shù)據(jù)執(zhí)行選擇、更新、插入與刪除。實(shí)現(xiàn)步驟如下:首先設(shè)置ObjectDataSource控件的TypeName屬性,將數(shù)據(jù)訪問類與ObjectDataSource控件建立關(guān)聯(lián),然后設(shè)置ObjectDataSource控件的SelectMethod、UpdateMethod屬性,將這些屬性與數(shù)據(jù)訪問類中的相關(guān)方法建立關(guān)聯(lián)。ObjectDataSource控件的三層應(yīng)用程序結(jié)構(gòu)。

        1.3 LING to XML的應(yīng)用。LING to XML是LINQ技術(shù)的一種,它的最大優(yōu)勢(shì)在于和Language-Integrated Quary(LINQ)集成,對(duì)符合XML規(guī)范的文件進(jìn)行查詢,檢索,操作(添加、刪除、修改等),它與傳統(tǒng)操作XML的方法(例如文檔對(duì)象模型DOM)最大的區(qū)別在于它更簡(jiǎn)單、規(guī)范、強(qiáng)大。在本例的業(yè)務(wù)邏輯層的數(shù)據(jù)訪問類中,就使用了LINQ to XML實(shí)現(xiàn)對(duì)留言信息的添加、修改和查詢功能。

        2 設(shè)計(jì)過程詳解

        2.1 XML留言本——數(shù)據(jù)庫層設(shè)計(jì)。本例采用XML文件存儲(chǔ)留言信息,所以網(wǎng)站根目錄下的LeaveWord.xml文件也是數(shù)據(jù)層的一部分。在LeaveWord.xml文件中,每個(gè)標(biāo)記表示一條留言信息。LeaveWord.xml文件代碼如下:

        2.2 XML留言本——業(yè)務(wù)邏輯層設(shè)計(jì)。在網(wǎng)站LeaveWordService類文件中存放的是業(yè)務(wù)邏輯層的數(shù)據(jù)訪問類代碼。在數(shù)據(jù)訪問類中實(shí)現(xiàn)了對(duì)留言信息的添加、刪除、修改和查詢功能。

        (1)在XML文件中查詢留言相關(guān)內(nèi)容,應(yīng)用LINQ to XML查詢XML中所有元素,主要是調(diào)用了業(yè)務(wù)邏輯層自定的GetList()方法實(shí)現(xiàn)。在該方法首先調(diào)用Load()方法加載XML文件,然后定義查詢XML中所有元素的LINQ表達(dá)式,接著應(yīng)用foreach遍歷XML中的元素并將元素值賦給實(shí)體,最后返回實(shí)體列表。(2)將留言信息添加到XML文檔中,主要調(diào)用了業(yè)務(wù)邏輯層自定義的Add()方法。在該方法中首先調(diào)用Load()方法加載到XML文件,其次構(gòu)造XElement類型的元素,最后將構(gòu)造的元素添加到XML中并保存XML文件。(3)刪除XML文件中指定的留言信息時(shí),調(diào)用了業(yè)務(wù)邏輯Delete()方法。在該方法中首先使用LINQ表達(dá)式查找要?jiǎng)h除XML元素,其次刪除查找到元素序列中的第一個(gè)元素,最后保存XML文件。(4)在XML留言本詳細(xì)信息中修改XML元素,首先調(diào)用業(yè)務(wù)邏輯層數(shù)據(jù)訪問類中的Get()方法從XML文件中加載要修改的留言信息。用戶修改留言信息后單擊“更新”按鈕時(shí),調(diào)用業(yè)務(wù)邏輯層數(shù)據(jù)訪問類的Update()方法交修改的內(nèi)容更新XML文件中。

        2.3 XML留言本——表示層設(shè)計(jì)。上面代碼中使用LINQ to XML實(shí)現(xiàn)了業(yè)務(wù)邏輯層對(duì)數(shù)據(jù)層(數(shù)據(jù)庫)的訪問,那么表示層Web頁面如何訪問業(yè)務(wù)邏輯層呢?我們使用ObjectDataSource控件實(shí)現(xiàn)表示層與業(yè)務(wù)邏輯層的關(guān)聯(lián)。

        以刪除XML留言信息為例,在刪除XML留言信息頁面(DeleteLeaveWord.aspx)中添加一個(gè)ObjectDataSource控件,該控件的HTML代碼如下:

        DeleteMethod=\"Delete\" SelectMethod=\"GetList\" TypeName=\"LeaveWordService\"

        DataObjectTypeName=\"LeaveWordDomain\">

        上述代碼中,將TypeName屬性值設(shè)為L(zhǎng)eaveWordService,表示與業(yè)務(wù)邏輯層中的數(shù)據(jù)訪問類LeaveWordService關(guān)聯(lián);將DeleteMethod屬性值設(shè)為Delete,表示調(diào)用LeaveWordService類的Delete()方法執(zhí)行ObjectDataSource的刪除操作,將SelectMethod屬性設(shè)為GetList,表示調(diào)用LeaveWordService類的GetList()方法執(zhí)ObjectDataSource的查詢操作,查詢返回類型由DataObjectName屬性指定。

        3 結(jié)束語

        采用三層架構(gòu)開發(fā)項(xiàng)目結(jié)構(gòu)清晰,安全性高,同時(shí)增加了代碼的可重用性和可擴(kuò)展性,有利于實(shí)現(xiàn)人員分工合作。

        參考文獻(xiàn):

        [1]尹安.基于MVC和XML的異構(gòu)數(shù)據(jù)庫集成系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].華中科技大學(xué),2006.

        [2]徐楓.ASP.NET三層架構(gòu)體系分析與應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用,2011(08).

        [3]戰(zhàn)非.NET平臺(tái)下基于LINQ三層架構(gòu)的實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2010(11).

        作者單位:常州劉國(guó)鈞高等職業(yè)技術(shù)學(xué)校,江蘇常州 213025

        美女裸体自慰在线观看| 蜜桃传媒免费在线播放| 中文字幕人妻久久一区二区三区| 日韩人妖干女同二区三区| 亚洲成a∨人片在线观看无码 | 亚洲色图综合免费视频| 亚洲国产日韩综一区二区在性色 | 国产亚洲成人精品久久久| 蜜臀性色av免费| 无码丰满少妇2在线观看| 亚洲tv精品一区二区三区| 精品国产你懂的在线观看| 国产精品久久久黄色片| 男吃奶玩乳尖高潮视频| 久久久久久国产精品无码超碰动画| 免费的一级毛片| 伊人狼人影院在线视频| 亚洲乱码一区二区三区在线观看 | 丝袜美腿国产一区精品| 久久久久亚洲av无码专区首jn| 亚洲精品国产精品国自产观看| 国产亚洲精品日韩香蕉网| 青青草精品在线免费观看| 亚洲爆乳无码精品aaa片蜜桃| 99精品人妻少妇一区二区| 成人免费va视频| 精品蜜桃在线观看一区二区三区| 少妇被按摩出高潮了一区二区| 久热国产vs视频在线观看| 精品人无码一区二区三区| 在线亚洲免费精品视频| 99视频在线精品免费观看6| 国产在线精品一区二区| 乱中年女人伦av三区| 色婷婷久色国产成人免费| 少妇夜夜春夜夜爽试看视频| 亚洲欧美成人一区二区在线电影 | 亚洲中文av一区二区三区| 亚洲五月天中文字幕第一页| 中文字幕亚洲无线码一区女同| 少妇高清精品毛片在线视频|