首頁  >  文章  >  後端開發  >  幾種RIA技術介紹

幾種RIA技術介紹

巴扎黑
巴扎黑原創
2017-08-03 13:19:282793瀏覽



Rich Internet Application(富互聯網應用程序,簡稱RIA),一種全新的Web應用程式架構,它結合了桌面軟體良好的用戶體驗和web應用程式易部署的優點,很快就獲得了企業的青睞。近年來,各大開發平台供應商相繼推出新的技術來支援RIA的開發,從Ajax到SilverLight,從Apollo和AIR到Flex和Flash,從JavaFX到Laszlo,各種技術粉墨登台,以期成為大家關注的焦點。

然而,身為應用系統開發廠商,開發團隊與開發者,在RIA大潮中,選擇什麼樣的技術,讓自己更好地建構RIA系統,成為我們需要仔細考慮的問題。

 

AJAX

Ajax其實是用新的技巧把一些古老技術結合在一起使用,從而讓WebApplication使用者介面的互動性得到極大的提升。

在Ajax中,XMLHttpRequest是核心,是Ajax強大功能的來源,Ajax和傳統的Web介面技術區別也就在此。透過XMLHttpRequest,就把瀏覽器中的HTML(DHTML)和伺服器端的資料分離開。利用JavaScript來操縱客戶端存取伺服器取得數據,並修改HTML結構,以顯示資料。使用Ajax的經典例子就是Gmail和GoogleMaps了。

 

Flash/Flex/Laszlo

Flex是為滿足企業級應用而推出的應用程式架構。 Flex提供基於標準的、聲明性的程式設計方法和流程,用於開發和部署豐富客戶端應用程式的表示層。 Flex開發者使用直覺的、基於XML的MXML來定義豐富的使用者介面,利用ActionScript(一種物件導向的腳本語言)來編寫程式邏輯。

該語言由 Flex伺服器翻譯成SWF格式的客戶端應用程序,在FlashPlayer中運行。目前Flex已經發表了Flex 3.0 beta。

Laszlo是一個開源的RIA開發環境。使用Laszlo平台時,開發者只需編寫名為LZX的描述語言(其中整合了XML和JavaScript),運行在J2EE應用伺服器上的Laszlo平台會將其編譯成swf格式的檔案並傳輸給客戶端展示。在未來的計畫中,Laszlo還可以將LZX編譯成Java或.NET本機程式碼,從而大大提高運作效率。在最新發布的Laszlo4.0中,開發人員可以選擇Laszlo最終顯示為Flash還是DHTML。

Flex和Laszlo從運作位置來看,他們都屬於伺服器端技術,和大家熟悉的ASP,ASP.NET,JSP和PHP的運作機制類似。只是ASP等動態網頁技術,就是把介面元素解析為HTML傳送給客戶端的瀏覽器來展現;而Flex和Laszlo是把介面元素解析為二進位的swf文件,執行到瀏覽器中的FlashPlayer插件裡。

 

AIR

AIR之前稱為Apollo,Adobe官方的解釋為:是一個跨作業系統的運作環境,允許開發人員使用先前Web開發的技能來創建RichInternet Application,並部署到桌面上運行。整體來說,AIR就是Adobe把現有的技術,如:Flash、PDF、JavaScript、XML和ActionScript整合在一起,並提供一個客戶端運行環境,可以讓開發人員開發可以存取Internet資源的桌面程式。本質上,AIR就是讓Flash(或Ajax)脫離瀏覽器運行的一個桌面應用程式運行環境。

要開發AIR應用程序,也很簡單,有兩種技術可供選擇:一,使用HTML+JS技術;二,使用Flex+Flash。可使用的開發工具也就是開發上述技術的工具,如:flexbuilder、 flash IDE、eclipse、notepad 等等。

使用AIR來開發RIA的優缺點和Flex等類似,最大的好處就是:可以脫離瀏覽器成為一個獨立的桌面程式而運行,並且不受瀏覽器安全限制,可以有更多的權限存取本機資源。

目前,AIR還在測試階段,很多功能還不完善,相信等正式版發布後,會有更多功能值得我們期待。

