Adobe 的James Ward谈Flex 3和Silverlight

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样式浏览器。要查看由社区提供的组件请查阅 flexbox和 Flex 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之旅的开发者们提供了Flexcoders和MXNA作为帮手。

查看英文原文: Adobe's James Ward on Upcoming Flex 3 Enhancements and Silverlight

你可能感兴趣的:(Adobe 的James Ward谈Flex 3和Silverlight)