JavaScript庫,ICEfaces,Adobe公司的Flash,微軟Silverlight,現在還有HTML5,全球性的網路支配地位的競爭已經進入了嶄新的時代——一個富網絡應用(簡稱RIA,中文也有叫富互聯網應用)的時代。
本文目的是界定什麼是RIA,解釋為何網絡已經開始向RIA靠攏,探索今天已經存在的不同RIA框架,對每個框架作出一些優點和缺點的概述,並討論這些新技術在未來將是怎麼樣的生存態。
RIA是何物?
所謂RIA,或者說富網絡網應用,就是指可以像桌面程式一樣操作的網路應用。 在RIA冒出來之前,大多數的網路應用程式都是靜態的頁面建構的。
Sumo Paint 是一個基於Flash的RIA, 具有像Photoshop一樣的圖形編輯功能。
跟桌面應用程式不同,任何一個網頁的互動往往需要重新載入一個全新的頁面。而桌面應用程序,在另一方面,有很多更好的用戶互動性,因為所有處理都是在用戶的機器本身,所以能給以更加無縫的用戶體驗。
因此,軟體開發商開始問自己,“我們產品應該是一個桌面應用程式還是一個Web應用程式呢?”
這一直是一個公平的問題,因為這兩種類型的應用程式都有各自優點和缺點。
桌面應用程式具有流暢的用戶互動性,但軟體是售出去的,會遇到發布和更新的問題。
Web應用程序,另一方面,很容易從網上獲得,擺脫相關的軟體發布和更新的問題,但在用戶互動性體驗非常差。
因此,怎麼樣才能兩全其美呢?
RIA就是兩全其美。 RIA透過網路發布,有非常豐富的使用者互動。由於Ajax的出現,一個無需刷新就可以發送伺服器請求的網路應用程式的方法,新技術出現,加入了RIA的運動。
基於這些技術出現了一些框架,幫助開發人員建構和部署富網絡應用程序,如JavaScript庫,ICEfaces,Adobe Flash 4(Flex 3前身),微軟Silverlight,以及HTML5的。
讓我們來一個個探討RIA的框架。
網路應用的JavaScript函式庫
JavaScript函式庫,例如jQuery和MooTools 是第一批技術之一,可以真正的幫助部署流暢和互動的富網絡應用。它們提供透過槓桿客戶端腳本來處理前端介面功能的RIA框架。它們是一些基本的Javascript文件,由一些有用的,經過跨瀏覽器測試功能的整合。可以使用Ajax,以及處理普通的基於使用者驅動事件的交互,如顯示和隱藏內容。
目前最受歡迎的有jQuery(尤其是使用jQuery UI),MooTools,YIU(雅虎使用者介面庫),以及EXTJS。這些庫包括RIA元件,如網格,圖表和複雜的表單元素,以及處理Ajax的工具。最引人入勝的是,大部分網頁開發的JavaScript函式庫都是開源的。
如果你不想購買一個整合開發環境(IDE),但仍希望在自己的網站絢麗而專業的RIA功能,JavaScript庫是一個很不錯的選擇。
使用JavaScript庫的網站有Google,Digg,雅虎,亞馬遜,微軟,Twitter,以及Best Buy。
ICEfaces
ICEfaces是標準的JavaServer Faces(JSF)的框架的擴展,旨在去除方程式中的JavaScript從而簡化程式設計師的工作流程。換句話說,ICEfaces透過Java應用程式介面為你處理了所有的JavaScript / Ajax。透過刪除這些自訂JavaScript函數的複雜引入,大大簡化了創建富網絡應用的任務。
如果你的團隊主要成員是Java開發人員,或者如果你的網頁應用程式不需要其它ICEfaces沒有的複雜元件,又或者如果你的網頁應用程式是事件驅動的,那麼使用ICEfaces是很好的選擇。如果你的網路應用程式是事件驅動的,請確定你已經了解ICEfaces不提供真正的「伺服器推」技術的, HTML5, Flash Builder 4和Silverlight都支援的。不過,相應地ICEfaces使用長輪詢的方法來模擬伺服器推技術。
使用ICEfaces的網站有波音,美國航空暨太空總署,聯合太平洋公司,T - Mobile,以及美國銀行。
Adobe Flash Builder 4
Flash已經出現了很長一段時間,但用使用Flash來建構整個網路應用十分麻煩,直到Flex的引進,這是Flash的一個擴展,提供RIA網路元件。
Adobe Flash Builder 4最令人興奮的是它的跨平台和跨瀏覽器特性,允許程式在所有的作業系統和所有的瀏覽器上以相同的方式運作。相較於JavaScript,瀏覽器有不同的JavaScript引擎管理和處理的程式碼,而Adobe的Flash只有一個引擎,使用者透過Adobe Flash瀏覽器插件來安裝(通常的情況是他們有了)。
Flash Builder 4 應用程式之所以能如此,因為它們已經嵌入到HTML頁面,這意味著瀏覽器本身並沒有對應用程式的效能有什麼影響。這意味著你如果你樂意, 你還可以在IE6上運行最複雜的網頁應用程式。 (這當然簡單,因為Flash插件/引擎經常會更新,因此只是稍微依賴用戶插件的版本)。
這些應用通常是伴隨著伺服器端處理,例如一個Java後端處理,而且需要Flash Builder 4IDE做開發。
如果你的團隊主要是Java開發(因為搭配Java運作良好),或者你的應用程式使用事件驅動的架構,可以選擇Adobe Flash Builder 4。
使用Flash作為網頁應用程式的網站有Mint.com,Flickr和Hyundai。
Silverlight
Silverlight是基本上微軟版本的Adobe Flex /的Adobe Flash。現在已經獲得了一些吸引力,但似乎沒有達到的Adobe Flash的普及程度。
Silverlight應用程式明顯約束.NET的後端,因為它是微軟的產品。這意味著,你必須Silverlight /.NET 和Adobe Flex / [一些伺服器端腳本,例如PHP] 之間整合考量。
如果你的網頁應用需要複雜的圖形,或者如果你的團隊主要是.NET開發人員,又或者如果你的應用程式使用事件驅動的架構,那你可以選擇Silverlight。
使用Silverlight的網站,如Netflix。
HTML5
HTML5的是RIA運動中的最新發展。 HTML5,本質上是HTML4,JavaScript,CSS,Javascript程式碼庫以及Falsh的最優合併,利用API模型成為一個單一規格。 HTML5的是開放的技術,這意味著不會有單一的主管團體如Flash的Adobe或Silverlight的微軟。
由於HTML5規格還沒完成,IE9尚未發布,要建立產品級的網路應用,你還需要等待一點點時間。
目前,所有主要瀏覽器除了IE8都支援HTML5。由於IE8的瀏覽器市場佔據了主要部分,在IE9發布之前,HTML5實在難以成為主流。
一旦HTML5得到廣泛支持,如果你不想購買和學習的IDE(像Flex和Silverlight框架所必需的),如果你的應用程式使用事件驅動架構,或者如果你喜歡使用內建的HTML功能和JavaScript API 功能而不是使用第三方JavaScript函式庫,那麼使用HTML是很好的選擇。
儘管HTML5中可以很好地處理圖形,但使用Flash和Silverlight來處理複雜圖形和動畫在目前仍然容易/更快的選擇。
HTML5應用程式是網路的未來嗎?不完全是。只要那些創意和創新的網路開發人員還在不斷的去創造一些特別的東西,就會總是出現一些新技術可以創造出一些HTML5或其他任何網路技術無法完成的神奇的東西。
JavaScript庫,ICEfaces,Flash,Silverlight和HTML5的存在首要原因是其創造力和創新性。未來的網路將會由許多共存的技術組成,就像現在一樣。
來源: sixrevisions.com
編譯: MazingTech
感謝MazingTech的投稿