主流RIA技術(shù)JavaFX、Flex和SilverLight、AJAX比較
首先什么是RIA?
RIA是Rich Internet Application(富互聯(lián)網(wǎng)應(yīng)用系統(tǒng),亦稱富客戶端)的縮寫,我們翻開(kāi)維基百科,先看看它的定義。所謂RIA,首先,它應(yīng)該是一個(gè)網(wǎng)絡(luò)應(yīng)用程序;其次,它還要具有桌面應(yīng)用程序的特征和功能 (Rich Internet applications (RIA) are web applications that have the features and functionality of traditional desktop applications)。簡(jiǎn)單地說(shuō),如果你的桌面程序(比如說(shuō)Word、Photoshop和Eclipse)能在網(wǎng)絡(luò)上運(yùn)行,并且能保持其原來(lái)的功能和特征,那么我們就可以稱它們?yōu)镽IA應(yīng)用(富客戶端應(yīng)用)。根據(jù)這個(gè)定義,我們能見(jiàn)到的RIA應(yīng)用可以說(shuō)很多很多,下面就列舉一些常見(jiàn)的RIA應(yīng)用。
1)Java Applet,Applet是相當(dāng)古老的RIA應(yīng)用,它能嵌入到HTML頁(yè)面中,并在客戶端運(yùn)行。
2)Java Application,Java應(yīng)用程序可以由Java Web Start通過(guò)網(wǎng)絡(luò)發(fā)布到客戶端,并在客戶端運(yùn)行。
3)JavaFX,JavaFX是Sun公司2007年發(fā)布的,準(zhǔn)備替代Applet的一種技術(shù)或者平臺(tái),人們稱它為“下一代Applet”,我想這包含兩重含義,一是Sun承認(rèn)它的Applet已經(jīng)淘汰(Applet is dead);二是Sun公司想借重JavaFX重新?tīng)?zhēng)奪桌面市場(chǎng)。JavaFX包括JavaFX腳本語(yǔ)言和JavaFx Mobile應(yīng)用,JavaFX腳本語(yǔ)言是Sun發(fā)明的一種聲明性(declarative language)語(yǔ)言,其語(yǔ)法類似于SVG,用于快速開(kāi)發(fā)圖形用戶界面。在這幾天的JavaOne大會(huì)上,我看了來(lái)自Sun的工程師Richard Bair的一段視頻,Richard演示了一個(gè)叫做IRIS的系統(tǒng),該系統(tǒng)使用了基于Swing的Applet建成(a RIA swing applet),Richard籍此證明Applet并沒(méi)有死(I am not dead)。如果您有興趣,請(qǐng)?jiān)L問(wèn) http://parleys.com/display/PARLEYS/IRIS%2C+a+RIA+swing+applet 觀看他的演示。
4)JavaScript/Ajax,Ajax可以說(shuō)是目前應(yīng)用最廣的RIA應(yīng)用了,Web2.0概念就是因?yàn)锳jax而發(fā)展起來(lái)的。典型的Ajax應(yīng)用當(dāng)屬 Google的Gmail和Google Map了。為了更好滿足開(kāi)發(fā)者的需要,目前已經(jīng)涌現(xiàn)出許許多多開(kāi)源的Ajax框架,另外,也有一些商業(yè)的Ajax框架供開(kāi)發(fā)者選擇。
5)Microsoft ActiveX控件,ActiveX控件可以嵌入至HTML頁(yè)面內(nèi),它的歷史和Applet一樣古老,但是它是微軟開(kāi)發(fā)的技術(shù),所以它只能運(yùn)行在IE中。
6)Silverlight,微軟已經(jīng)看到了RIA市場(chǎng)的潛力,它當(dāng)然不甘落后。Silverlight就是微軟用來(lái)進(jìn)軍RIA市場(chǎng)的武器。 Silverlight從本質(zhì)上說(shuō),是一種WPF應(yīng)用程序,其界面使用XAML描述,后端可以用任何一種.Net兼容的語(yǔ)言開(kāi)發(fā)。微軟現(xiàn)在已經(jīng)發(fā)布了 Sliverlight2.0 Beta SDK,開(kāi)發(fā)者可以通過(guò)該SDK開(kāi)發(fā)Silverlight應(yīng)用。
7)Flash,F(xiàn)lash是Adobe公司發(fā)布的RIA技術(shù),它可以通過(guò)Flex SDK來(lái)開(kāi)發(fā)。目前,F(xiàn)lash在網(wǎng)絡(luò)上的應(yīng)用非常普遍。
當(dāng)然,RIA應(yīng)用還有很多很多,比如說(shuō)Google的GWT框架、Curl及Backbase等等,在此就不一一贅述了。
【編輯推薦】