随笔-86  评论-767  文章-3  trackbacks-3

[注]本文节选自《开源技术选型手册》的RIA篇章。该书已由电子工业出版社博文视点公司出版。 购买请点击这里:http://www.china-pub.com/39918
感兴趣的朋友也可以从InfoQ中文网找到这本书的精选版:http://www.infoq.com/cn/minibooks/open-source-tools-choice  
综述

随着 Web 技术的发展以及 Internet 的日益成熟,人们对 Web 应用程序的要求日益提高,希望其承载更多的业务逻辑,帮助人们处理日常生活、工作、学习中的一些问题。后续的,随着无线网络的普及,随时随地通过无线网络访问 Web 站点将成为一种可能甚至必需。但是因为 Web 模型是基于页面的模型,缺少客户端智能机制,所以到目前为止 Web 应用程序对完成复杂应用方面始终跟不上步伐,整体的用户体验效果与桌面应用程序仍然有差距。

传统的 Web 应用程序是基于页面跳转模型的,每一个任务操作由一个或者多个页面组成。典型的,如果某个操作任务是多步骤或者多选项的,那么要么需要一份很长的页面,要么使用分页而让用户在多个页面中跳转。这种处理方式导致用户花费大量的时间在等待页面的跳转和重载刷新,这种缓慢、不自然、混乱的用户体验过程和效果经常让用户感到懊悔和苦恼。另外一方面,传统的 Web 应用程序也无法表达复杂的人机交互过程比如游戏,这种人机交互需要在用户行动、快速移动或者情节不断变化的时候在屏幕上不断的反馈。不断的重载刷新页面肯定是一种最糟糕的处理方式了。

在这种背景下, RIA Rich Internet Application )的思维和技术逐渐得到了广泛的支持和应用。 RIA 结合了桌面应用程序的在数据交互、用户界面表现、数据格式编排等方面的优点,又兼有 Web 应用程序的零部署、易于传播等特性,能够有效改善 Web 应用程序的人机交互效果,向用户提供更丰富、更具有交互性和响应更快的用户体验。

与传统的纯 HTML 应用程序相比, RIA 能够提供一个强劲的技术平台,使浏览器客户端的能力往桌面应用程序中的客户端靠近,不仅适合传统的三层乃至 N 层的开发过程,同时能够和原有的环境集成以延展原有的应用程序而不需要大规模的伤筋动骨的修改和更新。

关联信息

Macromedia Flex 是比较成功和有效的 RIA 解决方案之一。今天,几乎大部分的浏览器上都安装了 Macromedia Flash 的浏览器插件,大量的 Web 应用程序都或多或少的嵌入了 Flash 的应用。而 Macromedia Flex 则是基于 Flash 的、一个构建 RIA 应用的完整解决方案,其能够使 Web 应用程序具备快速反映能力,并在不同状态与显示之间流畅的过渡,提供毫无中断的连续的工作流;由于搭建在 Flash 平台上, Flax 在多媒体、视频、流媒体方面有更加突出的表现。更重要的是, Flex 具有基于标准的架构,使用直观的基于 XML MXML 来定义丰富的用户界面,可以运行于 J2EE .NET 平台,能够与当前 Web 开发工具、方法、设计模式紧密配合。

Openlaszlo 则是一个开源的 RIA 开发环境。使用 Openlaszlo 平台时,开发者只需编写名为 LZX 的描述语言(其中整合了 XML Javascript ),运行在 J2EE 应用服务器上的 Openlaszlo 平台会将其编译成 SWF 格式的文件并传输给客户端展示。从这点上来说, Openlaszlo 的本质和 Flex 是一样的。 Flash 是任何浏览器都支持的展示形式,从而一举解决了浏览器之间的移植问题。而且,在未来的计划中, Openlaszlo 还可以将 LZX 编译成 Java .NET 本地代码,从而大大提高运行效率。