WPF

一直以來,應用程式的使用者介面都可以用不同的技術開發,從MFC到VB,從WindowsForms到HTML+JS。對於開發人員來說,這就需要針對不同的應用程式類型,使用不同介面開發技術。隨著Flash等多媒體2D或3D介面的出現,選擇也越來越多。如果想使用一種技術就能開發各類應用程式的介面,這將是一個巨大的挑戰。

Windows Presentation Foundation(WPF),最初代號為“Avalon”,目前作為 .NET 3.0的一個元件發布,就是為解決這一難題而設計。

WPF為桌面用戶端和瀏覽器用戶端提供了通用基礎,大大簡化了二者的應用程式開發工作。 WPF採用更現代的方法,支援影片、動畫、2D或3D圖形以及各種類型的文檔,從而可以讓使用者以全新的方式處理資訊。此外,WPF也為桌面用戶端和瀏覽器用戶端提供了通用基礎,大大簡化了二者的應用程式開發工作。

作為微軟的下一代介面技術,WPF的最大特點就是把介面的佈局描述和介面邏輯程式碼分開。 WPF透過XAML(擴展應用程式標記語言,一種基於XML的語言,允許以聲明方式指定使用者介面,而非程式碼)把專業介面設計人員的工作和專業的程式開發人員的工作分開,讓他們更容易協作,以開發出介面炫麗,功能強大的應用程式。

同時微軟為不同的工作提供了不同的工具,針對介面設計人員,推出Expression Studio;針對程式開發人員,推出VisualStudio 2008(預計今年底發布RTM)。

透過提供更強大的圖形支援功能,WPF 使得一系列資料視覺化成為可能,而這依靠Windows Forms 或其他的早期技術是不可能實現的。 WPF 也提供了 XML Paper Specification(XPS) 的基礎,可定義檢視、散佈和列印固定格式文件的標準格式。

Silverlight

Silverlight原本的代號叫做“WPF/E”,意思是WPF run onEverywhere,它是WPF的子集。 Silverlight被社群稱為微軟出品的Flash Killer。

官方對其的定義是:「Silverlight是一個跨瀏覽器的、跨平台的插件,為網路帶來下一代基於.NET的媒體體驗和豐富的互動式應用程式」。 Silverlight提供靈活的程式設計模型,支援AJAX,VB, C#, Python, Ruby等語言,並整合到現有的WebApplication中,能夠存取其中的DOM資訊。內建多媒體技術的支持,可以以很低的成本播放媒體檔案。

目前,Silverlight發表了兩個版本, 1.0 beta和1.1alpha。可以運行於Windows和Mac平台下。同時Mono專案也在積極的開發Moonlight,一個在Linux下的Silverlight實作。

 

XUL

XUL是一種基於XML的使用者介面語言,它來自於Mozilla的開放原始碼專案。它可用於建立窗體應用程序,這些應用程式不僅可以在Mozilla瀏覽器上運行,而且也可以運行在其他描述引擎上,如Zulu(一個FlashMX組件)和Thinleys(一個Java實現)。 XUL描述引擎都非常小(100K以下),它可以使用XML資料也可以產生XML資料。 XUL的一個主要缺點在於它目前還沒有獲得一個主要商業實體的支援。 XUL最大的優點在於它與Gecko引擎的整合(打開了通往大量Web標準的大門),以及與大多數其它XML使用者介面描述語言相比,它是一種非常具有表達力和簡潔的語言。

目前XUL可以嵌入在Mozilla(或FireFox)瀏覽器中運行,也可以透過一個XULRunner的運行環境,脫離瀏覽器運行。

 

JavaFX

「JavaFX是一個建構在Java技術之上完整的運作環境,可以用來交付到桌面、行動裝置、手持設備和電視等環境的富互聯網應用(RIA)。 JavaFX是SUN進入RIA領域的開發技術,它包含JavaFXScript和JavaFX Mobile兩個部分,使用一種全新的腳本語言,依賴Java SE/ME運行時,利用Java2D和SwingAPI來實現在桌面或行動裝置上運行RIA應用。

 

三類RIA技術比較

#透過上述各種RIA開發技術介紹,我們可以看到它們各自的概念有所不同,運作的環境也不盡相同。整體說來,RIA開發技術分為三類:

1.瀏覽器類,整個RIA是運行於瀏覽器裡面,依靠傳統的HTML+CSS+JavaScript技術來實現介面的表現與控制。

2.瀏覽器插件類,RIA透過插件的方式運行於瀏覽器中。正在運作的程式是廠商特定的運作格式,需要特定的運作環境。

3.桌面類,RIA脫離瀏覽器直接運行於桌面之上。和常見的桌面程式很類似,但是可以存取Internet資源,並且具有部署容易,更新簡單的功能。

在三種分類的技術中,瀏覽器技術是成為開發RIA最直接的技術,這類技術適合一直在做網頁應用的軟體開發商。

新型桌面技術則完全另起爐灶,充分使用桌面開發的技術、技巧和理念,並結合WebApplication部署方便,即時安裝的優點。此類技術適合做Windows應用的開發商。

瀏覽器外掛程式則在瀏覽器技術和新型桌面之間進行了折衷,既使用新的技術來實現豐富的介面,又能和現有的Web技術進行部分的整合。

 

哪種RIA技術適合你

RIA是未來應用系統開發的重要方向,很多軟體開發企業,開發團隊和開發人員都希望在未來找到適合自己的技術,從而讓自己事半功倍,在提高開發效率,降低開發成本的同時,又能交付給客戶體驗豐富、功能完善的軟體系統。

雖然在上面我們介紹了各種技術及其優缺點,並對他們進行了一個歸類,但是要回答「我們該選擇那種」這個問題,還需要考慮下面的情況?

首先是我們自己的情況:

◆ 目前你的技術能力主要在Web開發方面還是Windows開發方面?

◆ 目前你開發的應用程式功能類型是內容展現為主還是交易處理為主?

◆ 目前主要在使用那個廠商或組織的技術? .NET 或者JAVA或其他Web技術?

◆ 目前是否在進行RIA或類似RIA的開發?

◆ 目前正在使用那種RIA開發技術?

其次是考慮技術的選擇標準:

◆ 學習成本,開發效率

◆ 對應用程式類型的適合性

◆◆ 執行環境部署成本

◆◆ 運作效率

◆ 完善的功能特性

◆ 技術授權成本與伺服器部署成本,開源、免費或收費

##◆ 官方和社群的技術支援

◆ 完善的開發工具

◆◆ 完善的UI元件

◆ 跨平台特性

最後,我們依照自己的具體情況和選擇技術的標準,可以為對這些技術進行一個定位和排序。

以技術運行環境部署成本來比較(由低到高):

Ajax > Flex/Laszlo> Silverlight > XUL >WPF > AIR > JavaFX

#以技術授權成本來看:

開源的有:Ajax,Laszlo,XUL,JavaFX

免費的有:Silverlight,WPF,AIR

#收費的有:Flex

從技術支援來看:無疑Silverlight和WPF會獲得最好的官方支持,Flex的官方技術也在改善,其他技術主要依靠社群的支持。

就開發工具來看:Silverlight和WPF可以有最強大的工具使用,Flex、AIR和Laszlo也有優秀的IDE可供使用,JavaFX的開發工具尚未明朗,Ajax要看具體的實現而定,XUL的開發工具進度緩慢。

就可以使用UI元件的情況來看:WPF和Silverlight需要自己擴充或使用第三方的;Flex、AIR和Laszlo都提供了豐富的UI元件,XUL自己有一套基本夠用的UI元件,JavaFX依賴JRE自備的UI工具箱。

對於跨平台特性和相容性我們也可以得到一個排序:

Flex/Laszlo > Ajax> XUL > JavaFX > AIR> Silverlight > WPF

#總而言之,要選擇適合自己的RIA開發技術,需要從各個方面來權衡。不僅要明確自己的狀況,考慮未來的需求,也要熟悉每種技術的差異和優缺點,這樣才能找到正確的技術。

以上是幾種RIA技術介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn