趙婉芳 徐江紅 陳莉莉
(北京電子科技職業(yè)學(xué)院,北京 100016)
基于Silverlight的網(wǎng)絡(luò)教學(xué)平臺(tái)系統(tǒng)設(shè)計(jì)開發(fā)
趙婉芳 徐江紅 陳莉莉
(北京電子科技職業(yè)學(xué)院,北京 100016)
Silverlight作為RIA技術(shù)代表在提高網(wǎng)絡(luò)教學(xué)平臺(tái)系統(tǒng)用戶體驗(yàn)方面有具有響應(yīng)速度非???、交互性能好、多維展示內(nèi)容比較豐富等優(yōu)勢(shì),本文重點(diǎn)介紹了Silverlight 技術(shù)架構(gòu)并詳細(xì)的分析了Silverlight 技術(shù)在網(wǎng)絡(luò)虛擬教學(xué)系統(tǒng)中的設(shè)計(jì)和實(shí)現(xiàn)。
網(wǎng)絡(luò)教學(xué)系統(tǒng)RIA Silverlight
隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡(luò)虛擬教學(xué)已經(jīng)成為新一代的教育形式,各種網(wǎng)絡(luò)教學(xué)平臺(tái)系統(tǒng)的開發(fā)需求也越來越多。在網(wǎng)絡(luò)教學(xué)系統(tǒng)中現(xiàn)有的WEB開發(fā)技術(shù)框架下,僅僅靠HTML、JavaScript、CSS從布局、色彩、圖形等方面來提高軟件的易用度,已經(jīng)很難從本質(zhì)上提升網(wǎng)站的用戶體驗(yàn),因此如何通過響應(yīng)速度快、交互好、多維展示來提高用戶體驗(yàn),一直以來都是教學(xué)平臺(tái)系統(tǒng)開發(fā)中的研究重點(diǎn),而豐富互聯(lián)網(wǎng)應(yīng)用程序(Rich Internet Applications,縮寫為RIA)的出現(xiàn)很好的解決了這個(gè)問題。
Sliverlight技術(shù)是微軟公司跨瀏覽器、跨平臺(tái)的RIA解決方案,它以XAML作為其呈現(xiàn)技術(shù)的基礎(chǔ),是WPF(Windows Presentation Foundation)的一個(gè)子集。該技術(shù)使得WEB 應(yīng)用程序擁有了靈活多樣的界面控制元素,它將聲音、視頻、動(dòng)畫結(jié)合在一起,支持創(chuàng)建豐富的、具有絢麗視覺效果的交互式體驗(yàn),并且可以隨處實(shí)現(xiàn),配合腳本語言JavaScript,可跨各種平臺(tái),具有響應(yīng)速度快、交互好、多維展示等特點(diǎn),使用該技術(shù)能實(shí)現(xiàn)多媒體演示、電子白板、在線考試、虛擬課堂等。
由于SilverLight基于.Net平臺(tái),使得服務(wù)器和客戶端的開發(fā)模型和語言得以統(tǒng)一,使網(wǎng)絡(luò)應(yīng)用編程模式演進(jìn)到一種新的階段。SilverLight技術(shù)采用異步通信方式與服務(wù)器端進(jìn)行交互,與傳統(tǒng)應(yīng)用開發(fā)相比更加復(fù)雜。因此在開發(fā)應(yīng)用前,需要?jiǎng)?chuàng)建穩(wěn)定高效的架構(gòu)來支持對(duì)象的異步調(diào)用和傳遞、構(gòu)建模塊化的視圖和視圖控制以及安全認(rèn)證機(jī)制。
圖1 Web 應(yīng)用架構(gòu)圖
網(wǎng)絡(luò)教學(xué)平臺(tái)系統(tǒng)屬于WEB應(yīng)用,為了增強(qiáng)了平臺(tái)系統(tǒng)高效穩(wěn)定和可移植性,分層設(shè)計(jì)已經(jīng)成為系統(tǒng)框架設(shè)計(jì)的一個(gè)重要原則。WCF是微軟提出的一個(gè)面向服務(wù)的分布式分層架構(gòu),它整合了.NET平臺(tái)下所有和分布式系統(tǒng)有關(guān)的技術(shù),其自始至終貫穿的SOA思想,更加適合系統(tǒng)業(yè)務(wù)的多樣性和多變性。而Silverlight技術(shù)改變了傳統(tǒng)Web應(yīng)用程序界面設(shè)計(jì)方式,能夠開發(fā)出具有專業(yè)圖形、音頻和視頻的Web應(yīng)用程序,增強(qiáng)了用戶體驗(yàn)。因此將Silverlight技術(shù)放在WCF架構(gòu)下使用,為高效開發(fā)網(wǎng)絡(luò)教學(xué)平臺(tái)系統(tǒng)提供了一種新的途徑。 其中的WEB應(yīng)用架構(gòu)圖如下圖1所示。
在該Web應(yīng)用框架中數(shù)據(jù)訪問層主要實(shí)現(xiàn)對(duì)數(shù)據(jù)庫數(shù)據(jù)增刪改查等操作來獲取最終數(shù)據(jù)。業(yè)務(wù)邏輯層主要實(shí)現(xiàn)流入數(shù)據(jù)的有效性和正確性驗(yàn)證,以達(dá)到業(yè)務(wù)邏輯目標(biāo)。表示層實(shí)現(xiàn)用戶與系統(tǒng)的交互即用戶操作界面。Silverlight控件層直接支撐表示層,在Silverlight客戶端環(huán)境下,封裝整個(gè)控件基礎(chǔ)架構(gòu),經(jīng)過一定的擴(kuò)展和改進(jìn),為表示層的開發(fā)提供了豐富的Silverlight控件支持。在Web應(yīng)用客戶端開發(fā)中,只需對(duì)一些控件進(jìn)行組合擴(kuò)展,便可開發(fā)出各種滿足表示層頁面展示需求用戶界面;通過服務(wù)代理層,以實(shí)現(xiàn)對(duì)各種業(yè)務(wù)邏輯對(duì)象的訪問。通過Silverlight控件層可大大提高用戶界面的開發(fā)效率。
基于Silverlight的網(wǎng)絡(luò)教學(xué)系統(tǒng)平臺(tái)在設(shè)計(jì)實(shí)現(xiàn)過程中利用富界面技術(shù)實(shí)現(xiàn)課堂教學(xué)內(nèi)容的呈現(xiàn),Silverlight客戶端使用MVVM設(shè)計(jì)模式實(shí)現(xiàn),使系統(tǒng)的內(nèi)容表示和業(yè)務(wù)邏輯、數(shù)據(jù)邏輯分離,保證系統(tǒng)的通用性。系統(tǒng)框架設(shè)計(jì)如圖2所示,表示層通過在Web瀏覽器上外掛Silverlight瀏覽器插件實(shí)現(xiàn)網(wǎng)絡(luò)教室、答疑交流及虛擬實(shí)驗(yàn)室等交互界面,保證用戶與整個(gè)系統(tǒng)的交互;業(yè)務(wù)邏輯層主要負(fù)責(zé)調(diào)用數(shù)據(jù)層中的課程信息、教學(xué)戲院及虛擬元件庫,生成網(wǎng)絡(luò)教室場(chǎng)景及業(yè)務(wù)功能的處理。數(shù)據(jù)層則提供平臺(tái)所需要的數(shù)據(jù)信息,如課程信息、用戶信息及教學(xué)資源信息等。
系統(tǒng)中客戶端和服務(wù)器端主要采用XAML數(shù)據(jù)進(jìn)行數(shù)據(jù)交換。服務(wù)器負(fù)責(zé)監(jiān)聽客戶端的連接請(qǐng)求和響應(yīng)連接,管理和維護(hù)虛擬教學(xué)場(chǎng)景的一致性,同時(shí)還對(duì)服務(wù)器上的共享空間進(jìn)行維護(hù)管理任,防止網(wǎng)絡(luò)教學(xué)系統(tǒng)運(yùn)行異常損失重要資料。客戶端基于瀏覽器,用戶登錄系統(tǒng)后客戶端創(chuàng)建與服務(wù)器之間的Socket連接,自動(dòng)下載安裝Silverlight瀏覽器插件,發(fā)送客戶端的請(qǐng)求下載教學(xué)課件,服務(wù)器會(huì)根據(jù)客戶端的不同性質(zhì)進(jìn)行教與學(xué)的任務(wù)分配,并建立角色模型,模擬真實(shí)學(xué)習(xí)情景。
Silverlight應(yīng)用不能夠獨(dú)立運(yùn)行,安裝完Silverlight 2 Beta1之后,可以利用VS2008中Silverlight Application的項(xiàng)目模板中的ASP.NET Web Site或者Web Application Project來托管Silverlight應(yīng)用程序,創(chuàng)建一個(gè)基于Silverlight的應(yīng)用系統(tǒng)。當(dāng)編譯Silverlight應(yīng)用程序后會(huì)在ClientBin文件夾中產(chǎn)生一個(gè)xap文件,xap文件是一個(gè)標(biāo)準(zhǔn)的.NET程序集,在編譯的時(shí)候所有的XAML標(biāo)識(shí)和資源文件如圖片等都會(huì)包含在里面,xap文件采用了標(biāo)準(zhǔn)的Zip壓縮算法,以減少客戶端下載的文件體積。在系統(tǒng)生成的.a(chǎn)spx文件中可以看到在頁面的頂部引入了System.Web.Silverlight程序集,支持<asp:Silverlight/>控件:
<%@Register Assembly=quot;System.Web.Silverlightquot;Namespace=quot;System.Web.UI.Silverlight Controlsquot;TagPrefix=quot;aspquot; %>
而在<asp:Silverlight/>控件的聲明中屬性Source屬性則指定了編譯生成的.xap文件的路徑:
<asp:Silverlight ID=quot;Xaml1quot; runat=quot;serverquot; Source=quot;~/ClientBin/ Silverlightteach.xapquot;
Version=quot;2.0quot; Width=quot;100%quot; Height=quot;100%quot; />這樣開發(fā)的平臺(tái)系統(tǒng)就可以引入豐富的Silverlight交互界面實(shí)現(xiàn)技術(shù)。
豐富互聯(lián)網(wǎng)應(yīng)用程序的出現(xiàn)使基于WEB的網(wǎng)絡(luò)應(yīng)用程序發(fā)生了革命性的變化?;赟ilverlight技術(shù)開發(fā)的教學(xué)平臺(tái)系統(tǒng)不再需要單獨(dú)安裝和維護(hù)視頻、動(dòng)畫、公式編輯器、虛擬現(xiàn)實(shí)等插件,具有響應(yīng)速度快、交互好、多維展示等特點(diǎn),帶來前所未有的用戶體驗(yàn),大大提高了學(xué)習(xí)者的學(xué)習(xí)興趣在網(wǎng)絡(luò)教育領(lǐng)域必將具有廣闊的應(yīng)用前景。
[1]呂高旭.Silverlight:ASP.NET與AJAX 開發(fā)實(shí)戰(zhàn)[M].北京:清華大學(xué)出版社,2008.
[2]Juaval Lowy著,張逸,徐寧譯.WCF編程[M].機(jī)械工業(yè)出版社,2009.10.
[3]銀光中國Silverlight資源.社區(qū)論壇[EB/OL].www.silverlightchina.net.