转自http://www.cnblogs.com/davidfreely/archive/2008/08/01/1258065.html
主流RIA技术的简单比较 JavaFX、Flex 和 silverLight
一、RIA的定义 有人预言,2008年将是RIA技术竞争非常激烈的一年。果然不出所料,Adobe公司于今年年初发布了AIR1.0和Flex3.0;紧接着Microsoft也不甘示弱,于今年3月份发布了Silverlight2.0 Beta版;在5月份举行的2008 JavaOne大会上,JavaFX毫无悬念地成为本次JavaOne会议的焦点之一。
那么,什么是RIA? RIA是Rich Internet Application(富互联网应用系统,亦称富客户端)的缩写,我们翻开*,先看看它的定义。所谓RIA,首先,它应该是一个网络应用程序;其次,它还要具有桌面应用程序的特征和功能 (Rich Internet applications (RIA) are web applications that have the features and functionality of traditional desktop applications)。简单地说,如果你的桌面程序(比如说Word、Photoshop和Eclipse)能在网络上运行,并且能保持其原来的功能和特征,那么我们就可以称它们为RIA应用(富客户端应用)。根据这个定义,我们能见到的RIA应用可以说很多很多,下面就列举一些常见的RIA应用。
1) Java Applet,Applet是相当古老的RIA应用,它能嵌入到HTML页面中,并在客户端运行。
2) Java Application,Java应用程序可以由Java Web Start通过网络发布到客户端,并在客户端运行。
3) JavaFX,JavaFX是Sun公司2007年发布的,准备替代Applet的一种技术或者平台,人们称它为“下一代Applet”,我想这包含两重含义,一是Sun承认它的Applet已经淘汰(Applet is dead);二是Sun公司想借重JavaFX重新争夺桌面市场。JavaFX包括JavaFX脚本语言和JavaFx Mobile应用,JavaFX脚本语言是Sun发明的一种声明性(declarative language)语言,其语法类似于SVG,用于快速开发图形用户界面。在这几天的JavaOne大会上,我看了来自Sun的工程师Richard Bair的一段视频,Richard演示了一个叫做IRIS的系统,该系统使用了基于Swing的Applet建成(a RIA swing applet),Richard籍此证明Applet并没有死(I am not dead)。如果您有兴趣,请访问 http://parleys.com/display/PARLEYS/IRIS%2C+a+RIA+swing+applet 观看他的演示。
4) JavaScript/Ajax,Ajax可以说是目前应用最广的RIA应用了,Web2.0概念就是因为Ajax而发展起来的。典型的Ajax应用当属Google的Gmail和Google Map了。为了更好满足开发者的需要,目前已经涌现出许许多多开源的Ajax框架,另外,也有一些商业的Ajax框架供开发者选择。
5) Microsoft ActiveX控件,ActiveX控件可以嵌入至HTML页面内,它的历史和Applet一样古老,但是它是微软开发的技术,所以它只能运行在IE中。
6) Silverlight,微软已经看到了RIA市场的潜力,它当然不甘落后。Silverlight就是微软用来进军RIA市场的武器。Silverlight从本质上说,是一种WPF应用程序,其界面使用XAML描述,后端可以用任何一种.Net兼容的语言开发。微软现在已经发布了Sliverlight2.0 Beta SDK,开发者可以通过该SDK开发Silverlight应用。
7) Flash,Flash是Adobe公司发布的RIA技术,它可以通过Flex SDK来开发。目前,Flash在网络上的应用非常普遍。
当然,RIA应用还有很多很多,比如说Google的GWT框架、Curl及Backbase等等,在此就不一一赘述了。