web框架技術(shù)論文
Web應(yīng)用框架(Web application framework)是一種開(kāi)發(fā)框架,用來(lái)支持動(dòng)態(tài)網(wǎng)站、網(wǎng)絡(luò)應(yīng)用程序及網(wǎng)絡(luò)服務(wù)的開(kāi)發(fā)。這是學(xué)習(xí)啦小篇為大家整理的web框架技術(shù)論文,僅供參考!
基于Web Service技術(shù)的web框架模塊的應(yīng)用與研究篇一
摘要本文建立了一種基于Web Service的數(shù)據(jù)服務(wù)框架,并利用本框架開(kāi)發(fā)可擴(kuò)展企業(yè)的Web應(yīng)用,將數(shù)據(jù)操作部分和界面定制化分離開(kāi),降低了數(shù)據(jù)和界面之間的耦合。在數(shù)據(jù)服務(wù)端封裝了數(shù)據(jù)操作的常用功能,便于后續(xù)項(xiàng)目高效快捷的開(kāi)發(fā)數(shù)據(jù)庫(kù)功能。結(jié)果表明開(kāi)發(fā)效率高,可擴(kuò)展性強(qiáng),配置簡(jiǎn)單方便,而且便于系統(tǒng)維護(hù)和升級(jí)。
【關(guān)鍵詞】Web Service 框架模塊結(jié)構(gòu)軟件開(kāi)發(fā)框架
1 Web Service概述
Web Service也稱(chēng)作Web服務(wù),是一種W3C標(biāo)準(zhǔn),通常包括尋址、編排、描述和策略等多個(gè)標(biāo)準(zhǔn)。這些標(biāo)準(zhǔn)共同定義了在主流服務(wù)器上實(shí)現(xiàn)的大部分功能,也是用于面向服務(wù)架構(gòu)(Service Oriented Architecture,SOA)的支撐技術(shù)。利用Web Service(服務(wù))技術(shù),可以使運(yùn)行在不同計(jì)算機(jī)上的不同應(yīng)用進(jìn)行相互通信(交換數(shù)據(jù)),減少應(yīng)用接口的開(kāi)銷(xiāo),為整個(gè)企業(yè)甚至多個(gè)組織之間提供通用的訪問(wèn)機(jī)制。在使用Web Service規(guī)范的應(yīng)用之間,無(wú)論它們各自使用語(yǔ)言、平臺(tái)是否相同,都可以相互通信。
2 Web Service 在框架模塊結(jié)構(gòu)中的應(yīng)用
采用Web Service技術(shù)對(duì)數(shù)據(jù)的基本操作進(jìn)行封裝,通過(guò)建立標(biāo)準(zhǔn)的數(shù)據(jù)訪問(wèn)接口實(shí)現(xiàn)對(duì)企業(yè)數(shù)據(jù)庫(kù)的管理。開(kāi)發(fā)框架通過(guò)Web接口來(lái)調(diào)用數(shù)據(jù)服務(wù)并生成用戶(hù)界面,使得數(shù)據(jù)和界面更加獨(dú)立,提高了不同層面的開(kāi)發(fā)效率。
應(yīng)用框架的模塊結(jié)構(gòu)如圖2.1所示,其中核心組件是系統(tǒng)的公共API(應(yīng)用程序接口),封裝了一些常用的數(shù)據(jù)結(jié)構(gòu),便于上層模塊進(jìn)行調(diào)用。界面定制模塊實(shí)現(xiàn)網(wǎng)頁(yè)的可視化配置,將復(fù)雜的前端頁(yè)面分隔成較簡(jiǎn)單的部件,實(shí)現(xiàn)對(duì)網(wǎng)頁(yè)的局部修改和實(shí)時(shí)更新。功能擴(kuò)展模塊是對(duì)框架功能的擴(kuò)展,盡管底層類(lèi)庫(kù)定義了一些基本應(yīng)用功能,但是當(dāng)這些固有功能不能滿(mǎn)足需求時(shí)就需要修改已有功能或者添加新的功能。功能擴(kuò)展避免了對(duì)系統(tǒng)底層的破壞,同時(shí)又保證整個(gè)框架功能齊全,是框架實(shí)用性的重要體現(xiàn)部分。企業(yè)應(yīng)用模塊是針對(duì)具體的企業(yè)項(xiàng)目來(lái)實(shí)現(xiàn)的,提供了企業(yè)網(wǎng)站最常見(jiàn)的業(yè)務(wù)功能,針對(duì)不同項(xiàng)目可分別改進(jìn)和完善。Web Service數(shù)據(jù)服務(wù)模塊提供了對(duì)遠(yuǎn)程數(shù)據(jù)訪問(wèn)的支持,使用遠(yuǎn)程數(shù)據(jù)服務(wù)將數(shù)據(jù)庫(kù)操作獨(dú)立出來(lái),便于對(duì)數(shù)據(jù)庫(kù)進(jìn)行升級(jí)與維護(hù),同時(shí)盡量減少對(duì)應(yīng)用框架程序的修改。
從內(nèi)容上來(lái)看,應(yīng)用框架分成了四個(gè)不同的組成部分,分別代表不同的應(yīng)用類(lèi)型。從實(shí)現(xiàn)上來(lái)看可以劃分成兩大部分:數(shù)據(jù)和界面,并且本系統(tǒng)盡量減少這兩部分之間的依賴(lài)。
3 Web Service設(shè)計(jì)
應(yīng)用框架包含了企業(yè)應(yīng)用的大部分內(nèi)容,例如資源管理、權(quán)限管理、界面配置等,這些內(nèi)容與框架聯(lián)系緊密,放在框架內(nèi)部處理更加方便。在前面的介紹中沒(méi)有提到系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)的相關(guān)內(nèi)容,主要是因?yàn)楸鞠到y(tǒng)以一種特殊的方式來(lái)處理數(shù)據(jù)庫(kù)操作,在這里一并介紹。
在充分考慮到數(shù)據(jù)庫(kù)應(yīng)用的廣泛性和多樣性后,本文嘗試將數(shù)據(jù)訪問(wèn)模塊以Web Service形式獨(dú)立出來(lái),具體方法是在服務(wù)器端提供一種通用的數(shù)據(jù)訪問(wèn)和操作方式,應(yīng)用框架調(diào)用數(shù)據(jù)服務(wù)來(lái)完成相應(yīng)操作。服務(wù)器端的數(shù)據(jù)訪問(wèn)接口均以Web Service標(biāo)準(zhǔn)來(lái)實(shí)現(xiàn)(采用WCF技術(shù)),應(yīng)用框架提供靈活的數(shù)據(jù)配置界面來(lái)設(shè)置必要的數(shù)據(jù)庫(kù)連接信息,在數(shù)據(jù)連接成功后,應(yīng)用框架會(huì)自動(dòng)生成數(shù)據(jù)庫(kù)的增、刪、改、查界面。采用這種方式后,在涉及數(shù)據(jù)操作業(yè)務(wù)時(shí)就不必再次編碼,大大提高了系統(tǒng)的開(kāi)發(fā)效率。
Web Service數(shù)據(jù)訪問(wèn)的設(shè)計(jì)共分為兩個(gè)部分,數(shù)據(jù)模型層和Service功能層。數(shù)據(jù)模型層提供了數(shù)據(jù)庫(kù)的一般操作和數(shù)據(jù)格式的轉(zhuǎn)換,Service功能層則負(fù)責(zé)將數(shù)據(jù)庫(kù)的操作轉(zhuǎn)化成Web Service標(biāo)準(zhǔn)形式。
3.1 數(shù)據(jù)模型
數(shù)據(jù)模型是對(duì)數(shù)據(jù)訪問(wèn)操作的封裝,主要組成部分如圖3.1所示。
數(shù)據(jù)庫(kù)訪問(wèn)地址保存了數(shù)據(jù)庫(kù)訪問(wèn)的必要信息,其格式通常為“遠(yuǎn)程數(shù)據(jù)庫(kù)地址:數(shù)據(jù)庫(kù)名:用戶(hù)名:密碼”??紤]到數(shù)據(jù)的安全性,數(shù)據(jù)庫(kù)的訪問(wèn)地址并不會(huì)直接以一串完整文本保存下來(lái),而是由用戶(hù)在配置界面輸入各字段,然后加密后分別保存起來(lái)。
初始化操作是對(duì)數(shù)據(jù)類(lèi)的實(shí)例化,在實(shí)例化過(guò)程中使用傳入的參數(shù)構(gòu)造訪問(wèn)地址,然后生成一個(gè)數(shù)據(jù)鏈接對(duì)象。在初始化過(guò)程中會(huì)捕獲數(shù)據(jù)庫(kù)連接的異常信息,例如用戶(hù)驗(yàn)證失敗、遠(yuǎn)程地址不存在等,并及時(shí)將異常信息顯示在頁(yè)面上。
解析表是對(duì)數(shù)據(jù)表字段的獲取和轉(zhuǎn)化過(guò)程,該步驟與字段類(lèi)型轉(zhuǎn)換過(guò)程是相關(guān)聯(lián)的,主要是將數(shù)據(jù)庫(kù)字段轉(zhuǎn)化成程序和頁(yè)面所需的類(lèi)型。解析過(guò)程分三步進(jìn)行:第一,獲取數(shù)據(jù)表定義,根據(jù)表定義得到各個(gè)字段的數(shù)據(jù)庫(kù)類(lèi)型。第二,將字段從數(shù)據(jù)庫(kù)類(lèi)型轉(zhuǎn)化成程序類(lèi)型(本系統(tǒng)為C#數(shù)據(jù)類(lèi)型),通過(guò)比較數(shù)據(jù)庫(kù)與程序數(shù)據(jù)類(lèi)型特點(diǎn)來(lái)完成轉(zhuǎn)化。第三,將字段從數(shù)據(jù)庫(kù)類(lèi)型轉(zhuǎn)化成頁(yè)面類(lèi)型(Html表單類(lèi)型),通過(guò)對(duì)比網(wǎng)頁(yè)表單和數(shù)據(jù)庫(kù)的數(shù)據(jù)類(lèi)型來(lái)完成。
讀取數(shù)據(jù)執(zhí)行獲取數(shù)據(jù)的SQL語(yǔ)句并返回?cái)?shù)據(jù)結(jié)果,操作數(shù)據(jù)則執(zhí)行操作類(lèi)的SQL語(yǔ)句,如增加、刪除,并返回操作狀態(tài)。
3.2 Service模型
數(shù)據(jù)模型完成了數(shù)據(jù)操作的所有功能,但其實(shí)現(xiàn)方法只能在本地項(xiàng)目中使用,無(wú)法被遠(yuǎn)程系統(tǒng)調(diào)用。為了實(shí)現(xiàn)數(shù)據(jù)操作的獨(dú)立性和通用性,必須將數(shù)據(jù)模型進(jìn)一步包裝成為符合Web Service標(biāo)準(zhǔn)的模型,該模型的組成部分如圖3.2所示。
試探連接是對(duì)數(shù)據(jù)庫(kù)的嘗試性訪問(wèn),只有連接成功才能進(jìn)行下一步操作,它是所有數(shù)據(jù)服務(wù)的前提。如果連接失敗,服務(wù)器會(huì)返回一個(gè)錯(cuò)誤提示。
獲取所有表名操作會(huì)返回指定數(shù)據(jù)庫(kù)中的表名,該步驟是對(duì)數(shù)據(jù)表進(jìn)行操作的前提。在得到所有表名后,才能對(duì)相應(yīng)表進(jìn)行增、刪、改、查的操作。
獲取數(shù)據(jù)模型將數(shù)據(jù)表解析結(jié)果包裝起來(lái),系統(tǒng)調(diào)用該功能后可以得到字段的程序類(lèi)型和頁(yè)面類(lèi)型。獲取數(shù)據(jù)內(nèi)容和操作數(shù)據(jù)表分別是讀取數(shù)據(jù)和操作數(shù)據(jù)的Web Service標(biāo)準(zhǔn)化的實(shí)現(xiàn)。
4 結(jié)論
本文介紹了基于Web Service的數(shù)據(jù)服務(wù),在數(shù)據(jù)服務(wù)端封裝了數(shù)據(jù)操作的常用功能。雖然數(shù)據(jù)服務(wù)覆蓋了數(shù)據(jù)操作的全部范圍,例如數(shù)據(jù)的增、刪、改、查功能,但這些功能都是簡(jiǎn)單的模擬?;赪eb Service的數(shù)據(jù)服務(wù)是本文的創(chuàng)新方向,目前還處于研究之中,許多功能必須要繼續(xù)完善才能最終投入到實(shí)際應(yīng)用中。
參考文獻(xiàn)
[1]李園,陳世平. MVC設(shè)計(jì)模式在ASP.NET平臺(tái)中的應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(13):3180-3184.
[2]王海,韓冬旭. 基于MVC2三層架構(gòu)的培訓(xùn)管理系統(tǒng)的分析與設(shè)計(jì)[J].軟件導(dǎo)刊,2012(10):96-97.
面向教學(xué)MVC框架進(jìn)行WEB開(kāi)發(fā)技術(shù)教學(xué)篇二
【摘 要】根據(jù)面向應(yīng)用型人才培養(yǎng)的目標(biāo),高校計(jì)算機(jī)專(zhuān)業(yè)Web開(kāi)發(fā)技術(shù)的教學(xué)有必要進(jìn)行MVC開(kāi)發(fā)模式的教學(xué)。本文就如何進(jìn)行MVC開(kāi)發(fā)模式的教學(xué)提出了一種思路,介紹了一個(gè)面向教學(xué)的MVC框架,并給出了相應(yīng)的教學(xué)安排。
【關(guān)鍵詞】應(yīng)用型人才 Web開(kāi)發(fā)技術(shù) MVC框架
【中圖分類(lèi)號(hào)】G434 【文獻(xiàn)標(biāo)識(shí)碼】A 【文章編號(hào)】1674-4810(2012)05-0009-01
一 背景
當(dāng)今軟件行業(yè)蓬勃發(fā)展,很多高校認(rèn)識(shí)到發(fā)展應(yīng)用型本科教育既是社會(huì)發(fā)展的要求,也是教育發(fā)展的要求?,F(xiàn)有計(jì)算機(jī)專(zhuān)業(yè)教學(xué)內(nèi)容的選擇,不同學(xué)校由于培養(yǎng)目標(biāo)不同,觀點(diǎn)也不同。但對(duì)軟件開(kāi)發(fā),普遍認(rèn)同Web開(kāi)發(fā)是大勢(shì)所趨,因此,以Web應(yīng)用開(kāi)發(fā)為教學(xué)內(nèi)容的核心,是許多面向應(yīng)用型人才培養(yǎng)高校的選擇。但許多高校還停留在ASP.NET的事件驅(qū)動(dòng)模式,有的甚至采用ASP作為主要教學(xué)內(nèi)容。
在Web應(yīng)用開(kāi)發(fā)技術(shù)中,越來(lái)越多的軟件開(kāi)發(fā)采用了MVC設(shè)計(jì)模式。由此可見(jiàn),研究如何將教學(xué)內(nèi)容從傳統(tǒng)的ASP.NET之類(lèi)的模式轉(zhuǎn)向MVC開(kāi)發(fā)模式是十分有必要的,也是十分緊迫的一項(xiàng)工作。
本文首先討論MVC開(kāi)發(fā)模式的教學(xué)方式選擇,然后介紹MVC原理和自主開(kāi)發(fā)實(shí)現(xiàn)的一個(gè)既適用于教學(xué),又適用于實(shí)際開(kāi)發(fā)的輕量級(jí)MVC開(kāi)發(fā)框架,以及使用該框架開(kāi)展教學(xué)的思路。
二 教學(xué)方式選擇
計(jì)算機(jī)專(zhuān)業(yè)教學(xué)必須做到理論和技術(shù)相結(jié)合,但如把“實(shí)際設(shè)計(jì)實(shí)現(xiàn)某系統(tǒng)”作為教學(xué)目標(biāo),則是一個(gè)看似合理卻很難操作的事情。在結(jié)合實(shí)踐開(kāi)展教學(xué)方面,目前國(guó)內(nèi)外高校采用的通常有以下幾種形式:模擬驗(yàn)證型、使用驗(yàn)證型、剖析驗(yàn)證型和擴(kuò)展設(shè)計(jì)型。
通常程序教學(xué)采用的教學(xué)方法為使用驗(yàn)證型,教師先提出需求,再通過(guò)實(shí)例說(shuō)明如何實(shí)現(xiàn)需求,最后給出類(lèi)似的題目讓學(xué)生模仿,這可以幫助學(xué)生快速掌握開(kāi)發(fā)技術(shù)。但由于MVC將輸入―處理―顯示過(guò)程徹底分離,使用傳統(tǒng)教學(xué)方法使得學(xué)生往往不理解MVC的原理,很難將其模仿得到的技能知識(shí)推廣到其他問(wèn)題中。
顯然要培養(yǎng)高素質(zhì)的應(yīng)用型人才,最理想的形式應(yīng)該是“擴(kuò)展設(shè)計(jì)型”。這方面最著名的例子就是Minix,改變了操作系統(tǒng)這門(mén)課程的教學(xué)形式。由此可見(jiàn),要將Web應(yīng)用開(kāi)發(fā)的教學(xué)從傳統(tǒng)的ASP.NET之類(lèi)的模式轉(zhuǎn)向MVC開(kāi)發(fā)模式,應(yīng)該采用擴(kuò)展設(shè)計(jì)型的教學(xué)方式。
三 教學(xué)MVC框架
目前流行的MVC開(kāi)發(fā)框架有很多,但采用這些技術(shù)作為教學(xué)內(nèi)容,則只能采用模擬驗(yàn)證、使用驗(yàn)證方式開(kāi)展教學(xué),因此有必要開(kāi)發(fā)一個(gè)面向教學(xué)、兼顧實(shí)用的MVC開(kāi)發(fā)框架,以該框架為基礎(chǔ)開(kāi)展教學(xué)。該開(kāi)發(fā)框架應(yīng)該具有MVC所有核心功能,功能簡(jiǎn)單、清晰,有利于教學(xué),但同時(shí)必須考慮足夠?qū)嵱眯?,避免教學(xué)脫離實(shí)踐。
1.MVC框架
MVC應(yīng)用程序被分成三個(gè)核心部件:模型、視圖、控制器。其處理過(guò)程,首先由控制器接收用戶(hù)請(qǐng)求,并決定調(diào)用哪個(gè)模型來(lái)進(jìn)行處理,然后模型用業(yè)務(wù)邏輯來(lái)處理請(qǐng)求并返回?cái)?shù)據(jù),最后控制器用相應(yīng)的視圖格式化模型返回的數(shù)據(jù),并通過(guò)表示層呈現(xiàn)給用戶(hù)。
2.Pangu MVC框架
Pangu MVC是.NET平臺(tái)下的一個(gè)MVC開(kāi)發(fā)框架,由紹興市教育科學(xué)2011年度規(guī)劃課題(SGJ11007)資助開(kāi)發(fā),主要包括Model、Controller和View三部分。Model實(shí)現(xiàn)ORM,復(fù)雜但和MVC原理關(guān)系不大,教學(xué)中可以略講。Controller的核心包括Router和Controllers兩個(gè)模塊。Router實(shí)現(xiàn)URL路由,也就是根據(jù)URL請(qǐng)求確定對(duì)應(yīng)的Controller、Action和參數(shù);Controller實(shí)現(xiàn)控制器基類(lèi),主要實(shí)現(xiàn)Web上下文管理、調(diào)用Action和操縱View。而View部分則提供視圖操控能力,也就是將變量融合到模板中組裝出Html的方法,其核心是Token(標(biāo)簽)的處理。
該教學(xué)框架功能清晰,在保持足夠?qū)嵱眯缘幕A(chǔ)上去掉了許多“高級(jí)功能”,有利于學(xué)生將注意力集中在MVC原理的關(guān)鍵技術(shù)上,有利于教學(xué)的開(kāi)展。支持以下重要教學(xué)概念:依賴(lài)注入(DI)、多數(shù)據(jù)庫(kù)、ORM、對(duì)象訪問(wèn)服務(wù)、控制器、URL路由、視圖模板。
3.教學(xué)安排
基于該MVC框架,教學(xué)活動(dòng)安排如下:第一,按照“擴(kuò)展設(shè)計(jì)”模式,完成一個(gè)開(kāi)發(fā)教學(xué)案例,幫學(xué)生不但掌握使用MVC開(kāi)發(fā)系統(tǒng)的原理,而且能將其應(yīng)用到實(shí)際的開(kāi)發(fā)過(guò)程中。第二,編寫(xiě)教程,對(duì)MVC原理和實(shí)現(xiàn)思路進(jìn)行詳細(xì)介紹,便于教師將其用到教學(xué)中,讓學(xué)生真正掌握MVC開(kāi)發(fā)框架思想。
四 總結(jié)
通過(guò)開(kāi)發(fā)面向教學(xué)的MVC框架以及配套的教學(xué)素材,將其應(yīng)用到計(jì)算機(jī)專(zhuān)業(yè)本科學(xué)生Web應(yīng)用開(kāi)發(fā)的教學(xué)中,解決了原來(lái)學(xué)生難以理解MVC運(yùn)作機(jī)制,從而難以真正應(yīng)用MVC開(kāi)發(fā)模式的問(wèn)題,收到了良好的教學(xué)效果。
參考文獻(xiàn)
[1]馬小軍、王育堅(jiān).計(jì)算機(jī)應(yīng)用型人才培養(yǎng)與課程建設(shè)淺析[J].計(jì)算機(jī)教育,2009(10)
[2]Ed H. Chi, Ruben Ortega. Expanding CS education; improving software development[J]. Communications of the ACM, 2010(53)
[3]劉林東. Web應(yīng)用開(kāi)發(fā)課程的教學(xué)研究[J].電腦知識(shí)與技術(shù),2009(27)
[4]全金連、李琴、覃毅.基于MVC模式的成人教學(xué)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2010(9)
[5]陳渝、向勇.“操作系統(tǒng)”課程實(shí)驗(yàn)教學(xué)探討[J].計(jì)算機(jī)教育,2009(14)