Adobe 的 James Ward 谈 Flex 3 和 Silverlight

  • Jon Rose
  • 郭晓刚

2007 年 9 月 16 日

话题:Java语言 & 开发

Adobe 正在为即将到来的 Adobe Flex 3.0 而奋战,预计 2008 年初就会发布。Adobe Flex是一套开发富网络应用的工具,这些应用可以在浏览器里用 Flash Player 运行,也可以在桌面上用 Adobe AIR 运行。InfoQ 采访了 Adobe 的技术传教士 James Ward,以了解这个即将到来的新版本。你可以在 Ward 的博客上了解到更多信息:jamesward.org

Ward 首先说明了 Flex 3 SDK 和 Flex Builder 3 里新增的内容:

从我们的第一个公开测试版可以看到 Flex 3 有了显著的变化,无论是免费的 Flex 3 SDK 还是 Flex Builder 3。

其中最值得注意的变化包括:

  • Flex Builder 中新的内存和性能分析器
  • 支持创建 Adobe Integrated Runtime(AIR)应用
  • 重构了 ActionScript 类的名字
  • 使用 Persistent Framework Cache 时,显著改善程序首次运行的启动时间
  • Flex Builder 中设计视图的大量改进

……对改变的详细说明:

Flex 3 最出色的新特性之一是 Persistent Framework Cache。有了 Persistent Framework Cache,如果用户在访问你的 RIA 之前已经访问过其他 Flex 应用,他们的 Flash Player 缓存里面很可能已经有了 495KB 的 Flex Framework。这样用户需要下载的程序大小就会显著减少。在许多应用中,初始程序下载的大小会减少到低于 100KB。

Flex Builder 3 的另一项优秀特性是内存和性能分析器。通过它你可以清晰地看到哪里发生了内存泄露,或者哪里是性能的瓶颈。

除了 Advanced DataGrid 等新组件和 Charting 组件的改进之外,还对 Flex 进行了大量的功能性改进。包括无障碍访问支持、运行时本地化,以及内建的深度链接支持(浏览器后退、书签等等)。

要了解 Flex 3 计划实现的所有特性,请查看以下路线图:

Flex 3 SDK 路线图:http://flexwiki.adobe.com/confluence/display/ADOBE/Flex+3+Planning

Flex Builder 3 路线图:http://flexwiki.adobe.com/confluence/display/ADOBE/Flex+Builder+3+Planning

InfoQ 问到 Flex 3 的这些变化对框架的开源化有什么影响,以及开源化工作的进展 :

Flex SDK 的开源化工作进展得很顺利。像 Flex SDK 这么大型的项目要进行开源时间上的投入相当可观。就跟 Sun JDK 一样,这项工作不可能一晚上就完成。我们的目标是在 Flex 3 发布的同时将 Flex SDK 完全开源。其中有些任务已经完成了。我们在 Google Groups 上有个邮件列表,名为“flex-open-source”,用来讨论开源工作的相关事宜。我们已经把 Flex 的整个 bug 数据库(甚至包括历史上的 bug)都转移到了一个公开的 JIRA 系统上。我们也公开了 Flex 的路线图:http://bugs.adobe.com/confluence/display/ADOBE/Home

谈谈 Flex 3 的许可协议:

Flex 3 SDK 将是免费的,很可能采用 MPL 许可协议。我们也为不能捆绑 MPL 软件的 OEM 厂商提供双协议。我们还没公布 Flex Builder 3 的许可情况。

随后我们询问了 Ward 对 Silverlight 和 Microsoft 进入 RIA 市场的看法:

Microsoft 还没有真正进入 RIA 市场。他们正在围绕网上的视频应用构建一个新平台。这只是 RIA 平台的一个方面。不过 Silverlight 高质量的 VC1 视频编解码器的确促使我们提早发布更高质量的 H.264 编解码器。我们还加入了硬件的视频缩放来支持在 Flash 里全屏播放 1080p 的视频。

他还详细比较了 Flex 和 Silverlight 之间的差异,以及为什么一般开发者应该选择 Flex:

RIA 的一个重要方面是组件库,这方面我们的 Flex 比 Silverlight 领先了好几年。用 Silverlight 的话,你差不多要从零开始打造整个 UI。Flex 社区和 Adobe 提供了数以百计的支持皮肤和样式、可扩展的组件,诸如 DataGrid、Accordion、TabNavigator、Chart。其他我们领先了好几年的方面还包括内建的无障碍访问支持、国际化、深度链接、单元测试、自动化测试、数据绑定、特效、拖放管理,等等数不清的构建 RIA 必需的东西。要知道 Flex 包括了那些组件请参阅Flex 组件参考文档 ,也请试一下Flex 2 组件浏览器Flex 2 样式浏览器。要查看由社区提供的组件请查阅flexboxFlex Component Exchange

开发 Silverlight 的话,你可以用 Expression Blend 来生成 XAML 标记,然后直接用在你的 Silverlight 项目里面。而开发 Flex 的话,设计师可以使用 Photoshop、Illustrator 和 Flash CS3 这样的工具,然后将界面资源导出为二进制对象(位图或 swf),然后开发者在 Flex 里把这些资源当作皮肤或组件来使用。

Flex 和 Silverlight 的最大差别之一是接受度。互联网上 90% 的 PC 已经安装了 Flex 应用所需的运行时。Flash Player 是世界上最快被接受,也安装得最多的软件。Silverlight 的接受度很难跟这种势头相提并论。

就目前开发 RIA 来说,没有什么选择能比得上 Flex。它有一个免费且即将开源的 SDK,基于 Eclipse 的出色开发工具,还有一个庞大的社区。显而易见 Flex 背后有一股强大的推动力。

Adobe Integrated Runtime(AIR)也是一个热门话题,因此 InfoQ 也询问了 Flex 3 与 AIR 的关系:

Adobe Integrated Runtime(AIR)是 Flex、Flash、Ajax 和 HTML 应用的桌面运行时。它让开发者得以运用已有的技能和很多已存在的代码来构建在桌面上运行的应用程序,并获得额外的功能。AIR 应用可以访问系统资源、与系统的拖放功能相集成、显示系统通知,并且把数据保存到内嵌的数据库。开发者用 Flex 3 SDK 和 Flex Builder 3 可以很容易地构建 AIR 应用。AIR 还让开发者能够构建出更个性化的应用以及离线应用。

有一些大企业,包括 eBay 和 Salesforce 已经在用 AIR。AIR 的热门主要是因为很多应用都需要浏览器所不能提供的功能和定制能力。AIR 也是用很多开源技术来构建的,包括 Mozilla Tamarin(Flash Player 的虚拟机)、Webkit(Safari 的 HTML 引擎)和 SQLLite。

InfoQ 请 Ward 澄清一下为什么有了 Flex Builder 还要推出 Flash CS3 的 Flex 扩展:

Flash CS3 仍然是设计师创作 Flash 内容的主要工具,而 Flex 是开发者构建基于 Flash 的应用的主要工具。在 CS3 发布后不久,我们在 labs.adobe.com 上发布了 Flex Component Kit for Flash CS3,这是为了让设计师在建造 RIA 的时候能合作得更好。现在设计师们可以在 CS3 里创作界面资源,然后把它们交给 Flex 开发者用在程序里面。你可以在这里观看一个使用 Component Kit 的逐步演示:http://adobedev.adobe.acrobat.com/p75214263/

Ward 还说明了 Flex 3 对 Flash Player 运行时的要求:

Flex 3 对运行时的要求跟 Flex 2 一样,Flash Player 9。不过开发者可以指定要求更新的版本,如果他们希望利用 Flash Player 的新特性的话。Persistent Framework Cache 和 H.264 支持就需要最新版本的 Flash Player 9,目前这个版本还处于 Beta 阶段。开发者可以检测用户的 Flash Player 版本,然后决定不使用新特性或者执行一次新版本的快速安装。快速安装只需要一次点击和 1MB 的下载。但怎样和如何使用旧版 Flash Player 9 不具备的特性,完全取决于开发者。

新版 Flash Player 需要 9 个月来达到 80% 的接受度,12 个月来达到 90% 的接受度。你在 Emmy Huang(Flash Player 产品经理)的博客上可以找到对 Flash Player 接受度统计数据的详细分析:http://weblogs.macromedia.com/emmy

作为结束,Ward 鼓励诸位去labs.adobe.com把玩一下 Flex 3 Beta。如果发现任何 bug 请报告到bugs.adobe.com/flex。最后他向正准备开始 Flex 之旅的开发者们提供了FlexcodersMXNA作为帮手。

查看英文原文:Adobe's James Ward on Upcoming Flex 3 Enhancements and Silverlight
Java语言 & 开发