Macromedia Flex 不同, Ajax 则是基于 Javascript 客户端脚本、 XMLHttp 对象、 XML XHTML/HTML CSS 等传统 Web 开发技术的另外一个 RIA 解决方案,其更强调基于纯数据的异步交互模式。 2005 2 月, Adaptive Path 公司的 Jesse James Garrett 在其“ Ajax:A New Approach to Web Application ”( http://www.adaptivepath.com/publications/essays/archives/000385.php )一文中首次提出 Ajax 概念,极力向 Web 开发人员推荐这种综合使用 Javascript XHTML CSS DOM XMLHttpRequest XML XSLT 的技术。与很多开发人员一样, Garrett 一直非常羡慕桌面应用程序在用户界面表现、人机交互、数据传输等方面的强大表现力,一直在寻求能够缩小 Web 应用程序在用户体验方面与桌面应用程序的巨大差距的解决方法。由于 Google Gmail GMap Google Suggest 等站点的成功运用, Garrett 相信 Ajax 就是其一直在寻找的宝贝。 原来的 Ajax 有一个冗长的名字:异步的 Javascript CSS DOM XMLHttpRequest Asynchronous Javascript+CSS+DOM+XMLHttpRequest )。 Garrett 扮演了“临门一脚”的角色,形象的称之为 Ajax ,即 Asynchronous JavaScript and XML (异步 JavaScript XML )的缩写,这个形象简短的名字概括了这种技术的特点。 Ajax 已经引起的全世界的广泛关注和应用,而且, Prototype Dojo DWR Ajax 框架已经给 Web 应用开发领域带来了实实在在的贡献和影响。

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

在接下来的内容里,我们选取 Flex OpenLaszlo 两个比较典型、相对成熟的 RIA 解决方案,探讨如何构建 RIA 应用程序。

Adobe FLEX

总评(Rank

上手容易程度

★★★★★

社区活跃度

★★★★★

应用广泛性

★★★★★

推荐指数

★★★★★

作为支持 RIA 的开发、部署一系列发展中的技术和产品线, Adobe Flex Adobe Flash 基础上面向业界提供的 RIA 解决方案,其中包括 Adobe Flex SDK Adobe Flex Builder Adobe Flex Data Services Adobe Flex Charting 等等。 Flex 向开发者提供一个熟悉的编程模型和一整套的产品和组件,使开发者能够充分发挥 Adobe Flash Player9 的优势,充分发挥 Adobe Flash Player 9 的优势,无缝扩展浏览器的性能,构建高性能、拥有绝佳用户体验效果的 RIA 应用程序,并且无缝的与 ASP JSP PHP ASP.NET 等主流后台语言和架构集成。

功能和特点(Highlights & Features

Flex 包含一系列可供设计、开发、部署的相关产品,包括:

l  Adobe Flex 2 SDK (Software Development Kit)

l  Adobe Flex Builder 2

l  Adobe Flex Data Services 2

l  Adobe Flex Charting 2

作为 Adobe Flash 技术的承续和发展, Flex 采用 GUI 界面开发,使用基于 XML MXML 语言,并提供多种组件,可以实现 Web Services 远程调用、远程对象访问、页面组件拖拽、数据网格、图标等等,并内建了动画效果和其他互动机制。相对于基于 HTML 的应用(比如纯 JSP ASP PHT 或者 ASP.NET )在每个请求时都需要执行服务器的脚本,由于客户端只需要载入一次, Flex 应用程序的工作流被大大改善了,更加适合于构建快速、具有动画效果、具备良好用户体验效果的 RIA 应用程序。

Flex 试图通过提供一个程序员们已经熟知的工作流和编程模型,让程序员比以前更快更简单的开发动画和 RIA 应用程序。其能够与其他 Web 技术比如 Java .NET 等有效的融合在一起,改善 Web 应用程序在视图层的表现能力,同时利用 Flex 的语言和文件结构把应用程序的逻辑从设计中分离出来。

UI 方面, Flex 提供了包括控制组件、版面、导航、图表等在内的各个类别的丰富的组件,用于帮助开发者基于所见即所得的 IDE 快速构建 Flex 应用程序。

背景介绍(Background & History

蔡学镛先生在其《 Flash 平台的挑战》一文中将 1990-2010 20 年来软件开发的 Framework/API 划分为 5 个阶段:

l  第一阶段 GUI 和逻辑混在一起,不管客户端还是服务器端都是一样,比如 MFC Java Swing Servlet

l  第二阶段 这个阶段中,服务器端的 GUI 和逻辑分开,比如 ASP.NET JSP

l  第三阶段 在这个阶段, Web 客户端的互动性增强,比如 ASP.NET Ajax

l  第四阶段: RIA 时代,客户端具有更好的互动性,并且客户端的 GUI 和逻辑分开,且 GUI 改用宣告的方式构建。 RIA 的应用搭配 VM 或者浏览器插件,在浏览器内或者浏览器外都可以执行,比如 Adobe Apollo 或者微软的 WPF

l  第五阶段:即 RIA DSL Domain Specific Language )时代, DSL 语言取代大部分的 XML

就目前而言,以 Flex 为代表的 RIA 解决方案越来越成熟,一些以视频共享、日程编排等为代表性的 RIA 站点也向其用户展示了 RIA 应用程序的魅力。事实证明, RIA 正越来越受到重视,传统的 Web 应用程序也正在向 RIA 靠近。

作为老牌的多媒体解决方案供应商, Adobe RIA 解决方案上有独特的优势。 Flash 已经被整个业界所接受,并且得到了基本上所有主流浏览器的支持。因此,相比其他 RIA 解决方案,基于 Flash Flex 推广起来自然容易得多了。

最近, Adobe 在其官方网站上宣布将把 Flex 开源,将几乎整个 Fle 平台组件在 Mozilla Public License 协议下发布,这其中包括以下几个部分:

l  Flex 编译器

l  Flex 命令行调试工具

l  源码查看工具

l  测试框架

l  Flex 核心组件库,包括 Apollo 组件

l  封装脚本

l  Flex-Ajax Bridge (将会改用 MPL 协议发布)

随着越来越多的软件产品走入开源模式,事实证明开源对于产品的发展和开发者来说是双赢的。我们有理由相信,随着 Flex 的开源, Flex 开发者和爱好者可以通过阅读研究 Flex 的源码,更深入的理解 Flex 并进一步增强它,从而利用 Flex 开发出更多更出色的 RIA 应用程序。而对于 Flex 产品本身来说,更多开发者的加入,能够让其拥有广泛的用户群体,并且利用最小的成本得到最佳的完善和发展,加速 Flex 的普及。

参考资料(Reference

网站类

1 Adobe – Flex 开发人员中心 http://www.adobe.com/cn/devnet/flex/

作为官方的开发人员中心,该站点提供了丰富的快速入门、文章和示例,以帮助开发者快速熟悉 Adobe Flex 的各项功能、特性,由浅入深的掌握 Flex 的开发和部署,以及在必要的时候与包括 Java PHP CoLDFusion 等技术无缝集成。

2 52RIA http://www.52ria.com/

该站点专注于 Flash RIA 开源领域,面向开发者提供优质的 Flash RIA 开源作品、教程和源码。难得可贵的是, 52RIA 提供的 RIA 站点秀,在第一时间向开发者展现了 Flex RIA 的实际应用效果。

3 )中国 RIA 开发者论坛 http://www.riachina.com/

中国 RIA 开发者论坛,是全国数一的关于 Flex 的讨论社区,里面隐藏着众多的高手,而且很多已经参加了工作并在实际项目中。 如果读者在 Flex 开发中遇到什么问题,可以在这个论坛找到答案或者寻求帮助。

4 RIA Dev http://groups.google.com/group/riadev

该站点是基于 Google 论坛的联系两岸三地的关于 Flex/Apollo 的华人论坛社区,它所表现的优势在于只要一提出问题,它将以邮件的方式以最快的速度发到每位成员手中。其目的希望联系全球对 Adobe Flex/Apollo 感兴趣的华人,促进 Adobe Flex/Apollo 在华文世界的发展。

5 FlexCoders http://tech.groups.yahoo.com/group/flexcoders/

全球最大的 Flex 用户讨论组织,只要是关于 Flex 的问题,读者都可以在这里提出,而且常常回答者都是 Adobe 公司参加或者跟 Flex 相关的工作人员,当然前提条件是要具备良好的英语阅读能力和表达能力。

6 Flex Components http://tech.groups.yahoo.com/group/FlexComponents/

FlexCoders 的同胞兄弟,这里讨论的侧重于 Flex 控件的问题。

7 Adobe Flex 实验室 http://labs.adobe.com/technologies/flex/

作为 Adobe Flex 新技术的研发中心, Adobe Flex 实验室负责 Flex 新版本的研发和发布。自然,从该站点能够了解到最新有关 Flex 的资讯,以及最新版本 Flex 的相关下载。

网站类

1 )《 Flex 第一步》 http://www.dearbook.com.cn/book/230729

邱彦林 著,清华大学出版社, 2007 12 月第一版

作为国内第一本 Flex 的书籍,该书包含“走近 Flex ”、“ Flex 基础知识”、“ ActionScript Flex ”、“ Flex 初级程序开发”、“ Flex 程序实战开发”五个部分,深入浅出的讲述了 Flex 及其 ActionScript 的相关知识,比较适合对 Flex 有兴趣的初学者。虽然对于大多数 Flex 开发者而言,该书在某些内容上不够深入,但将其定位为“入门级”的读物,其表现还是可圈可点。

快速上手教程(Step By Step Tutorial

关于 Flex 2

之前提到, Adobe Flex 产品线包含 Flex 2 SDK Flex Builder 2 Flex Data Services 2 Flex Charting 2

其中, Flex 2 SDK Adobe Flex 的核心和基础,其包含 Flex 框架(类库)、 Flex 编译器、 Flex 调试器、 MXML ActionScript 编程语言以及其他扩展,同时包含 Adobe Flex 框架核心类库的源码,用户可以研读这些源码并基于自己的需要进行扩展。 Adobe Flex 2 SDK 可以作为独立的包安装,也集成在 Flex Builder Flex Data Service 组件中。

Flex Builder 集成了 Flex 2 SDK Flex 应用模型和 Flex 编程语言,向开发者提供一个可视化的 IDE 设计、开发、调试环境。值得注意的是, Adobe 选择 Eclipse 作为 Flex Builder 的平台,能够吸引以 Eclipse 为代表的开源社区的关注和兴趣,充分发挥基于 Eclipse 的大量商业和开源的插件的优势,也有利于延续 Eclipse 用户的开发习惯。与早期的 Flex Builder 版本相比, Flex Builder 2 提供了一个所见即所得的开发环境,包括视图和源码两种编辑状态,大大提高了开发者的开发效率。如下图所示。

Flex Data Services 则为 Flex 2 SDK 提供企业级的消息支持,并增强 Flex 2 SDK 的数据服务架构,简化了在服务器和客户端之前交互的编程模型。其提供的功能和特性包括:

l  一个允许客户端和服务器端之间或者多个客户端之间同步数据的高层次的编程模型。

l  用于发布和订阅消息的集成服务。

l  基于服务器的自动数据推动和数据流。

l  一个用于集成 JMS Hibernate EJB 和其他数据持久化机制的适配器架构。

l  允许客户端操纵数据源的授权。

l  基于 AMF 协议的远程对象访问。

l  数据服务日志。

值得注意的是,在使用 Flex Data Services 之前,我们需要将其以标准的 Java Web 应用程序部署在 J2EE 应用服务器或者 Servlet 容器中。

Flex Charting 2 提供了丰富的报表模型,包括条状、饼图、线性和其他类型的图表,这些报表可以在客户端动态生成。下图展示了一个用 Flex Charting 2 生成的条状图。

开发环境配置

由于 Flex 2 基于 Flash Player 9 运行,所以在开发 Flex 应用程序之前需要先安装 Flash Player 9 。从 Flex 开发人员中心( http://www.adobe.com/cn/devnet/flex/ )下载 Flash Player 9 的安装文件,其为一个浏览器 ActiveObject 控件。

Flex Builder 2 集成了 Flex 2 SDK ,因此开发基本的 Flex 应用程序只需要安装 Flex Builder 2 即可。从 Flex 开发人员中心下载试用版的 Flex Builder 。双击下载后的 Flex Builder 2.exe 开始安装,选择安装路径后点击“ Next ”。这里需要选择安装模式: Flex Builder Flex SDK ,或者是 Flex Builder 插件和 Flex SDK 。前者将安装 Flex Builder IDE Flex SDK 、基于命令行模式的 Flex SDK 和可调试的 Flash Play 9 。后者将以 Eclipse 插件的形式安装 Flex Builder Flex SDK ,前提是在本机已经安装了 JDK Eclipse JDK Eclipse 的安装请查阅相关文档),如下图所示。

安装成功后,启动 Eclipse ,点击“ New - Project ”,即可在“ New Project ”窗口中看到“ Flex ”项,包括 Flex Library Project Flex Project 两个子项。如下图所示。

MXML ActionScript

HTML 类似, MXML 是在 Flex 应用程序中用作版面规划和布局的 XML 语言, Flex Builder 2 能将 MXML 文件编译为相应的 Swf 文件。 MXML 提供了提供了一系列与 Flex 框架类对应的标签,以帮助开发者构建可视化的页面元素,比如容器、导航器和其他 UI 控件。 MXML 同时也被用来定义一些不可见的特性,比如访问网络资源、访问数据源、数据绑定等等。

ActionScript 则是基于 ECMAScript 、与 Javascript 类似的另一个 Flex 编程语言,其提供 MXML 所无法提供的流控制、对象操作、与客户端交互等特性。 MXML ActionScript 结合,构成 Flex 应用程序基本的编程模型。在 Flex 应用程序中,每一个 MXML 文件代表一个单独的 Flex 页面。下面的代码段使用 MXML ActionScript 语言构建一个简单的 Hello World 页面。

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

       <mx:Script>

              <![CDATA[

                     import flash.events.MouseEvent;

                     private function MyButtonClicked(event:MouseEvent):void {

                            myLabel.text = "Hello, the world.";

                     }

              ]]>

       </mx:Script>

       <mx:Panel title="My Event Handler" width="100%" height="100%"

              horizontalAlign="center" paddingBottom="10" paddingLeft="10" paddingRight="10" paddingTop="10">

              <mx:Label id="myLabel" width="100" fontWeight="bold" fontSize="13"/>

              <mx:Button id="myButton" label="Click me!" click="myLabel.text='Hello, the world.';"/>

       </mx:Panel>

</mx:Application>

Hello World

接下来我们通过一个 Hello World 示例演示一个简单的 Flex 应用的开发过程。

启动 Eclipse ,选择“ New à Project à Flex Project ”,点击“ Next ”后在“ New Flex Project ”对话框中选择“ Basic e.g. XML or web service from PHP/JSP/ASP.NET )”选项,点击“ Next ”后输入项目名称(这里设置为 MyFlexApp ),新建一个基本的 Flex 应用程序。 Eclipse 将打开默认的 Flex 设计视图窗口,如下图所示。编辑窗口分为项目导航区域、 Flex 组件区域、项目编辑设计区域、控制台区域、属性和状态区域等几个部分,这点与普通的 Java 应用程序类似。

创建成功后, Eclipse 将新建一个完整的 Flex 应用程序结构,包括 .setting bin html-template 三个文件夹以及一个默认的 MyFlexApp.mxml 文件。 Flex 将每一个 mxml 文件视为一个单独的页面,每一个 mxml 文件最后将被编译为对应的 swf 文件。

Flex 组件区域拖动一个 Button 控件到设计区域,在属性区域中设置其 ID 为“ myButton ”, Label 属性为“ Click Me! ”。拖动一个 Label 控件到设计区域,将其 ID 属性设置为“ myLabel ”。

点击项目编辑设计区域左上角的“ Source ”按钮,切换到源码视图。此时 MyFlexApp.mxml 的内容如下所示。

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

       <mx:Button x="312" y="96" label="Click Me!" id="myButton" enabled="true"/>

       <mx:Label x="334" y="145" text="Label" id="myLabel"/>

</mx:Application>

MyFlexApp.mxml 符合标准的 XML 格式,以 <mx:Application> 作为根节点,其内容包含页面中所涉及到的 UI 组件以及必要的 ActionScript 代码。我们注意到,刚才拖入的 Button 控件和 Label 都包含了 x y 属性,这两个属性用于控制该控件在页面中的相对位置。

myButton 设置 click 事件,其响应代码为“ myLabel.text=’Hello, the world.’; ”。修改后的 MyFlexApp.mxml 代码为:

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

       <mx:Button x="312" y="96" label="Click Me!" id="myButton" enabled="true"

click="myLabel.text='Hello, the world.';"/>

       <mx:Label x="334" y="145" text="Label" id="myLabel"/>

</mx:Application>

即当点击 myButton 按钮的时候,将 myLabel 的文本替换为“ Hello, the world. ”。鼠标右击 MyFlexApp 项目,选择“ Run As à Flex Application ”,运行 Hello World 范例,其结果如下图所示。

在上面的应用中,我们将 Button 的响应事件和控件的代码写在一起。 Flex 支持将与响应事件有关的代码剥离出来,包括剥离到 ActionScript 区域或者独立的 as 文件中。下面的代码段将 Button Click 事件剥离到 ActionScript 区域。

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

       <mx:Script>

              <![CDATA[

                     private function MyButtonClicked(event:MouseEvent):void {

                            myLabel.text = "Hello, the world.";

                     }

              ]]>

       </mx:Script>

       <mx:Button x="312" y="96" label="Click Me!" id="myButton" enabled="true"

click="MyButtonClicked(event);"/>

       <mx:Label x="334" y="145" text="Label" id="myLabel"/>

</mx:Application>

通常, Flex 应用程序开发的步骤如下所示:

l  使用 Flex 预定义的组件(窗口、按钮、容器、网格等),按照需求定义一个用户界面。

l  使用风格和主题来定义可见的设计。

l  增加动态动作,如应用程序之间的互动。

l  定义并在需要的时候连接相应的数据服务。

l  从源码生成一个可以在 Flash 播放器中运行的 Swf 文件。

版本信息(Versions

Adobe 2004 3 月发布 Flex1.0 版本,随后与童年的 10 月发布 Flex1.5 版本,这两个版本的目标市场都是企业应用开发。其最初是作为一个 J2EE 应用,或者是 JSP 标签库而发布的,能够就爱能够运行中的 MXML ActionScript 编译成为 Flash 应用程序即二进制的 Swf 文件。

Flex1.5 是企业级的表现层服务器,用户将所编写的 MXML 文件上传到服务器,由 Flex 编译器将 MXML 编译成 Swf 文件,从而创建表现层界面。或者直接在本机编译 MXML 文件,然后上传 Swf 文件。 Flex1.5 IDE 基于 Dreamweaver 提供,实现了设计和代码视图、高亮语法显示、代码锁紧、应用预览等基本的 IDE 功能。

2005 10 月, Adobe 开放了其 Alpha 本本的 Flex2.0 ,并在经历了三个 Beta 版本后于次年的 5 月份发布了 Flex 2.0 Final 版本。随后, Adobe 改变 Flex2 的许可模式,免费开放其中的“ Flex Framework ”。不同的是,新版 Flex Builder2 基于 Eclipse IDE 构建,充分利用 Eclipse IDE 的功能和特性,为 Flex 爱好者提供高效的开发、测试和部署环境。

2007 6 月, Adobe 发布了 Flex 3 SDK Flex Builder 3 Beta 版本,同时将 Apollo 更名为 Adobe Integrated Runtime ,即 Adobe AIR Flex 3 Beta 3 Flex 3 的最后一个 Beta 版本,其中包括 Flex Builder 3 Beta 3 Flex SDK 3 等。与其他版本相比, Flex3 改进和更新的部分特性包括:

l  对设计 / 开发流程的改进

Flex 3 中提供了 Skin Importer ,可以缩放、旋转设计视图,可以显示 ItemRenderer 的设计视图, Advanced Constraints CS3 整合、 CSS 概要以及 Flex 3 SDK style/skinning 等诸多改进。这些改进使得整个设计 / 开发流程更加简单, Flex 程序的 Skinning 功能也更加强大。

l  对编码环境的改进

这次改进提高了编译速度,缓存已编译的类,提供更强的 AS3/MXML/CSS 语法提示、代码查找、重构、代码摘要、内存测量、性能测量等功能,增强了模块机制以及多个 SDK 支持等等。

l  Flex 组件和 SDK 的改进

提供了更多的类、组件和功能,比如 AdvancedDataGrid 、新的集合类、深层链接接口、资源包、动态本地化、支持容器的 Flex Component Kit for Flash CS3 等等,并且加强了与 Ajax 的整合,提供了高级视觉效果和对复杂的资源管理。

l  显著的减少 Swf 文件的大小

由于支持对 Flash Framework 的缓存, Flex 编译器所生成的 Swf 文件大小显著减小。

社区视角(Community Perspective

作为一个典型的 RIA 解决方案, Flex 可以说是目前最优秀的。从 Flex 1.0 到现在被普遍接受的比较成熟的 Flex 2.0 Flex 逐渐证明了 Adobe RIA 领域的领跑者地位。将来随着 Flex 3 的推出,可以预计 Adobe 将继续在 RIA 领域处于领先的地位。

需要指出的是,目前 RIA 的应用毕竟还是在相对有限的范围, Adobe 依然需要在培育市场和开发者上多下功夫。最近 Adobe Flex 开源,就希望借助开源社区的力量推动 Flex 的快速发展。不过目前 Flex Builder 2 依然采取免费试用 + 收费的模式,这在一定程度上限制了吸引力。而且与其他成熟的 IDE 相比, Flex Builder 2 在编译、人性化、易用性等方面依然存在差距,这方面还需多加努力。

posted on 2008-08-01 14:55 eamoi 阅读(3567) 评论(0)  编辑  收藏 所属分类: AJAX

只有注册用户登录后才能发表评论。


网站导航: