对Adobe Flex的十大误解
2008.02.22 来自:infoq中文站 作者 Jon Rose 译者王军 共有评论(0)条 发表评论 [收藏到我的网摘]
在Qcon上,Adobe的James Ward和InfoQ.com一起分享了他推广传播Flex应用框架过程中所遇到的对Adobe Flex的十大误解。Ward向InfoQ.com独家论述了Flash采用比例和Flex编程模型: Flex 2和Flex 3必需运行在Flash Player 9上。除了Oracle对Flex的使用,InfoQ.com也公布了一些使用Flex开发企业应用的团体。
在Qcon上,Adobe的James Ward和InfoQ.com一起分享了他推广传播Flex应用框架过程中所遇到的对Adobe Flex的十大误解。
为了运行Flex应用程序用户需要安装新东西。
Ward向InfoQ.com独家论述了Flash采用比例和Flex编程模型:
Flex 2和Flex 3必需运行在Flash Player 9上。Flash Player 9运行时目前已经被安装在世界94%的计算机上:http://www.adobe.com/products/player_census/flashplayer/version_penetration.html
Flex 2和Flex 3的应用程序执行在Flash Player 9环境下。Flex应用程序构建在本地Flash Player API之上,如矢量图形、位图处理和网络(基于浏览器网络协议栈)。Flex框架增加了如日期选择器、数据表格、图表等可重用组件。编译Flex应用程序的结果产生一个SWF文件,它是供Flash Player使用的二进制字节码格式。SWF文件包含的是Flex框架代码和项目自定义代码的字节码。Flex编译器对字节码进行了优化,只将要用的类编译到SWF文件中。
对于桌面应用软件,Adobe的目标是推出自己名为Adobe AIR的新桌面运行时,希望能像Web运行时一样普及。Adobe AIR 1.0版本将于2008年初发布。目前,从labs.adobe.com上可得到的AIR是测试版。许多公司都已经在使用AIR构建产品软件。eBay的应用程序eBay桌面就是一个例子。
Flash Player是100%私有的。
Ward继续为InfoQ.com做出说明:
Flash Player的核心是Tamarin虚拟机,这是Mozilla旗下的一个开源项目。而SWF文件格式不是完全开放的,它是由osflash.org社区备案的。已有很多读写SWF文件的开源产品。Flash Player产品的发展方向在很大程度上受该社区及其需求所影响。Flash Player的核心语言是ECMAScript 262的一个实现,ECMAScript 262是JavaScript的规范。Flex还将CSS用于组件/应用的样式。Adobe AIR使用web标准以及开源技术如Tamarin、Webkit和SQLite作为其桌面应用的基础。
Flash是为设计者、视频准备的,而且让人讨厌。
2007年7月Ward在博客文章“我是如何克服对Flash的恐惧”中指出:
毋庸置疑的,Flash的能力被滥用了。弹出窗口、跳过介绍和烦人的广告横行于我们的屏幕上。我曾听人们说过不应该因为一个宗教被滥用而否定它。这一格言同样适用于技术。FLASH不能因为有些人拿它来做令人讨厌的东西而遭到摒弃。毕竟e-mail并没有因为垃圾邮件泛滥而消失。
Ward为InfoQ.com详细阐述了该主题:
传统的FLASH是用为设计者提供的基于时间轴的工具构建的。Flex是用于构建基于Flash的内容/应用的开发者工具套件。设计者和开发者通过共享两个工具之间的资源能够携手合作。Flex增加了一个全面的组件库:
http://www.adobe.com/go/flex_explorer_a pp
http://www.adobe.com/cfusion/exchange/index. cfm?event=productHome&exc=15&loc=en_us
Flex不是为企业/商业应用准备的。
在过去数周里,Ward 发布了关于Oracle在Adobe Flex之上实现大量新应用的七篇系列博客文章。这些应用软件近来公布在Oracle OpenWorld 上,其范围涉及从销售工具到数据库管理和商业智能。
除了Oracle对Flex的使用,InfoQ.com也公布了一些使用Flex开发企业应用的团体。Ward也为InfoQ.com指出了很多使用Adobe Flex开发企业级应用的例子,包括:Workday, SAP, Salesforce和Business Objects。
Flex太贵。
Ward详述了Adobe所做的一系列努力来消除公众对价格的误解:
Flex是为构建Web和桌面的丰富互联网应用所提供的、免费的开发工具包,并且马上要开源。免费SDK包含了开发者构建RIA应用所需的一切,构建出的RIA应用可在任何浏览器或操作系统上同样工作。免费Flex SDK的一部分部分是一套内容广泛的组件集,其可扩展、可更换皮肤且可访问。你可以在Flex组件资源管理器上看到很多这样的组件:http://www.adobe.com/devnet/flex/samples/code_explorer/
Flex Builder是一个可选的Eclipse插件,这让使用免费Flex SDK开发应用软件更高效。它包括如集成调试、设计视图和代码补全等功能。
最近也采取了不少办法来调整Flex Builder的价格。Flex Builder现正免费提供给学生及教职人员。不带图表组件的vanilla版本Flex Builder,其价格已降至249美元,以此更好地平衡Flex Builder的价格等级。
还有许多构建Flex应用后端基础结构的可选项。为了利用高性能AMF数据传输协议,有如LiveCycle数据服务这样的官方Adobe产品,以及如Granite数据服务这样的众多开源项目。使用AMF消除了以下不必要的步骤:从数据转换为文本(SOAP, RESTful 等),传送,然后再由文本转换回数据。AMF还允许在线传送中保存类型信息。
关于AMF 和其他基于文本序列化技术的比较,请看James Ward的RIA基准应用系统普查:http://www.jamesward.org/census.
Flex的应用程序需要专用服务器。
Ward再次为InfoQ.com讲述:
Flex应用程序可以运行在任何Web服务器,应用服务器和数据库服务器之上。Flex应用程序更像是客户端-服务器应用程序。由于逻辑是运行在Flash Player客户端内,你需要某种方式来与服务器交互。你可以有很多不同的选择将Flex连接到你的基础结构。不需要任何专用库,你可以将你的后端数据和服务暴露为RESTful、XML或SOAP,并且很容易在你的Flex应用中消费这些数据。如果选择使用AMF二进制序列化协议,你可能需要添加一些额外的库到你的web应用软件。AMF只是另外一种序列化技术,就如XML或JSON 一样,所以它可以作为你用于和后端SOA沟通的多样方式中的一种。
Flex很难学。
InfoQ.com社区的Leftie Friele,就InfoQ.com文章"谁在使用Flex?" 发表了评论,详述了他的公司在学习Flex上的经验:
我们初创公司Ezmo在开创以来就在使用Flex,我们非常愉快的使用该框架。
不需要任何Flex/Flash的预备知识,我们可以在少于两周之内构建出我们的应用程序。Java和Flex之间的整合更是超级简单,开始使用Flex就像是公园漫步。
说到工具支持, Flex Builder也是相当不错。如果你熟悉Eclipse环境,你能顺利起飞,不会碰到任何问题。唯一缺憾是缺少更好的持续集成工具和更好的Maven插件来构建Flex应用。
对于Flex新手们,Ward给了一段截屏录像,展示了一个Flex应用的构建过程,以帮助你起步。此外,还有许多关于使用Flex和Java的其他文章在 Adobe Developer Connection上 。
使用Flex,我需要重建我的整个应用。
今年1月,Bruce Eckel发表了一篇题目为"混合Java" 的文章。文章中他认为Java团体应该继续使用Java好的方面,但是也应该采用其他技术来替代Java薄弱的方面。文中主要焦点是使用Adobe Flex作为用户界面来取代传统的Java选项(Swing、JSF等……)
Ward详细阐述了这一概念:
既然Flex应用程序只是应用程序的UI端,而后端通常都是一样的。如果你的后端是依照SOA模式构建的,那么通常很容易将这些服务暴露给一个新的Flex UI。这将保持你现有的商业逻辑不变,无论它使用的是EJB、Spring服务还是POJO。
Flex打破了常规的浏览习惯,象后退按钮。
Ward的博文讨论了后退按钮:
Flex已经内建了对后退按钮的支持且非常容易定制,因此这已不再是问题。Flex也提供了一个简单的办法来处理“#”url(或命名的锚点),url随应用状态的变化而变化。另一个Web 1.0的整合问题业已解决。
Ward为InfoQ.com补充了更多的细节:
Flex 3给应用提供了一个简单的方式在命名的锚点中储存状态参数,当该URL被请求时可以根据这些参数正确地恢复状态。有关这一特点的更多信息可以参见Flex 3特性介绍:深连接专题介绍文档。
可访问性对Flex应用来说一直是非常重要。因为Flash Player与Jaws及其他可访问性技术一起工作的,因此为基于Flash的应用程序增加可访问性的能力已经具备了。Flex框架将可访问性纳入核心框架。有许多不同方面的可访问性,这取决于你的应用程序需要支持什么样的损伤和残疾。你可以在开发者指南中找到更多有关Flex可访问性特性的信息。
Flex能做到的,Ajax也能做到。
Ward解释说:
Flex RIA和Ajax不是非此即彼的关系。像Google Finance网站就展示了如何同时使用Flex和Ajax。Ajax非常适合以内容为中心的应用,而Flex则适合于互动,媒体和数据为中心的应用。如果你的应用介于这两者之间,那么你可以用Flex Ajax Bridge来结合这两种技术。在 Flex 3里,Flex Ajax Bridge已经直接集成到SDK中。如果使用的Flex 2,你将需要单独下载Flex Ajax Bridge。
此外,InfoQ.com社区的Michael Marth讲述了他的小组为什么选择Flex:
我们即将推出的网上约会站点viibee.com使用的就是Flex 2
理由是:付出相同的努力,Flex使我们能够创建的用户体验远远超过我们用Javascript/Ajax所能做到的。
分享到:
相关推荐
Adobe Flex 3.2 是一个强大的开发框架,用于构建富互联网应用程序(Rich Internet Applications, RIA)。这个框架主要由ActionScript编程语言、Flex Builder IDE、Flex SDK和MXML标记语言组成,它允许开发者创建交互...
Adobe Flex4 教程帮助手册pdf
Adobe Flex 3 API 是一套强大的开发工具,用于构建富互联网应用程序(Rich Internet Applications,简称RIA)。这个API提供了丰富的用户界面组件、数据绑定机制以及ActionScript 3.0的支持,使得开发者能够创建出...
Flex 3引入了诸多新特性,包括改进的组件模型、增强的图形和动画支持以及对移动设备的初步支持。 在提供的压缩包文件中,我们可以看到以下几个关键文件: 1. `build.bat` 和 `build.sh`:这是两个构建脚本,分别...
Adobe Flex 是一个开源框架,主要用于构建富互联网应用程序(RIA,Rich Internet Applications)。它是由Adobe公司开发,基于ActionScript和MXML语言,允许开发者创建交互性强、功能丰富的Web应用。本教程针对初学者...
Adobe Flex 3是一款由Adobe公司推出的开发框架,用于构建富互联网应用程序(Rich Internet Applications, RIA)。这个框架基于ActionScript 3.0,一个面向对象的脚本语言,与Flash Player和Adobe AIR运行时环境兼容...
Adobe Flex Builder 3 是一款由 Adobe Systems 开发的专业级集成开发环境(IDE),主要用于构建基于 Adobe Flex 框架的应用程序。该工具集成了代码编辑器、调试器以及各种开发辅助功能,为开发者提供了高效、便捷的...
Adobe Flex 快速入门指南是针对开发者学习和掌握Adobe Flex技术的一系列教程资源。Adobe Flex是一种开源框架,用于构建富互联网应用程序(Rich Internet Applications,RIAs),它允许开发者使用MXML和ActionScript...
Adobe Flex 3 高级编程 源码
- **ActionScript优化**:Flex 4.5对ActionScript引擎进行了优化,提升了运行时性能,增强了对ECMAScript 4特性的支持。 - **Flex Builder集成**:虽然Adobe Flex SDK是免费的命令行工具,但Flex Builder(后来...
Adobe公司最近发布了Flex4.1框架,在7月18日发布了全新的Adobe Flex 4.1中文语言参考。http://help.adobe.com/zh_CN/AS3LCR/Flex_4.0/,本想做成CHM版本,由于CHM默认会调用IE显示内容,导致左边目录无法显示,因此...
许多现有的 Flex 组件已扩展到移动设备上,其中包括增加了对触摸滚动的支持。Flex 4.5 还包含一组新组件,可用来轻松构建 采用手机和平板电脑标准设计模式的应用程序。 Flash Builder 也进行了更新,增加了许多新...
### 使用Adobe Flex 4 #### 一、简介 Adobe Flex 4是一款强大的开源框架,用于构建高质量的桌面和移动应用程序。此框架支持丰富的用户界面组件和数据可视化功能,旨在为开发者提供灵活且高效的开发工具。《使用...
Adobe Flex Builder 3.0是Adobe公司推出的一款强大的集成开发环境(IDE),专门用于构建富互联网应用程序(RIA),特别是基于Adobe Flash Player和Adobe AIR的应用。本教程将深入讲解Flex Builder 3.0的各个方面,...
Adobe Flex 是一个开源框架,主要用于构建富互联网应用程序(RIA,Rich Internet Applications)。它是由Adobe公司开发的,旨在帮助开发者创建具有交互性、响应性和丰富图形界面的Web应用程序。Flex使用MXML和...
Adobe Flex4.0 ActionScript3 中文API 语言参考.part1.rar的下载地址: http://download.csdn.net/source/3245173 Adobe Flex4.0 ActionScript3 中文API 语言参考.part2.rar的下载地址: ...
Flex的优势在于其组件化、可扩展的架构,以及对RIA的优化支持。它提供了丰富的UI组件、强大的数据绑定、高效的网络通信和良好的跨平台兼容性。此外,Flex的开源性质使其社区活跃,不断有新的组件和工具涌现,增强了...
Adobe Flex是一种基于开放源代码的、跨平台的RIA(Rich Internet Application)开发框架,它允许开发者创建具有丰富用户界面的Web应用程序。在Flex Builder中,开发者通常会使用ActionScript进行编程,这是一种基于...