富聯(lián)網(wǎng)應(yīng)用兩全其美 技術(shù)共存的時代
JavaScript庫,ICEfaces,Adobe Flash,微軟Silverlight,現(xiàn)在還有HTML 5,全球性的網(wǎng)絡(luò)支配地位的競爭已經(jīng)進(jìn)入了嶄新的時代——一個富網(wǎng)絡(luò)應(yīng)用(簡稱RIA,中文也有叫富互聯(lián)網(wǎng)應(yīng)用)的時代。
51CTO推薦閱讀:RIA 一個擁有三種不同哲學(xué)理念的Web程序
RIA是何物?
所謂RIA,或者說富網(wǎng)絡(luò)網(wǎng)應(yīng)用,就是指可以像桌面程序一樣操作的網(wǎng)絡(luò)應(yīng)用。在RIA冒出來之前,大多數(shù)的網(wǎng)絡(luò)應(yīng)用都是靜態(tài)的頁面構(gòu)建的。SumoPaint是一個基于Flash的RIA,具有像Photoshop一樣的圖形編輯功能。
跟桌面應(yīng)用程序不同,任何一個網(wǎng)頁的互動往往需要重新加載一個全新的頁面。而桌面應(yīng)用程序,在另一方面,有很多更好的用戶交互性,因為所有處理都是在用戶的機(jī)器本身,所以能給以更加無縫的用戶體驗。
因此,軟件開發(fā)商開始問自己,“我們產(chǎn)品應(yīng)該是一個桌面應(yīng)用程序還是一個Web應(yīng)用程序呢?”這一直是一個公平的問題,因為這兩種類型的應(yīng)用程序都具有各自優(yōu)點和缺點。
桌面應(yīng)用程序具有流暢的用戶交互性,但軟件是售出去的,會遇到發(fā)布和更新的問題。Web應(yīng)用程序,另一方面,很容易從網(wǎng)上獲得,擺脫相關(guān)的軟件發(fā)布和更新的問題,但在用戶交互性體驗非常差。因此,怎么樣才能兩全其美呢?
RIA就是兩全其美。RIA通過網(wǎng)絡(luò)發(fā)布,有非常豐富的用戶交互。得益于Ajax的出現(xiàn),一個無需刷新就可以發(fā)送服務(wù)器請求的網(wǎng)絡(luò)應(yīng)用的方法,新技術(shù)出現(xiàn),加入了RIA的運動。
基于這些技術(shù)出現(xiàn)了一些框架,幫助開發(fā)人員構(gòu)建和部署富網(wǎng)絡(luò)應(yīng)用程序,如JavaScript庫,ICEfaces,AdobeFlash4(Flex3前身),微軟Silverlight,以及HTML 5的,讓我們來一個個探討RIA的框架。
網(wǎng)絡(luò)應(yīng)用的JavaScript庫
JavaScript庫,例如jQuery和MooTools是首批技術(shù)之一,可以真正的幫助部署流暢和互動的富網(wǎng)絡(luò)應(yīng)用。它們提供通過杠桿客戶端腳本來處理前端接口功能的RIA框架。它們是一些基本的Javascript文件,由一些有用的,經(jīng)過跨瀏覽器測試功能的集成。可以使用Ajax,以及處理普通的基于用戶驅(qū)動事件的交互,如顯示和隱藏內(nèi)容。
目前最流行的有jQuery(尤其是使用jQueryUI),MooTools,YIU(雅虎用戶界面庫),以及EXTJS。這些庫包括RIA組件,如網(wǎng)格,圖表和復(fù)雜的表單元素,以及處理Ajax的工具。最引人入勝的是,大部分網(wǎng)絡(luò)開發(fā)的JavaScript庫都是開源的。
如果你不想購買一個集成開發(fā)環(huán)境(IDE),但仍希望在自己的網(wǎng)站絢麗而專業(yè)的RIA功能,JavaScript庫是一個很不錯的選擇。使用JavaScript庫的網(wǎng)站有Google,Digg,雅虎,亞馬遜,微軟,Twitter,以及BestBuy。
#p#
ICEfaces
ICEfaces是標(biāo)準(zhǔn)的JavaServerFaces(JSF)的框架的擴(kuò)展,旨在去除方程中的JavaScript從而簡化程序員的工作流程。換句話說,ICEfaces通過Java應(yīng)用接口為你處理了所有的JavaScript/Ajax。通過刪除這些自定義JavaScript函數(shù)的復(fù)雜引入,大大簡化了創(chuàng)建富網(wǎng)絡(luò)應(yīng)用的任務(wù)。
如果你的團(tuán)隊主要成員是Java開發(fā)人員,或者如果你的網(wǎng)絡(luò)應(yīng)用程序不需要其它ICEfaces沒有的復(fù)雜組件,又或者如果你的網(wǎng)絡(luò)應(yīng)用程序是事件驅(qū)動的,那么使用ICEfaces是很好的選擇。如果你的網(wǎng)路應(yīng)用是事件驅(qū)動的,請確定你已經(jīng)了解ICEfaces不提供真正的“服務(wù)器推”技術(shù)的,HTML 5,F(xiàn)lash Builder 4和Silverlight都支持的。不過,相應(yīng)地ICEfaces使用長輪詢的方法來模擬服務(wù)器推技術(shù)。
使用ICEfaces的網(wǎng)站有波音,美國航空航天局,聯(lián)合太平洋公司,T-Mobile,以及美國銀行。
Adobe Flash Builder 4
Flash已經(jīng)出現(xiàn)了很長一段時間,但是用使用Flash來構(gòu)建整個網(wǎng)絡(luò)應(yīng)用十分麻煩,直到Flex的引進(jìn),這是Flash的一個擴(kuò)展,提供RIA網(wǎng)絡(luò)組件。
Adobe Flash Builder 4最令人興奮的是它的跨平臺和跨瀏覽器特性,允許程序在所有的操作系統(tǒng)和所有的瀏覽器上以同樣的方式運行。相比于JavaScript,瀏覽器有不同的JavaScript引擎管理和處理的代碼,而Adobe的Flash只有一個引擎,用戶通過AdobeFlash瀏覽器插件來安裝(通常的情況是他們有了)。
Flash Builder 4應(yīng)用之所以能如此,因為它們已經(jīng)嵌入到HTML頁面,這意味著瀏覽器本身并沒有對應(yīng)用程序的性能有什么影響。這意味著你如果你樂意,你還可以在IE6上運行最復(fù)雜的網(wǎng)絡(luò)應(yīng)用程序。(這當(dāng)然簡單,因為Flash插件/引擎經(jīng)常會更新,因此只是稍微依賴于用戶插件的版本)。
這些應(yīng)用通常是伴隨著服務(wù)器端處理,比如一個Java后端處理,而且需要Flash Builder 4 IDE做開發(fā)。如果你的團(tuán)隊主要是Java開發(fā)(因為搭配Java運作良好),或者你的應(yīng)用程序使用事件驅(qū)動的構(gòu)架,可以選擇Adobe Flash Builder 4。使用Flash作為網(wǎng)絡(luò)應(yīng)用程序的網(wǎng)站有Mint.com,F(xiàn)lickr和Hyundai。
Silverlight
Silverlight是基本上微軟版本的Adobe Flex/的Adobe Flash。現(xiàn)在已獲得了一些吸引力,但Silverlight似乎并沒有達(dá)到的Adobe Flash的普及程度。Silverlight應(yīng)用程序明顯約束于.NET的后端,因為它是微軟的產(chǎn)品。這意味著,你不得不Silverlight/.NET和Adobe Flex/[一些服務(wù)器端腳本,如PHP]之間整合考慮。
如果你的網(wǎng)絡(luò)應(yīng)用需要復(fù)雜的圖形,或者如果你的團(tuán)隊主要是.NET開發(fā)人員,又或者如果你的應(yīng)用程序使用事件驅(qū)動的架構(gòu),那你可以選擇Silverlight。
使用Silverlight的網(wǎng)站,如Netflix。
HTML 5
HTML 5的是RIA運動中的最新發(fā)展。HTML 5,在本質(zhì)上是HTML4,JavaScript,CSS,Javascript代碼庫以及Falsh的最優(yōu)合并,利用API模型成為一個單一規(guī)范。HTML 5的是一個開放的技術(shù),這意味著不會有單一的主管團(tuán)體如Flash的Adobe或Silverlight的微軟。
由于HTML 5規(guī)范還沒有完成,IE9尚未發(fā)布,要建立產(chǎn)品級的網(wǎng)絡(luò)應(yīng)用,你還需要等待一點點時間。目前,所有主要瀏覽器除了IE8都支持HTML 5。由于IE8的瀏覽器市場占據(jù)了主要部分,在IE9發(fā)布之前,HTML 5實在難以成為主流。
一旦HTML 5得到廣泛支持,如果你不想購買和學(xué)習(xí)的IDE(像Flex和Silverlight框架所必需的),如果你的應(yīng)用程序使用事件驅(qū)動架構(gòu),或者如果你喜歡使用內(nèi)置的HTML功能和JavaScriptAPI功能而不是使用第三方JavaScript庫,那么使用HTML是很好的選擇。盡管HTML 5中可以很好地處理圖形,但是使用Flash和Silverlight來處理復(fù)雜圖形和動畫在目前仍然容易/更快的選擇。
RIA的未來
HTML 5應(yīng)用程序是互聯(lián)網(wǎng)的未來嗎?不完全是。只要那些創(chuàng)造性和創(chuàng)新性的網(wǎng)絡(luò)開發(fā)人員還在不斷的去創(chuàng)造一些特別的東西,就會總是出現(xiàn)一些新技術(shù)可以造出些HTML 5或其他任何網(wǎng)絡(luò)技術(shù)無法完成的神奇的東西。
JavaScript庫,ICEfaces,F(xiàn)lash,Silverlight和HTML 5的存在首要原因是其創(chuàng)造力和創(chuàng)新性。未來的網(wǎng)絡(luò)將會由許多共存的技術(shù)組成,就像現(xiàn)在。
【編輯推薦】