凌道明
(阿壩師范高等專(zhuān)科學(xué)校,四川 成都 611741)
ASP.NET MVC技術(shù)研究與其在教學(xué)質(zhì)量評(píng)價(jià)系統(tǒng)中的應(yīng)用*
凌道明
(阿壩師范高等專(zhuān)科學(xué)校,四川 成都 611741)
本文根據(jù)ASP.NET MVC框架的模型-視圖-控制可分離的優(yōu)點(diǎn),分析設(shè)計(jì)一種可通用、可重用的教學(xué)質(zhì)量評(píng)價(jià)系統(tǒng)。著重研究ASP.NET MVC相關(guān)技術(shù)的使用方法、運(yùn)行模式以及其與ASP.NET的區(qū)別,將其部署到.NET框架中并結(jié)合ADO.NET技術(shù)實(shí)現(xiàn)教學(xué)質(zhì)量評(píng)價(jià)系統(tǒng),從而提高系統(tǒng)的可用性,增強(qiáng)系統(tǒng)的可擴(kuò)展性。
ASP.NET MVC;教學(xué)質(zhì)量評(píng)價(jià)系統(tǒng);.NET框架;ADO.NET;AJAX
目前大多數(shù)信息化系統(tǒng)都是面向Internet開(kāi)發(fā)與部署的,其優(yōu)點(diǎn)是用戶(hù)易于操作、不受操作平臺(tái)限制、不受地域性制約,因此在各行各業(yè)得到廣泛的應(yīng)用。而構(gòu)建這些系統(tǒng)的技術(shù)主要有J2EE、.NET,表現(xiàn)技術(shù)主要有JSP、ASP.NET、PHP以及AJAX,它們多以表現(xiàn)層、業(yè)務(wù)層、數(shù)據(jù)持久層層次結(jié)構(gòu)作為構(gòu)建思想。J2EE的優(yōu)點(diǎn)主要表現(xiàn)在開(kāi)源、安全性高、跨平臺(tái)性強(qiáng)、可移植性好、跨語(yǔ)言程度高,缺點(diǎn)是配置復(fù)雜;.NET的優(yōu)點(diǎn)主要表現(xiàn)在集成性好、簡(jiǎn)化應(yīng)用、支持Web服務(wù)、易于學(xué)習(xí),缺點(diǎn)是操作平臺(tái)單一、局限性較強(qiáng)。本文采用.NET框架作為教學(xué)質(zhì)量評(píng)價(jià)系統(tǒng)的平臺(tái)支持技術(shù),并使用ASP.NET MVC技術(shù)作為系統(tǒng)的主要開(kāi)發(fā)技術(shù);其根據(jù)MVC的特點(diǎn)分析教學(xué)質(zhì)量評(píng)價(jià)系統(tǒng),將MVC的模型-視圖-控制可分離的優(yōu)點(diǎn)應(yīng)用到教學(xué)質(zhì)量評(píng)價(jià)系統(tǒng)中,并用AJAX技術(shù)應(yīng)用到表現(xiàn)層實(shí)現(xiàn)頁(yè)面實(shí)時(shí)異步交換數(shù)據(jù),從而提高系統(tǒng)的可重用性、通用性和可擴(kuò)展性。
.NET框架主要包括公共語(yǔ)言運(yùn)行庫(kù)和.NET框架類(lèi)庫(kù),支持生成和運(yùn)行下一代應(yīng)用程序和XML Web Services的內(nèi)部Windows組件,用于提供應(yīng)用程序開(kāi)發(fā)的基礎(chǔ)設(shè)施。而ASP.NET是一種基于Web開(kāi)發(fā)的技術(shù),它支持的語(yǔ)言包括微軟所提供的所有語(yǔ)言,其中C#.NET最常用于開(kāi)發(fā)基于Web的應(yīng)用程序。ASP.NET MVC框架提供用于創(chuàng)建Web應(yīng)用程序的 ASP.NET Web窗體模式的替代模式;它是一個(gè)可測(cè)試性非常高的輕型演示框架,并集成了ASP.NET的功能;MVC框架在System.Web.Mvc程序集中定義。 ASP.NET AJAX 是 JavaScript、CSS、DOM、XMLHttpRequest四種技術(shù)的集合體,并且AJAX應(yīng)用程序使用XMLHttpRequest對(duì)象繞過(guò)瀏覽器并與Web服務(wù)器及任何托管HTTP端點(diǎn)建立直接通信,通過(guò)JavaScript實(shí)現(xiàn)頁(yè)面實(shí)時(shí)異步處理數(shù)據(jù);在System.Web.Mvc.Ajax程序集中進(jìn)行了定義。ADO.NET不是簡(jiǎn)單地對(duì)ADO擴(kuò)展,它提供了對(duì)關(guān)系數(shù)據(jù)、XML和應(yīng)用程序數(shù)據(jù)的訪問(wèn),對(duì)Microsoft SQL Server和XML等數(shù)據(jù)源以及通過(guò)OLE DB和XML公開(kāi)的數(shù)據(jù)源提供一致的訪問(wèn);并通過(guò)ADO.NET DataSet對(duì)象處理和緩存數(shù)據(jù)。
1.ASP.NET MVC
可以認(rèn)為ASP.NET MVC是ASP.NET和MVC框架的結(jié)合體,且互不包含。
(1)ASP.NET 與 MVC 概述
ASP.NET是一種統(tǒng)一的Web開(kāi)發(fā)模型,可用公共語(yǔ)言運(yùn)行庫(kù)(CLR)兼容的任何語(yǔ)言來(lái)編寫(xiě)應(yīng)用程序的代碼,這些語(yǔ)言包括 Microsoft Visual Basic、C#、JScript.NET和 J#;主要提供了頁(yè)和控件框架、ASP.NET編譯器、安全基礎(chǔ)結(jié)構(gòu)、狀態(tài)管理功能、應(yīng)用程序配置、運(yùn)行狀況監(jiān)視和性能功能、調(diào)試支持、XML Web services框架、可擴(kuò)展的宿主環(huán)境、應(yīng)用程序生命周期管理和可擴(kuò)展的設(shè)計(jì)器環(huán)境等功能。其ASP.NET頁(yè)面周期如圖1所示。
MVC包括模型、視圖和控制三個(gè)組件,其中模型對(duì)象是實(shí)現(xiàn)應(yīng)用程序數(shù)據(jù)域邏輯的應(yīng)用程序部件,是檢索模型狀態(tài)并將其存儲(chǔ)在數(shù)據(jù)庫(kù)中;并且在小型應(yīng)用程序中,模型通常是概念上的分離,而不是實(shí)際分離。視圖是顯示應(yīng)用程序用戶(hù)界面(UI)的組件??刂破魇翘幚碛脩?hù)交互、使用模型并最終選擇要呈現(xiàn)的視圖來(lái)顯示UI的組件;在 MVC應(yīng)用程序中,視圖僅顯示信息;控制器則用于處理和響應(yīng)用戶(hù)輸入和交互,并廣泛支持ASP.NET路由。ASP.NET MVC結(jié)構(gòu)如圖2所示。
(2)ASP.NET MVC 功能
主要包括以下功能,處理序列如圖3。
①應(yīng)用程序任務(wù)(輸入邏輯、業(yè)務(wù)邏輯和UI邏輯)的分離、可測(cè)試性和測(cè)試驅(qū)動(dòng)的開(kāi)發(fā) (TDD)。MVC框架中的所有核心協(xié)定都基于接口并且可使用mock對(duì)象進(jìn)行測(cè)試,mock對(duì)象是模仿應(yīng)用程序中實(shí)際對(duì)象行為的模擬對(duì)象。
②可擴(kuò)展和可插入的框架。在開(kāi)發(fā)時(shí),可以插入自己的視圖引擎、URL路由策略、操作方法參數(shù)序列化以及其他組件;它還支持使用依賴(lài)項(xiàng)注入(DI)和控制反轉(zhuǎn)(IOC)容器模型。
③廣泛支持ASP.NET路由。ASP.NET路由是一個(gè)功能強(qiáng)大的URL映射組件,它允許生成具有易于理解和可搜索的URL的應(yīng)用程序。URL未必包含文件擴(kuò)展名,并且旨在支持非常適合搜索引擎優(yōu)化(SEO)和具象狀態(tài)傳輸(REST)尋址的 URL命名模式。
④支持將現(xiàn)有 ASP.NET頁(yè)面(.aspx文件)、用戶(hù)控件(.ascx文件)和母版頁(yè)(.master文件)標(biāo)記文件中的標(biāo)記用作視圖模板,并支持現(xiàn)有ASP.NET的功能。
(3)ASP.NET 與 ASP.NET MVC
具體比較如表1和圖4所示。
表1 ASP.NET與ASP.NETMVC比較
2.ASP.NET AJAX
ASP.NET AJAX統(tǒng)一了編程接口和數(shù)據(jù)類(lèi)型,并使用JavaScript Object Notation(JSON)層可確保到達(dá)客戶(hù)端的DTO制作從服務(wù)器發(fā)出的數(shù)據(jù)的鏡像。在客戶(hù)端使用ASP.NET AJAX與遠(yuǎn)程服務(wù)進(jìn)行交互,將實(shí)時(shí)數(shù)據(jù)返回到瀏覽器中,并提供了與服務(wù)器端服務(wù)同名的JavaScript代理對(duì)象和大量靜態(tài)方法,如Update方法最終會(huì)提取JavaScript文檔類(lèi)型定義(DTD)數(shù)組并將其傳遞到最終負(fù)責(zé)更新用戶(hù)界面的回調(diào)函數(shù)中;同時(shí),標(biāo)記生成器基于文檔對(duì)象模型(DOM)中一個(gè)或多個(gè) HTML模板的引用以及下載的數(shù)據(jù)返回 HTML字符串,最后回調(diào)在頁(yè)面的DOM中插入該字符串;并通過(guò)DOM將DataView控件中的數(shù)據(jù)呈現(xiàn)在頁(yè)面。如圖5是ASP.NET AJAX緩存和運(yùn)行機(jī)制。在定義客戶(hù)端主要以瀏覽器端模板模式(BST)運(yùn)行,它的核心是JavaScript MarkupBuilder類(lèi)。
3.ADO.NET
ADO.NET通過(guò)數(shù)據(jù)處理將數(shù)據(jù)訪問(wèn)分解為多個(gè)可以單獨(dú)使用或一前一后使用的不連續(xù)組件。ADO.NET包含用于連接到數(shù)據(jù)庫(kù)、執(zhí)行命令和檢索結(jié)果的.NET Framework數(shù)據(jù)提供程序,如圖6所示。ADO.NET類(lèi)在System.Data.dllt中,如使用SQL Server的方法為using System.Data.SqlClient;并且與System.Xml.dll中的 XML類(lèi)集成;具有斷開(kāi)式數(shù)據(jù)結(jié)構(gòu),能夠與XML緊密集成,能夠組合來(lái)自多個(gè)不同數(shù)據(jù)源的數(shù)據(jù)的通用數(shù)據(jù)表示形式,以及與數(shù)據(jù)庫(kù)交互而優(yōu)化的功能。ADO.NET實(shí)體框架使開(kāi)發(fā)人員可以編寫(xiě)更少的數(shù)據(jù)訪問(wèn)代碼,減少維護(hù),將數(shù)據(jù)結(jié)構(gòu)抽象化為更易于開(kāi)展業(yè)務(wù)的方式,并且有利于數(shù)據(jù)的持久性;通過(guò)EntityClient可與概念層的實(shí)體數(shù)據(jù)模型(EDM)交互,如圖7所示。
教學(xué)質(zhì)量評(píng)價(jià)系統(tǒng)主要以教師-學(xué)生(主體-客體)間的“教學(xué)用”的角度來(lái)分析需求,因此操作群體包括教師和學(xué)生,評(píng)價(jià)基礎(chǔ)是教師與學(xué)生間的“教學(xué)用”的關(guān)系。在實(shí)現(xiàn)系統(tǒng)之前已經(jīng)建立了評(píng)價(jià)教師和學(xué)生的指標(biāo)體系,這兩個(gè)指標(biāo)體系是圍繞“教學(xué)用”展開(kāi)的。其中教師指標(biāo)主要從教學(xué)效果、教學(xué)方法、課堂氣氛、備課情況、課堂紀(jì)律、知識(shí)靈活程度、知識(shí)廣度、吸引力等角度建立的,學(xué)生的指標(biāo)主要從自覺(jué)情況、學(xué)習(xí)積極性、聽(tīng)課狀態(tài)、與教師互動(dòng)頻率、學(xué)習(xí)成績(jī)、技能與比賽、自學(xué)能力、遵紀(jì)守法、到課率、參與活動(dòng)的態(tài)度等角度建立的。這就形成了教師給學(xué)生打分,學(xué)生給教師打分,但這與現(xiàn)階段各學(xué)校采用的評(píng)課是有區(qū)別的,主要表現(xiàn)在:(1)教師與學(xué)生的指標(biāo)是相互制約和聯(lián)系的;(2)注重主體與客體的關(guān)系;(3)強(qiáng)調(diào)“教學(xué)用”在評(píng)價(jià)中的作用,從而做到教-學(xué)-用鏈?zhǔn)疥P(guān)系;(4)將評(píng)價(jià)的結(jié)果及時(shí)反饋給領(lǐng)導(dǎo),以便領(lǐng)導(dǎo)有效調(diào)整管理策略;(5)提高了領(lǐng)導(dǎo)、教師、學(xué)生的督導(dǎo)機(jī)制;(6)實(shí)現(xiàn)了“教學(xué)用”間的跟蹤機(jī)制。因此,基于ASP.NET MVC評(píng)價(jià)系統(tǒng)的實(shí)現(xiàn)就以?xún)纱笾笜?biāo)體系為系統(tǒng)主要需求展開(kāi)分析設(shè)計(jì),且采用層次分析法(AHP)計(jì)算每一個(gè)指標(biāo)的權(quán)重,這樣降低了主觀因素,實(shí)現(xiàn)了科學(xué)評(píng)價(jià),本系統(tǒng)是通過(guò)AHP計(jì)算軟件先將權(quán)重結(jié)果代入到系統(tǒng)中,再計(jì)算教學(xué)質(zhì)量結(jié)果。
1.教學(xué)質(zhì)量評(píng)價(jià)系統(tǒng)分析設(shè)計(jì)
用表現(xiàn)層、業(yè)務(wù)層和數(shù)據(jù)持久層作為系統(tǒng)的構(gòu)建思想,并將AJAX和MVC融合到各層中;通過(guò)各指標(biāo)的評(píng)分作為教學(xué)質(zhì)量評(píng)價(jià)的基礎(chǔ),其計(jì)算方法為:
針對(duì)一個(gè)教師有i門(mén)課程,若每一門(mén)課程有mi個(gè)學(xué)生打分,每一門(mén)課程的權(quán)重分wi,分?jǐn)?shù)為Si,則該教師每一門(mén)課程和總得分分別計(jì)算如下:
針對(duì)一個(gè)學(xué)生選修了j門(mén)課程,相應(yīng)有Teaj個(gè)教師為他們打分,每一個(gè)教師打的分?jǐn)?shù)為Sj,則該學(xué)生平均分Ava為:
教學(xué)質(zhì)量評(píng)價(jià)功能和流程分別如圖8、圖9所示。
2.關(guān)鍵代碼
(1)創(chuàng)建控制器:
(2)創(chuàng)建視圖:
(3)創(chuàng)建模型:
(5)聲明AJAX的方法:
文章介紹了與ASP.NET MVC相關(guān)的ASP.NET、AJAX、ADO.NET技術(shù),并進(jìn)行了詳細(xì)的分析。指出了ASP.NET的頁(yè)面處理流程,分析了ASP.NET MVC的結(jié)構(gòu)和流程;比較了ASP.NET和ASP.NET MVC各自的優(yōu)點(diǎn);分析了AJAX和ADO.NET的運(yùn)用機(jī)制和處理數(shù)據(jù)的方法。最后基于這些技術(shù)設(shè)計(jì)了教學(xué)質(zhì)量評(píng)價(jià)系統(tǒng),給出了實(shí)現(xiàn)這些功能的關(guān)鍵代碼。
[1]MSDN.In[EB/OL]http://msdn.microsoft.com/zh-cn/library.2010-6-20.
[2]黃勝根,陳蜀宇.基于ASP.NET MVC框架的干教系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2010,20(2):190-193.
[3]林慶,朱翠苗,鄭廣成等.基于ASP.NET的MVC設(shè)計(jì)模式的研究[J].計(jì)算機(jī)工程與設(shè)計(jì).2008,29(1):167-168.
[4]龔薇華,王晨光,俞歡軍.基于MVC模式和.NET的公司內(nèi)部管理信息系統(tǒng)設(shè)計(jì) [J].計(jì)算機(jī)工程與設(shè)計(jì).2007,28(9):2142-2144.
[5]李朔,李培松.ASP.NET環(huán)境下MVC模式的一種實(shí)現(xiàn)方法與應(yīng)用[J].華東交通大學(xué)學(xué)報(bào),2008,25(3):59-63.
(編輯:金冉)
G40-058.1
A
1673-8454(2010)19-0077-05
四川省教育廳人文社科重點(diǎn)課題(07SA012)和阿壩師專(zhuān)重點(diǎn)基金。