RIA开发权威指南
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 目前的RIA技术对比

1.3.1 JavaFX,Flash/Flex,SilverLight三强鼎立格局

随着科技的快速发展,各公司都想在RIA中占据一席之地。Sun推出了JavaFX,Adobe推出了Flex,微软推出了SilverLight。它们分别都有着自己的优势和特点,下面分别进行介绍。

1.SilverLight

SilverLight是微软公司推出的一个跨浏览器、跨客户平台的技术,能够设计、开发和发布有多媒体体验与富交互(RIA,Rich Interface Application)的网络交互程序。这是因为SilverLight提供了一个强大的平台,能够开发出具有专业图形、音频和视频的Web应用程序,增强了用户体验,所以SilverLight吸引了设计人员和开发人员的眼球。同时,SilverLight还提供了强大的工具来提高他们的工作效率。

2.Flash/Flex

Flash从6.0开始就逐步具备建立窗体风格的应用程序的功能。据Adobe称已经有98%以上的桌面系统的浏览器都安装了Flash Player。这使得以Flash Player为客户端的RIA可以支持种类广泛的平台和设备。

Flex可以运行于J2EE和NET平台。Flex表示服务器提供基于标准的、声明式的编程方法和流程,并提供运行时服务,用于开发和部署丰富客户端应用程序的表示层。Flex开发者使用直观的基于XML的MXML来定义丰富的用户界面。该语言由Flex服务器翻译成SWF格式的客户端应用程序,在Flash Player中运行。

3.JavaFX

目前,已有亿万台设备部署了Java虚拟机,开发人员可以利用这一被认可、成熟、高性能平台的强大功能、成熟度、性能和普及性。JavaFX使集成视频、音频、图形、动画和富文本更轻松。应用程序可以将音频/视频和2D图形与3D透视转换以及富文本结合起来,同时带有引人注目的效果和变换。高级动画特性包括时间轴、关键帧动画、补间和基于路径的动画。Java开发人员可以通过重用JavaFX应用程序中的Java库来保留现有的投资。JavaFX Script具有强大的数据绑定特性,为使多个对象的状态同步提供了简单的语法,因而允许GUI组件自动随着基础数据的变化而改变状态JavaFX允许导入任何Java类,创建新的Java对象,并调用有关这些类和对象的方法。开发人员可以继续利用全局Java生态系统巨大的知识库和市场。

目前来看,这三种技术各有优势,Flash/Flex先入为主,目前已经有了很大的市场,但是Silverlight的先天优势是有Windows平台的支持,而JavaFX借助于Java虚拟机以及完全能重用Java的库,其优势是它的开源策略。

1.3.2 其他解决方案

RIA解决方案远不止上述三种,下面介绍一下目前出现的除了上述三种技术之外的其他几种比较有实力或者有特点的RIA客户端开发技术:

1.Laszlo

Laszlo是开发和发布RIA到Web上的开源平台。Laszlo平台由LZX标记语言和Laszlo表示服务器组成;LZX是基于XML和JavaScript的描述语言,类似于XUL和XAML。使用Laszlo平台时,开发者只需编写名为LZX的描述语言,运行在J2EE应用服务器上的Laszlo平台会将其编译成SWF格式的文件并传输给客户端展示。从这点上来说,Laszlo的本质和Flex是一样的。Flash是任何浏览器都支持的展示形式,从而解决了浏览器之间的移植问题。

2.Avalon

Microsoft的Avalon是下一版本的Windows的一部分,是一个图形和展示引擎,主要由新加到.NET框架中的一组类集合而成。Avalon定义了一个在Longhorn中使用的新标记语言,其代号为“XAML”。可以使用XAML来定义文本、图像和控件的布局,程序代码可以直接嵌入到XAML中,也可以将它保留在一个单独的文件内。

3.XUL

XUL是一种基于XML的用户界面语言。它来自于Mozilla的开放源码项目,可用于建立窗体应用程序,这些应用程序不但可以在Mozilla浏览器上运行,而且也可以运行在其他描述引擎上。XUL描述引擎都非常小,它可以使用XML数据也可以生成XML数据。XUL的一个主要缺点在于它目前还没有获得一个主要商业实体的支持。XUL最大的优点在于它与Gecko引擎的集成,以及与大多数其他XML用户界面描述语言相比它是一种非常具有表达力和简洁的语言。

4.Bindows

Bindow是用Javascript和DHTML开发的Web窗体框架。Javascript用于客户端界面的显示和处理,XML HTTP用于客户端与服务器的信息传输。Javascript在客户端的表现力不容置疑,利用Javascript几乎可以实现Windows应用程序所能干的大部分事情,XML HTTP一直以来常被用于实现“无刷新”的Web页面,它和Javascript配合,可以完成数据从服务器和客户端的传输。Bindows的一个主要的缺点是它采用一次全部载入的方式来实现脚本库,在窗口的加载期,需要一个漫长的等待过程,甚至浏览器的进程会产生无响应的情况。这点Bindows根本没有遵循“用多少去多少”的准则。另外,内部大量利用了IE6的技术,没有考虑到非IE的浏览器,限制了Bindows的流行。

目前RIA领域的新产品新技术层出不穷,这一切都说明在互联网世界中RIA是多么的火热。但上述列举的一些技术,都由于各自的一些原因导致普及率还偏低。RIA现正处于蓬勃发展的时代,JavaFX以其独特开源优势,在激烈竞争中已占有一席之地,让我们一起为JavaFX贡献出自己的创意和技术,使互联网变得越来越精彩!

通过本章,相信读者对JavaFX与RIA相关技术有了一个整体的了解,后面将对JavaFX进行深入的介绍和说明。

· 相关资源

如果想了解更多JavaFX的背景知识,下列资源可供你参考:

· Sun公司JavaFX官方网站:站点中描述了JavaFX产品家族。

链接是:www.sun.com/javafx.

· 关于JavaFX技术中文参考资料可以访问Sun中国技术社区(http://developers.sun.com.cn/)JavaFX开发者中心。