免費預覽已結(jié)束,剩余52頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
使用Silverlight技術(shù)開發(fā)Rich Internet Applications的研究本科畢業(yè)論文(科研訓練、畢業(yè)設(shè)計)題 目:使用Silverlight技術(shù)開發(fā)Rich Internet Applications的研究 姓 名: 學 院:軟件學院 系:軟件工程 專 業(yè):軟件工程 年 級: 學 號: 指導教師(校內(nèi)): 職稱: 指導教師(校外): 職稱: 年 月 50摘 要Rich Internet Applications(RIA)技術(shù)在最近幾年以來發(fā)展突飛猛進,由于其發(fā)展尚處于早期階段,還擁有很廣闊的市場和發(fā)展空間。本文討論了RIA體系結(jié)構(gòu)與Client/Server,Browser/Server體系結(jié)構(gòu)的區(qū)別,回顧了RIA的發(fā)展過程,優(yōu)點,不足之處和開發(fā)RIA的各種技術(shù)。最后選取2008年3月5日由Microsoft發(fā)布的Silverlight 2.0測試版本,開發(fā)了一個英語學習的Silverlight全站用例,來說明Silverlight和RIA的開發(fā)方式,闡述了它們的優(yōu)缺點以及可拓展空間。關(guān)鍵詞:富英特網(wǎng)程序;微軟銀光;英語學習軟件AbstractRich Internet Applications (RIA) had conquered quite a large market of the Web application in the last few years. For this technology is still in its initial stages, it has a bright future and need to be standardized in the future. Here in the thesis, we introduced the main differences among Client/Server, Browser/Server and RIA architectures, discussed the advantages and disadvantages of RIA, and listed a few developing technologies to build RIA. Then we choose the Microsoft Silverlight 2.0 Beta, which was lately released on March 5, 2008, as the core technology to build an English Study Website, illustrating the wide space that Silverlight and RIA might go.Key words: RIA;Microsoft Silverlight;English Study Software.目 錄第一章引言11.1 Client/Server結(jié)構(gòu)11.2 Web程序和Browser/Server結(jié)構(gòu)11.3 本章小結(jié)2第二章 Rich Internet Application富英特網(wǎng)程序32.1 RIA的發(fā)展歷史32.2 RIA的優(yōu)點42.3 RIA的不足之處52.4 RIA的發(fā)展現(xiàn)狀82.5 開發(fā)RIA的各種技術(shù)8Adobe Flash,Adobe Flex和Adobe AIR8Backbase9Curl9Google的GWT Framework10Java Applets10Java程序10JavaFX11JavaScript/Ajax11Microsoft ActiveX11Microsoft Silverlight11Mozilla Prism12OpenLaszlo12REBOL 2.6和Smalltalk的Seaside122.6 本章小結(jié)13第三章 Microsoft Silverlight143.1 Silverlight概述143.2 Silverlight的兼容性163.3 Silverlight發(fā)布的版本19Silverlight 1.019Silverlight 2.0203.4 Silverlight開發(fā)工具223.5 本章小結(jié)24第四章 Silverlight開發(fā)項目實例Pancake English254.1 Pancake English項目簡介254.1.1 現(xiàn)有英語學習軟件分析254.1.2 Pancake English的優(yōu)勢254.2 項目詳細介紹264.2.1 基于記憶遺忘曲線的背單詞功能264.2.2 多媒體英漢詞典功能304.2.3 按字幕定位的媒體播放器334.2.4 基于媒體播放器的聽寫功能和字幕編輯功能364.2.5 服務(wù)器端設(shè)計404.3 本章小結(jié)44第五章 結(jié)論465.1 Pancake English擴展前景465.1.1 Pancake English的適用場合465.1.2 Silverlight Beta版本的局限性465.1.3 Pancake English在移動終端上的部署475.2 Silverlight開發(fā)未來47致 謝48參考文獻49ContentsChapter 1 Overview11.1 Client/Server11.2 Web Application and Browser/Server11.3 Summary2Chapter 2 Rich Internet Application32.1 History of RIA32.2 Benefits of RIA42.3 Shortcomings of RIA52.4 Current Status of Development82.5 List of RIA Platforms and Approaches8Adobe Flash,Adobe Flex and Adobe AIR8Backbase9Curl9Googles GWT Framework10Java Applets10Java Applications10JavaFX11JavaScript/Ajax11Microsoft ActiveX11Microsoft Silverlight11Mozilla Prism12OpenLaszlo12REBOL 2.6 and Seaside for Smalltalk122.6 Summary13Chapter 3 Microsoft Silverlight143.1 Overview of Silverlight143.2 Compatibility163.3 Releases19Silverlight 1.019Silverlight 2.0203.4 Development Tools223.5 Summary24Chapter 4 A Silverlight Project-Pancake English254.1 Overview of Pancake English254.1.1 Current status of English Study Softwares254.1.2 Advantages of Pancake English254.2 Project Details264.2.1 Words Function Based on the Forgetting Curve264.2.2 Multi-Media Dictionary304.2.3 Subtitle-Based Media Player334.2.4 Dictation and Subtitle Edit364.2.5 Design of Server404.3 Summary44Chapter 5 Conclusion465.1 Pancake Englishs Future465.1.1 What can Pancake English Do465.1.2 Limitaion of Silverlight Beta465.1.3 Pancake English on Mobiles475.2 Silverlights Future47Acknowledgement48References49第一章 引言1.1 Client/Server結(jié)構(gòu)Client/Server(C/S),即我們所熟知的客戶機/服務(wù)器結(jié)構(gòu),屬于計算機軟件體系結(jié)構(gòu)的一種。它通過將任務(wù)合理分配到Client端和Server端,充分利用兩端的硬件環(huán)境的優(yōu)勢,降低系統(tǒng)的通訊開銷,同時增強了數(shù)據(jù)的安全性。Client/Server這種說法首次出現(xiàn)于19世紀80年代,代表網(wǎng)絡(luò)中的各個終端電腦,而直到80年代末期,C/S模型的概念才廣泛為人們所接受。我們?nèi)粘I钪兴褂玫拇蟛糠肿烂鎽?yīng)用程序即屬于C/S結(jié)構(gòu),譬如用于及時通訊聊天所使用的Windows Live Messenger(MSN),或各種類型的網(wǎng)絡(luò)游戲譬如夢幻西游,等等。Client端程序在用戶的個人電腦中運行,而各項服務(wù)程序則在指定Server中運行。使用Client/Server結(jié)構(gòu)開發(fā)的應(yīng)用程序交互性較強,網(wǎng)絡(luò)通信量較低,響應(yīng)速度快,方便處理大量數(shù)據(jù),同時C/S結(jié)構(gòu)的程序也具有較為優(yōu)良的用戶界面。但是,也因其結(jié)構(gòu)特點,C/S結(jié)構(gòu)的程序往往具有如下的缺陷:l 開發(fā)不夠靈活,兼容性較弱,對于不同的應(yīng)用及環(huán)境,無論是Server還是Client端都需要開發(fā)特定的軟件;l 軟件的維護開銷較大,需要做到Server和Client同時維護,且任何Server端的修改都會導致Client端相應(yīng)的修改或更新;l 部署和實現(xiàn)不夠靈活,必須安裝Client端,局限于固定用戶,缺少通用性。1.2 Web程序和Browser/Server結(jié)構(gòu)在對C/S不斷改進的過程中,同時伴隨Internet技術(shù)的發(fā)展,Browser/Server(B/S)體系結(jié)構(gòu)應(yīng)運而生。B/S結(jié)構(gòu)將絕大部分的處理保留在Server端,Client端只需通過Browser(瀏覽器)對Server端生成的標準格式文件進行解析,譬如我們平時使用的搜索引擎,各種新聞網(wǎng)站,以及電子郵件服務(wù)等。這種方式下只需對Server端進行維護,用戶無需了解Server端底層究竟采取了什么樣的技術(shù),Server端的修改、升級也不需要Client完成任何更新。同時,Web 應(yīng)用程序的部署十分靈活,無論是Windows的用戶或者Mac系統(tǒng)用戶,都可以通過其運行平臺上不同的瀏覽器,體驗完全相同的功能服務(wù)。B/S結(jié)構(gòu)在擁有其部署靈活,維護相對較簡單等優(yōu)點的同時,也具有這樣一些缺陷:l Web應(yīng)用程序?qū)τ诜?wù)的每一次請求都需要刷新頁面,即任何交互都是一次遠程的傳輸,占用了相當大的網(wǎng)絡(luò)資源;l Web程序與用戶交互性較差,同時也無法與其他應(yīng)用程序進行交互;l 由于頁面刷新所占用的資源較大,無法進行大量的數(shù)據(jù)處理,開發(fā)者無法對其界面做大量的修飾,導致了Web應(yīng)用程序在界面導上的單調(diào),損失了很大一部分的用戶。1.3 本章小結(jié)隨著C/S與B/S兩種技術(shù)各自的不斷發(fā)展和交互運用,已有各種技術(shù)出現(xiàn)以彌補兩種結(jié)構(gòu)各自的缺陷。而近幾年來出現(xiàn)的RIA(Rich Internet Applications,富英特網(wǎng)應(yīng)用程序),結(jié)合了C/S與B/S的優(yōu)點,盡管其發(fā)展還不完善,但卻在很大程度上革新了傳統(tǒng)Web應(yīng)用程序的開發(fā)過程與使用方式,同時也成為繼C/S和B/S兩大傳統(tǒng)軟件體系結(jié)構(gòu)之后的第三種軟件開發(fā)體系結(jié)構(gòu)。本文將在第二章中對RIA做具體介紹。第二章 Rich Internet Application富英特網(wǎng)程序Rich Internet Applications(RIA)是指具有C/S程序結(jié)構(gòu)特征的Web應(yīng)用程序。RIA將數(shù)據(jù)操作保留在Server端,同時把部分必要的用戶界面等操作留在客戶端(即瀏覽器)中運行,以減少網(wǎng)絡(luò)開銷,提供優(yōu)質(zhì)和交互性更強的圖形用戶界面。RIA通常運行在瀏覽器中,不需要安裝其他軟件,有時也需要用戶瀏覽器安裝特定的語言解釋器,其功能類似于Java語言的虛擬機,也即為我們平時說的“插件”。插件一旦安裝,便可以解釋執(zhí)行同類型的所有功能。2.1 RIA的發(fā)展歷史Rich Internet Application的說法首次出現(xiàn)于Macromedia公司2002年3月份的白皮書1中,而富英特網(wǎng)應(yīng)用程序的概念則在更早的時候就已出現(xiàn),之前曾被表述為:l 1998年左右,Microsoft公司,稱之為遠程腳本(Remote Scripting);l 2000年8月,F(xiàn)orrester Research,X Internet;l Rich (web) Client(胖(網(wǎng)絡(luò))客戶端);l Rich web application 富網(wǎng)絡(luò)應(yīng)用程序.傳統(tǒng)的web應(yīng)用程序主要圍繞Client和Server兩端的通信運行,這種情況下,所有的處理過程都在Server端完成,而這里的Client,所謂的瘦客戶端(Thin Client),只需顯示靜態(tài)的HTML頁面內(nèi)容。這種結(jié)構(gòu)最大的缺陷是,用戶的一切服務(wù)請求都必須傳回服務(wù)器,由服務(wù)器處理后生成新的頁面,再傳回瀏覽器顯示。RIA通過在客戶端執(zhí)行的指令,可以直接與用戶進行交互而避免了這種相對較慢的同步模式。RIA對于傳統(tǒng)Web程序的革新,有點類似于Client/Server結(jié)構(gòu)對于終端/主機模式的進化。由于Internet標準本身為了適應(yīng)更好的應(yīng)用也在不斷的發(fā)展變化,所以我們對于何種應(yīng)用程序?qū)儆赗IA何種不屬于并沒有一個明確的劃分。但所有的RIA都具有這樣的一個特點:它們都引進了一種稱為客戶端引擎(Client Engine)的中間層代碼,運行于用戶和服務(wù)器之間。客戶端引擎通常在服務(wù)實例化時被部分下載,程序運行過程中繼續(xù)補充下載,作為瀏覽器功能的一種延伸,負責渲染程序用戶界面以及與服務(wù)器交互。RIA提供的功能與其所運行于的客戶端使用的系統(tǒng)相關(guān)??偟膩碚f,設(shè)計者設(shè)計客戶端引擎的目的是為了提供某種功能,以提升用戶界面效果,或者增強特定的交互能力,而這些功能是傳統(tǒng)的Web程序無法做到的。此外,瀏覽器與服務(wù)器傳統(tǒng)的同步模式無法改變,而客戶端引擎能夠做到與服務(wù)器的異步傳輸,即用戶直接與客戶段引擎交互,而客戶段引擎直接與Server交互。2.2 RIA的優(yōu)點盡管開發(fā)運行于瀏覽器上的程序要比普通Web程序或是桌面應(yīng)用程序要復雜,而且其效果卻并不一定會比C/S結(jié)構(gòu)的程序好,RIA卻擁有著它不可比擬的優(yōu)點:l 安裝簡單:RIA的安裝和更新過程的總開銷遠比桌面應(yīng)用程序或操作系統(tǒng)本機程序要小得多,如Microsoft Silverlight插件,大小約為2MB左右;l 程序的更新和升級是自動的或者對用戶透明;l 用戶可以使用任意計算機通過網(wǎng)絡(luò)連接來使用程序;l 已出現(xiàn)一些程序支持RIA的離線使用,譬如Adobe AIR,Google Gears等;l RIA的跨操作系統(tǒng)特性保證了用戶對產(chǎn)品使用的連貫性,比如某用戶在公司使用Windows系統(tǒng),在家中使用Mac系統(tǒng),而兩處所使用的RIA程序在界面和功能上幾乎完全一致;l 基于網(wǎng)絡(luò)的應(yīng)用程序比運行于本機的C/S的Client端被病毒入侵的可能性小。對于客戶端引擎的引進,使得RIA具有了如下的特征:l 更豐富:RIA提供了標準瀏覽器使用傳統(tǒng)HTML技術(shù)所無法實現(xiàn)的用戶界面行為,諸如控件的拖放(drag-and-drop),使用滑動條(Slider)對數(shù)據(jù)進行控制等,這些計算都在客戶端本機中運行而無需傳回服務(wù)器處理。l 響應(yīng)更快:相比于傳統(tǒng)B/S結(jié)構(gòu)中所有處理都須回傳服務(wù)器的模式,RIA在本機處理部分操作的模式使得程序?qū)τ谟脩舻慕换ロ憫?yīng)更快。最為復雜的RIA能夠提供與C/S程序外觀相媲美的使用環(huán)境,同時也可以做到:l Client端與Server端的平衡:由于將部分處理轉(zhuǎn)移到了客戶端,瀏覽器的負擔相應(yīng)減弱,使得同一Server可以同時處理更多的服務(wù)請求;l 異步傳輸:客戶端引擎可以在用戶未發(fā)出命令前與服務(wù)器進行傳輸,這使得用戶對于頁面的操作與服務(wù)器形成異步效果。這種技術(shù)的本質(zhì)是在用戶調(diào)用數(shù)據(jù)前事先傳入數(shù)據(jù),減少了用戶等待的時間,因此提高響應(yīng)速度。Google Map便是使用的這種模式,在用戶放大圖像之前,事先讀入調(diào)整圖片。l 網(wǎng)絡(luò)效率:特別設(shè)計的客戶端引擎可以判斷數(shù)據(jù)中哪些必須回傳服務(wù)器而那些可以不用回傳,從而加快了單個請求的響應(yīng)速度,降低了整個網(wǎng)絡(luò)的使用負載。但是,由于異步傳輸和事先讀取數(shù)據(jù)技術(shù)的使用,這項優(yōu)點很有可能被中和甚至是反而加重網(wǎng)絡(luò)的負擔。比如代碼并不能事先預測用戶下一步動作,為了提升響應(yīng)速度,就必須下載多余的數(shù)據(jù)以方便調(diào)用。2.3 RIA的不足之處RIA同時也具有如下的一些缺陷:l 沙盒(sandbox)效應(yīng):某些RIA必須運行于特定的瀏覽器中,稱之為沙盒,限制了程序與系統(tǒng)其他資源的交互,若對于資源使用的假設(shè)錯誤,則會造成程序出錯;l 腳本禁止:一些RIA必須通過腳本程序來運行,若用戶禁止了本機瀏覽器中的腳本運行,則會造成整個RIA無法運行;l 客戶端處理速度:為了實現(xiàn)跨平臺性,一些RIA使用了諸如JavaScript等的解釋性語言,因此會帶來運行效果上的損失,而這些損失對于移動終端設(shè)備來說,意義重大。而對于像Java這樣的編譯文件,與傳統(tǒng)的編譯語言可媲美,則不存在這樣的問題。如Flash,Curl和Silverlight,也是使用它們各自的插件來運行已編譯的文件。l 腳本下載:RIA不需要普通意義上的“安裝”過程,但它的客戶端智能(即客戶端引擎)卻需要從服務(wù)器端獲取,盡管過程是自動的,但也需要下載至少一次。依據(jù)所需的文件的大小和類型,腳本的下載時間也許會很長。RIA的開發(fā)人員可以通過壓縮技術(shù)或?qū)⑾螺d時間分部在一個程序的多個頁面中來減少用戶的等待時間; l 完整性的丟失: 若程序建立在X/HTML的基礎(chǔ)上,則容易發(fā)生兩者目標的沖突,因為程序的目標是控制功能和表現(xiàn),而X/HTML的目標是為達到標準化而放棄功能和表現(xiàn)。DOM為X/HTML提供了創(chuàng)建RIA的可能性,但是卻無法保證絕對正確的功能。因為RIA的用戶可以調(diào)整程序的基礎(chǔ)結(jié)構(gòu)并重寫功能和表現(xiàn),而這樣可能會引起在客戶端的運行錯誤。當然,新近出現(xiàn)的RIA技術(shù)可以通過限制客戶端修改資源的權(quán)限來減少這樣的問題。(本機運行的程序則不會出現(xiàn)這樣的問題,因為這種程序?qū)λ兴玫降馁Y源都作了定義。)l 對于搜索引擎不可見:搜索引擎可能無法檢索到程序中的文本內(nèi)容。Microsoft Silverlight引入的控制矢量圖形的XAML文件則從某方面解決了這個問題,寫入XAML的文檔對于搜索引擎是可見的,但是由代碼生成的動態(tài)控件中的文檔,盡管也是使用XAML語言,但卻無法被搜索到。l 依賴于網(wǎng)絡(luò)連接:盡管理想中的代替C/S結(jié)構(gòu)的網(wǎng)絡(luò)程序可以讓人在任何地方都能聯(lián)網(wǎng)使用,而離線使用的RIA程序仍舊需要特殊的平臺,如Adobe AIR,Google gears。l 可使用性:RIA存在多個網(wǎng)絡(luò)可用性的問題,而其中最為人所知的是屏幕閱讀器從HTML中的JavaScript中讀取動態(tài)變化需要相當長的一段時間。l 無部署:除了Adobe AIR技術(shù)之外,幾乎所有的RIA都不像C/S程序那樣擁有部署。軟件開發(fā)的復雜度:RIA技術(shù)的出現(xiàn)同時引入了網(wǎng)絡(luò)應(yīng)用程序開發(fā)上的復雜性。傳統(tǒng)的Web程序的建立只需使用標準的HTML,擁有相對簡單的軟件體系結(jié)構(gòu),構(gòu)建時也只需使用有限的開發(fā)模式,更容易設(shè)計和操作。而對于要開發(fā)RIA的個人或企業(yè),他們則面臨著更為復雜的設(shè)計,測試,測量和支持。使用RIA技術(shù)面臨著幾個新的服務(wù)層級管理(Service Level Management,SLM)問題,而這些都是至今還未解決的。SLM旨在減少對于程序開發(fā)者的關(guān)注,從其誕生以來鮮有人問津,但對于Web程序的網(wǎng)絡(luò)傳輸至關(guān)重要。RIA程序結(jié)構(gòu)的復雜性2表現(xiàn)在以下幾個方面:l 越來越大的復雜度使得開發(fā)過程越來越艱難:將代碼轉(zhuǎn)移到客戶端的方法給與了程序設(shè)計者和開發(fā)者更大的想象空間。但這也使得開發(fā)過程變得艱難,增加了可能出現(xiàn)的bug的數(shù)量,使得軟件的測試工作相應(yīng)變得復雜,而這些復雜性延長了軟件的開發(fā)過程。在使用Web程序框架的過程中可以中和RIA這方面的問題,但是持續(xù)增長的軟件解決方案復雜性同時也增加了軟件測試的復雜度,即增加了需要測試的用例的數(shù)量。而未經(jīng)完整測試的程序在質(zhì)量和可信度上都會大打折扣。當然,同樣的懷疑也存在于其他的技術(shù)中。比如19世紀80年代蘋果公司和微軟公司分別發(fā)布GUI時,甚至是福特公司宣布T模型時,都存在過這樣的疑問。不過,人類具有解決困難的天性,若是幾十年內(nèi)解決不了,百年之后也必定能夠解決。l RIA破壞了網(wǎng)頁程序的標準化:傳統(tǒng)的Web程序是一組連續(xù)的Web網(wǎng)頁,每一頁都需要一個下載,由HTTP的GET功能獲取。這樣的模型可以被稱之為網(wǎng)頁標準化。而RIA為了達到更好的交互性用戶界面,通過與Server的異步傳輸破壞了這種模型。在RIA中,為了提前取得數(shù)據(jù),而使下載頁面所需要的時間與用戶所需求的資源的真實相應(yīng)時間不符。為了取得用戶與程序交互的真實時間,必須使用新型的測試技術(shù)。而這樣的技術(shù)還未出現(xiàn),所以RIA的開發(fā)者不得不為SLM提供相應(yīng)的代碼來測試交互時間。l 異步通訊使得問題的隔離變得困難:自相矛盾的是,為了提升程序的交互性,異步通訊使得程序的測試,理解,報告和管理的交互性變?nèi)?。一些RIA從第一張頁面開始后便不需要再使用HTTP的GET功能,通過異步傳輸來初始化和下載其后的所有頁面。一些RIA的客戶端引擎被設(shè)計為一直不斷的下載內(nèi)容來更新界面,或者服務(wù)器會一直不停的向客戶端瀏覽器發(fā)送內(nèi)容更新。這樣一來,所謂的頁面下載就不再“可控制”,而這樣的程序則是無法刷新的。這些復雜度使得程序的測試更加困難,對于子程序響應(yīng)時間的測試也無法完成,而這一點對問題隔離和服務(wù)層級管理相當重要。現(xiàn)有的一些Web程序測試工具也只會將這樣的程序看作單一頁面,或不相關(guān)的一組服務(wù)器活動,而這兩者都無法真實表現(xiàn)這一層級程序的活動。l 客戶端引擎使得真實響應(yīng)時間無法測量:對于傳統(tǒng)的網(wǎng)絡(luò)程序,測量軟件會安裝在客戶端或靠近服務(wù)器的某臺機器上,以測量TCP和HTTP級別的網(wǎng)絡(luò)通訊量。由于這些協(xié)議的同步性且可預測,一個包探測器就可以閱讀和翻譯包級別的數(shù)據(jù),然后通過跟蹤HTTP消息和TCP包的相應(yīng)時間來推測用戶的體驗響應(yīng)時間。但是RIA體系結(jié)構(gòu)降低了這種包探測性的功能,因為客戶端引擎打破了用戶和服務(wù)器的通訊,將其一分為二。這里劃分后的兩個通訊循環(huán)都很重要,因為任意一個都可以單獨使用,而兩者之間的交互構(gòu)成了程序的各種功能。但是這樣的交互完全依靠設(shè)計,無法由任何測量工具來推測。所以,RIA最為完成的測量工具都只能通過安裝在客戶端的工具來觀察者兩個通訊循環(huán)。2.4 RIA的發(fā)展現(xiàn)狀RIA的發(fā)展尚處于早期階段,用戶和開發(fā)者都還沒有完全的接受這樣技術(shù)。在其發(fā)展過程中,仍舊存在如下的限制急需解決:l 瀏覽器的兼容性問題:很多RIA都需要借助現(xiàn)代的瀏覽器來運行,高級的JavaScript必須跟RIA一同運行在允許執(zhí)行XMLHTTPRequest的客戶端瀏覽器交流中,且需要DOM Scripting和高級CSS技術(shù)的支持。l 網(wǎng)絡(luò)標準:不同的瀏覽器使得開發(fā)跨瀏覽器的RIA變得復雜,而自從Java 1.1過后的Java平臺的通用性變得越來越好,使用Java applet開發(fā)的RIA也取得了同樣的的通用性。l 開發(fā)工具:像諸如Ajax Frameworks,Curl,Adobe Flex和微軟公司Silverlight等為開發(fā)RIA提供了完整的開發(fā)環(huán)境。l 可使用性:附加的交互性可能會需要特定的技術(shù)支持,而使用這些技術(shù)會帶來程序可用性的限制。l 用戶適應(yīng)性:一些已經(jīng)適應(yīng)了標準網(wǎng)絡(luò)程序的用戶也許會對一些瀏覽器功能不適應(yīng),比如“Back”操作的效果會與傳統(tǒng)網(wǎng)絡(luò)程序大相徑庭。2.5 開發(fā)RIA的各種技術(shù)Adobe Flash,Adobe Flex和Adobe AIRAdobe Flash屬于開發(fā)RIA的一種特殊技術(shù),該技術(shù)支持跨平臺,能夠開發(fā)功能較強的程序界面。Adobe Flex基于XML語言,提供了通過編譯MXML開發(fā)用戶界面的框架。Adobe Flex開發(fā)的框架文件被編譯為SWF文件,運行于Adobe Flash Player中。Adobe公司同時發(fā)布了Adobe AIR(Adobe Integrated Runtime),是獨立于操作系統(tǒng)的一個運行時平臺。Adobe AIR允許Flash Player和Ajax程序安裝/部署在用戶的電腦之中,類似于傳統(tǒng)的桌面應(yīng)用程序。BackbaseBackbase是一種基于Ajax的RIA框架,用于開發(fā)基于各種標準的RIA??蛻舳诉\行一個普通的瀏覽器,通過使用Java,PHP,.Net,Perl或XML/XSLT技術(shù)以結(jié)合現(xiàn)有的表現(xiàn)層。Backbase Visual Ajax Builder是一種WYSIWYG可視化RIA編輯器,可用性等同于Eclipse插件。Backbase提供了JSP版本使得RIA的開發(fā)能夠符合JSF(Java Server Faces)標準。CurlCurl誕生于19世界90年代的MIT,最初是作為一項研發(fā)項目,其商用價值由Curl公司開發(fā),于2000年發(fā)布了第一個版本。現(xiàn)今發(fā)布的最新版本為6.0,可用于Windows,Linux,和Mac系統(tǒng)上。Curl開發(fā)不需要特定的服務(wù)器端構(gòu)件,任意服務(wù)器都可使用。Curl提供了一組豐富的特性,但又相對易于使用,它允許不同背景的開發(fā)者來開發(fā)程序的不同層級,如從簡單的類似于HTML格式的通用語言,到復雜的基于對象的編程。免費的Curl插件大小為10MB,寬帶用戶可以很方便的下載使用。其插件式的體系結(jié)構(gòu)優(yōu)勢表現(xiàn)在,Curl applets可在任何平臺,任何瀏覽器中以相同的方式運行,當然也不排除一些瀏覽器提供了特殊的RIA功能。為了保證運行速度,Curl applets被編譯成機器語言,而各種各樣的緩存技術(shù)也加快了程序的加載速度。在非商業(yè)用途,以及某些商業(yè)用途中,Curl的使用是免費的,有償?shù)钠髽I(yè)級的開發(fā)包提供了附加的企業(yè)級開發(fā)功能。Curl支持開發(fā)大型復雜軟件的軟件工程,且與其他技術(shù)相比,使用了相對少量的代碼。有關(guān)比較測試證明,使用Curl開發(fā)的程序所用到的代碼是使用Adobe Flex和Ajax開發(fā)相同程序所需代碼的三分之一。Curl在很多年前就已經(jīng)擁有了所謂“分離程序”的特性,即像Adobe AIR那樣,可以瀏覽器窗口中獨立運行,支持離線使用。事實上,開發(fā)Curl使用的Curl IDE便是用Curl技術(shù)本身構(gòu)建的。Google的GWT Framework由Google于2006年發(fā)布的Google Web Toolkit,也稱為GWT,允許開發(fā)和測試使用JavaScript和Ajax編寫的RIA。GWT編程用例圍繞著使用Java邏輯來編寫用戶界面,等同于Swing或AWT模型,然后使用GWT編譯器將該邏輯翻譯成跨瀏覽器的JavaScript。由于是專門為Java開發(fā)者設(shè)計的,GWT可以使用現(xiàn)有的工具如Eclipse來進行Java編程,更新,編譯和單元測試,而不需要JavaScript或瀏覽器DOM不規(guī)則性的特殊知識,當然,如有必要,手寫的JavaScript也可在GWT中運行。Java AppletsJava小程序運行于標準的HTML頁面,在頁面被打開之后自動運行,在其設(shè)計的區(qū)域之內(nèi),其功能可以直接表現(xiàn)在屏幕上,其功效就像音響,鍵盤和鼠標 那樣,在網(wǎng)絡(luò)上提供實時的交流。Java程序基于Java的RIA允許瀏覽器內(nèi)部打開程序,同時也提供了使用集成于桌面的Java Web Start方式打開。Java RIA的優(yōu)勢在于,它可以使用由Java平臺提供的全部特性,例如更為豐富的編程功能,2D和3D圖形技術(shù),離線功能等。Java技術(shù)早已被廣泛使用,在商業(yè)和開源方面都擁有大量可使用的平臺類庫,在任何系統(tǒng)下都有相應(yīng)的支持。Java支持的RIA,最大的弱點便是對于多媒體的支持,Java 6 Updates N在這方面有一些解決方案,如對于開始時間和下載大小的控制,而且Sun公司預計在2008年第二個季度發(fā)布的更新中,會對多媒體做更多的支持?,F(xiàn)有的支持Java RIA的框架包括基于XML框架的Swixml,Canoos,UltraLightClient等。JavaFXSun公司的Microsystems已經(jīng)發(fā)布了JavaFX,是一組基于Java的專用于提供一致性體驗的多媒體技術(shù),包括桌面應(yīng)用程序,網(wǎng)絡(luò)程序,移動設(shè)備,和DB播放器。JavaFX平臺包含了JavaFX腳本和JavaFX Mobile。作為Sun公司重搶占RIA市場的重要項目,JavaFX腳本允許使用類似于SVG的句法快速開發(fā)2D接口。Sun公司也準備將JavaFX腳本作為開源項目,但JavaFX Mobile將會用于商業(yè)用途。JavaScript/Ajax第一個允許在客戶端使用代碼的技術(shù)便是JavaScript,盡管在一開始其功能相當局限,但結(jié)合了不同層級和其他DHTML開發(fā),JavaScript也使得RIA的開發(fā)成為可能。Ajax是這種技術(shù)結(jié)合的一個新的形勢,被最廣泛的運用于Google的各個項目中,如Gmail和Google Maps。但是,靠這樣的框架建立大型程序相當困難,因為需要使用多項技術(shù)相互交流,且瀏覽器需要支持每一種技術(shù)的運行。為了解決這些問題,眾多的開源或商用開發(fā)都已投入實踐測試中。Microsoft ActiveX在HTML中嵌入ActiveX控件后,便具有了相當強大的開發(fā)RIA功能。但是ActiveX只能運行于Internet Explorer中,不具備跨瀏覽器的特性。且由于ActiveX不在沙盒中運行,極為容易受到病毒和惡意軟件的侵襲?,F(xiàn)今的Adobe Flash Player都是作為Internet Explorer的ActiveX控件安裝于Windows環(huán)境中,而在跨平臺的Netscape瀏覽器中則作為插件使用。在Internet Explorer與其他瀏覽器達成標準之后,ActiveX技術(shù)可能成為建立RIA最優(yōu)先的選擇。Microsoft SilverlightMicrosoft Silverlight,也是Windows Presentation Foundation(WPF)的一個功能子集,是Microsoft公司發(fā)布的專門用來開發(fā)RIA的工具。這里是本文最終選擇用于開發(fā)實驗用例的技術(shù)。與WPF相同,Silverlight使用XAML來開發(fā)界面,因此有.NET或XAML開發(fā)經(jīng)驗的開發(fā)者都會發(fā)現(xiàn)Silverlight開發(fā)過程的熟悉性,也因此可以吸引當前大部分.NET開發(fā)者。為了運行Silverlight程序,客戶端必須安裝一個Silverlight運行時插件,而這個插件的大小約為2MB左右,十分便捷。至今為止,Silverlight的插件可以運行于Windows和Mac OS X系統(tǒng)瀏覽器之上,實現(xiàn)了部分的跨瀏覽器,跨平臺性。而一個第三方開源插件,稱為moonlight,則可以實現(xiàn)在Linux上運行Silverlight創(chuàng)建的RIA。且Microsoft公司也承諾將會拓寬所支持的客戶端范圍。在今年Las Vegas的MIX08會議上,Microsoft發(fā)布了Silverlight 2.0的測試版本,運行在Nokia S60平臺上,同時發(fā)布的也包括Microsoft Windows Mobile 6。Silverlight 2.0 Beta也是本次系統(tǒng)所使用的版本,而正式版將于2008年8月推出。Mozilla PrismMozilla Prism用于集成Web程序和桌面應(yīng)用程序,允許通過桌面應(yīng)用程序制定特定瀏覽器來運行Web程序。OpenLaszloOpenLaszlo是由Laszlo System公司開發(fā)的一款開源RIA框架。OpenLaszlo的服務(wù)器將由LZX語言(一款結(jié)合XML和JavaScript的語言)編寫的程序編譯為DHTML(現(xiàn)稱為Ajax)或Adobe Flash位代碼,同時也支持Flash7和Flash8。該服務(wù)器技術(shù)曾屬于專利項目,在2004年8月是通過Common Public License被開源。OpenLazlo是唯一一款能夠?qū)⑼淮a編譯成為兩種運行語言的RIA工具。REBOL 2.6和Smalltalk的Seaside與Java開發(fā)的RIA可媲美的技術(shù)還包括REBOL和Smalltalk編程語言。REBOL不需要瀏覽器,而Smalltalk的Seaside更為豐富的網(wǎng)絡(luò)體驗。兩種技術(shù)與Java和JVM相比,發(fā)展程度都還不夠。2.6 本章小結(jié)RIA是為了解決Web Application各種局限而誕生的,它結(jié)合了Client/Server結(jié)構(gòu)的許多優(yōu)點,也是軟件產(chǎn)業(yè)追求更高效,更加推崇用于交互體驗的一種象征。盡管RIA的發(fā)展還不完善,需要我輩不懈的努力使之發(fā)展壯大,但相信RIA在各大軟件龍頭企業(yè)的帶動下,一定會有更為廣闊的開發(fā)前景。在下面的章節(jié)中,我們將選取Microsoft Silverlight作為重點,闡述其發(fā)展歷史,優(yōu)缺點并使用該技術(shù)開發(fā)了一個名為Pancake English的英語學習網(wǎng)站作為實例,來探討該技術(shù)的開發(fā)過程以及發(fā)展空間。第三章 Microsoft Silverlight表1 Silverlight發(fā)布信息Microsoft Silverlight開發(fā)商:Microsoft下一版本預計發(fā)布時間:2008年8月上一版本發(fā)布時間:2008年3月5日 2.0測試版開發(fā)語言:C+與C#混合開發(fā)運行系統(tǒng):Windows,MacMicrosoft Silverlight是一種網(wǎng)絡(luò)瀏覽器插件,它為RIA提供了諸如動畫,矢量圖型和音頻視頻播放的支持。作為Microsoft公司搶占RIA市場重拳出擊的項目,Silverlight需要與Adobe Flash,Adobe Flex,Adobe Shockwave,JavaFX和Apple Quick Time競爭。其2.0版本更是引進了更加強大的交互性,并提供了對于.NET語言和開發(fā)工具的支持。最初的Silverlight被稱為Windows Presentation Foundation/Everywhere(WPF/E),可以運行于Windows系統(tǒng)和Mac OS X操作系統(tǒng)上。對于移動設(shè)備,從Windows Mobile 6或Symbian(60系列)之后的手機,都將會支持Silverlight。一個名為Moonlight的第三方軟件如今也正在開發(fā)中,將會實現(xiàn)Silverlight在GNU/Linux上的支持。3.1 Silverlight概述與WPF相似,Silverlight提供了圖像系統(tǒng)的保留模型,可以集成多媒體,圖像,動畫和各個運行之間的交互。Silverlight使用XAML語言,同時可以使用JavaScript進行腳本編程,其中XAML語言提供了矢量圖型和動畫的各種數(shù)據(jù)。相比于Flash無法編譯的文檔,Silverlight的文字內(nèi)容更容易被搜索和定位,但必須在XAML文檔中定義。(若是動態(tài)生成的控件中的文字,則無法被搜索引擎識別)。Silverlight也可以用于開發(fā)Windows Vista系統(tǒng)中的邊欄功能。以下是一段XAML文檔的內(nèi)容:代碼段1 XAML范例該段代碼在一個Canvas對象上設(shè)置了一個文本框,這里Canvas等同于一塊畫布,開發(fā)者可以通過在其上添加各類控件來開發(fā)用戶界面。而在文本框TextBox中,有一個TextChanged的對象,指向一個后臺代碼的函數(shù),用于處理各種動態(tài)事件。XAML界面與后臺代碼的關(guān)聯(lián)也就表現(xiàn)在這里。Silverlight提供了對于所有瀏覽器上WMV,WMA和MP3文件格式的播放功能,且不需要Windows Media Player或是Windows Media Player ActiveX的支持。因為Windows Media Video 9屬于SMPTE VC-1的實現(xiàn),所以Silverlight也提供了對于VC-1的是的支持,但必須使用ASF格式的文件。而H.264格式的視頻是不為Silverlight所支持的。Silverlight可以使用DOM接口動態(tài)的加載XML內(nèi)容,并支持與Ajax技術(shù)交互。Silverlight提供了一個名為Downloader的對象,專門用于下載腳本,媒體內(nèi)容或其他程序所需要的數(shù)據(jù)。在2.0版本中,程序邏輯可以由任意.NET語言編寫,如VB和C#,而Ruby和Python等動態(tài)編程語言也可使用。3.2 Silverlight的兼容性表2 Silverlight的兼容性操作系統(tǒng):Windows Vista/2008IE 6 SP1不可用IE 6 SV1不可用IE71.0和2.0IE82.0Firefox/SeaMonkey/Mozilla1.0和2.0Safari通過NPAPI支持1.0和2.0Konqueror不可用Opera非官方操作系統(tǒng):Windows XP/2003/Home ServerIE 6 SP1不可用IE 6 SV11.0和2.0IE71.0和2.0IE82.0Firefox/SeaMonkey/Mozilla1.0和2.0Safari通過NPAPI支持1.0和2.0Konqueror不可用Opera非官方操作系統(tǒng):Windows 2000IE 6 SP12.0IE 6 SV1不可用IE7不可用IE8不可用Firefox/SeaMonkey/Mozilla不可用Safari通過NPAPI支持2.0Konqueror不可用Opera計劃操作系統(tǒng):Windows Mobile 6IE 6 SP11.0IE 6 SV1不可用IE7不可用IE8不可用Firefox/SeaMonkey/Mozilla不可用Safari不可用Konqueror不可用Opera不可用操作系統(tǒng):Mac OS 10.4/10.5 PowerPCIE 6 SP1不可用IE 6 SV1不可用IE7不可用IE8不可用Firefox/SeaMonkey/Mozilla1.0Safari1.0Konqueror不可用Opera計劃操作系統(tǒng):Mac OS 10.4/10.5 IntelIE 6 SP1不可用IE 6 SV1不可用IE7不可用IE8不可用Firefox/SeaMonkey/Mozilla1.0和2.0Safari1.0和2.0Konqueror不可用Opera計劃操作系統(tǒng):Linux x86-64(moonlight)IE 6 SP1不可用IE 6 SV1不可用IE7不可用IE8不可用Firefox/SeaMonkey/Mozilla計劃Safari不可用Konqueror計劃Opera計劃操作系統(tǒng):Linux x86(moonlight)IE 6 SP1不可用IE 6 SV1不可用IE7不可用IE8不可用Firefox/SeaMonkey/Mozilla計劃Safari不可用Konqueror計劃Opera計劃注釋:l Opera對于Silverlight的官方支持將正在建設(shè)中。非官方的支持現(xiàn)都采用黑客方法。l 在Linux系統(tǒng)中,程序功能由第三方軟件moonlight來實現(xiàn)。Moonlight將會為Linux的各種分布提供支持,對于Firefox,Konqueror和Opera的支持正在研發(fā)中l(wèi) Silverlight移動終端版本也將會發(fā)布
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 定金租賃合同
- 裝修合作協(xié)議合同
- 藥品經(jīng)營質(zhì)量保證協(xié)議書
- 本家具采購合同
- 小學六年級 分數(shù)加減乘除口算題
- 2025年重慶貨運從業(yè)資格考試題目及答案解析大全
- 2025年拉薩貨運從業(yè)資格證考試內(nèi)容
- 2024-2025學年高中化學專題3從礦物到基礎(chǔ)材料第三單元含硅礦物與信息材料學案含解析蘇教版必修1
- 2024-2025學年二年級數(shù)學上冊第四單元表內(nèi)除法一第7課時練習九1教案蘇教版
- 一年級上冊語文工作計劃
- 預應(yīng)力混凝土管樁(L21G404)
- Unit 2 Last weekend C Story time (教學設(shè)計)人教PEP版英語六年級下冊
- 2024年上海市普通高中學業(yè)水平等級性考試化學試卷(含答案)
- DZ∕T 0153-2014 物化探工程測量規(guī)范(正式版)
- 奧派直播電商仿真實訓軟件操作手冊
- 法學概論(第七版) 課件全套 谷春德 第1-7章 我國社會主義法的基本理論 - 國際法
- 2024年度-美團新騎手入門培訓
- 化妝品祛痘功效評價
- 中山醫(yī)院網(wǎng)上查詢報告
- 二年級下冊數(shù)學計算題400道及答案
- 語文新課標背景下單元整體教學:六下第4單元大單元設(shè)計
評論
0/150
提交評論