辅助功能*

Flex 文章

 

Flex 2: Enabling the Next Generation of Rich Internet Applications


David Wadhwani

David Wadhwani

Macromedia

出版日期:
17 October 2005
修正日期:
8 May 2006
用户级别:
全部

2005 年 10 月,Macromedia 首次对开发人员群体展示了 Adobe® Flex™ 2,该软件是一套全新的开发人员工具、库和运行时服务,能够使开发人员在任何地方构建和部署利用 Flash® Player 运行时的 Rich Internet Application。 之后,数以万计的开发人员开始用 Flex 构建应用程序,并向我们提供反馈。此外,Macromedia 成为 Adobe 的一部分后,为改进未来的 Internet 应用程序提供了全新的机会。

我们可以非常自豪地向您展示推出 Flex 2 beta 3 后最近几个月的成果。 通过将直观的编程模型、强大的基于 Eclipse 的 IDE 以及一套丰富的基于 J2EE 的运行时服务结合在一起,我们相信 Flex 2 系列产品为开发人员提供了目前可以获得的最全面的解决方案,来交付跨平台的 Rich Internet Application。 使用最近发布的收费系统,开发人员可以免费构建和部署许多种类的应用程序,而无需在服务器上进行任何安装。 而使用最近在开放源码许可下发布的技术(如 Flex-Ajax BridgeAjax Client for Flex Data Services),开发人员可以递增地将 Flex 组件添加到现有网站和应用程序中,而不管它们是基于静态 HTML 还是基于 Ajax 技术。

推动 RIA 开发的发展

Macromedia 看到开发人员和设计者在 Macromedia Flash 中进行构建之后,于 2001 年初创造了 Rich Internet Application 这个词语。 很明显,这些应用扩展了设计的局限性和传统 HTML 应用的交互限制。用户与这些应用交互时并不要求整页刷新。它们有效地利用了网络带宽,只传输已更改的那部分数据,并使所传输的布局信息最少。它们包含一组允许最终用户直接操纵数据的丰富交互。它们将音频和视频无缝地分层到应用的用户界面中。当用户浏览该应用时,它们清晰地保持了其上下文环境。而且,他们还支持高保真打印。

Rich Internet Application 的影响广度和深度是令人难以置信的。 我们看到其影响范围涉及广泛,从 Internet 爱好者到构建 RIA 的大型企业,并且看到他们的业务因此而显著改善。大型金融服务机构正在使用 RIA 巩固其品牌在客户心中的形象,并且通过与关键任务数据更好的交互加快内部的业务决策制定。 在结账过程中在线零售商已经将购物车废弃率降低了 50%。个人开发人员已经将在线地图服务与在纽约市的交通灯上发布的网络图像集成在一起,为经常往返两地的人提供最新和最有用的交通信息。

当客户开始扩展使用 Rich Internet Application 时,开发人员很快就认识到了一些特殊需要。 一些 RIA 需要使用实时数据服务。一些 RIA 需要在偶发性连接环境中运行,并且在连接建立之后智能同步数据。一些 RIA 需要使用专有二进制协议。 还有一些 RIA 需要多个客户端共享单个数据实例。

根据这些早期采纳者的意见,我们开始提供满足这些需要、并且能够轻松扩展以满足各种应用程序具体需要的 RIA 平台。我们想为开发人员提供一个客户端运行时、开发环境、类库和数据服务,以帮助他们:

  • 在 RIA 应用程序开发中具有极高的生产率
  • 用有效的界面模式创建具有表现力的应用程序
  • 通过均匀分布的高性能跨平台跨浏览器运行时环境部署应用程序
  • 使用与项目大小和任务复杂性相匹配的工具和技术

我们非常高兴介绍 Flex 2 系列产品,它是构建大量有吸引力的应用程序的最佳方式,从简单的餐馆菜单到复杂的工作流系统和同步的商用台式机。

如果您熟悉 Flex 1.0 或 1.5,请注意 Flex 2 不仅仅是一个新版本,认识到这一点非常重要。 从技术的观点来看,Flex 2 引入了能使开发人员构建全新类别的 Rich Internet Application 的新功能。 同时,Adobe Flex Builder™ 是在 Eclipse 开放源码 IDE 框架的基础上从头开始构建的,现在包含 Flex Framework 和编译器。 此外,ColdFusion® 和 Flex 团队正在密切合作,以在 Flex Builder、Flex Data Services 和 ColdFusion Server 之间提供特定于 ColdFusion 的集成点。

除了技术和产品的进步之外,我们还对 Flex 2 包装、定价和部署的方式作了显著的改进。 Flex Framework 可通过 Adobe Flex 软件开发套件 (SDK) 免费获取。 Flex SDK 包括开发、编译和部署连接到任何 XML 和 SOAP Web 服务的 Flex 应用程序所需的命令行编译器和文档。 它将可供单独下载,并且开发人员可以使用它免费构建和部署任何应用程序(包括商业用途的应用程序)。 我们还计划让用户在单个、非集群服务器上免费使用 Flex Data Services 2 的限制连接版本。 (当然,Flex Data Services 2 也将在每 CPU、每个项目和企业许可的基础上进行商业许可。) 总之,这些免费提供的产品可以使每个开发人员将业界最强大的跨平台 RIA 技术用在每个项目上。这真是太棒了。

Rich Internet Application 的新基础: Flash Player 9

Flash® Player 是 Flash Platform 的骨干,它也将不断发展演变,以为 Flex 2 系列产品和下一代 RIA 提供基础。 经过这么多年的时间,开始主要作为播放动画的客户端的播放器通过添加对 ECMAScript 标准各部分(与推动 JavaScript 开发的标准相同)的支持,逐渐扩展了它的脚本语言 (ActionScript)。 通过发布 Flash Player 7,ActionScript 实施了大多数 ECMA 标准。Flash Player 9(直到最近仍称为 Flash Player 8.5)计划随 Flex 2 系列产品一起推出。 随之我们引入了 ActionScript 3.0,它是一种强大的面向对象的编程语言,专为提高生产效率和性能而设计,基于下一代的 ECMAScript 标准。

Flash Player 8(2005 年 9 月 发布)在渲染引擎方面有了很大的提高,它引入了一套扩展的更具表现力的功能(过滤器、高级渐变控制、渲染性能等等),以及当今 Web 上无可比拟的视频支持增强(更高的质量编解码器、alpha 通道支持等)。 Flash Player 8 还极大地改善了 API,允许开发人员在播放器中运行的应用程序、浏览器的 HTML 文档对象模型以及关联的 JavaScript 功能之间进行通信,从而可以轻松地向现有的 Web 页和应用程序添加 Flash 组件。

Flash Player 9 侧重于改进在虚拟机上的脚本执行,因此它是在 Flash Player 8 的先进特性基础之上构建的。 实际上,它包含全新的高度优化的名为 AVM2 的 ActionScript 虚拟机 (AVM) 和 ActionScript 编程语言的新版本。AVM2 是从头开始构建的,其目的是支持 RIA 开发人员的需要。新的虚拟机速度非常快,它支持全部运行时错误报告和业界标准的调试。它包含二进制套接字支持,从而允许开发人员扩展播放器以和任何二进制协议一起工作。Flash player 9 也将包含 AVM1,它执行 ActionScript 1.0 和 2.0 代码,以实现与现有和以前内容的后向兼容性。

凭借 ActionScript 3.0,我们能够符合更多的非 ECMAScript 标准;现在 Adobe 掌管 ECMAScript 委员会,并有助于推动它的发展。ActionScript 3.0 采用了一种可以进行更强的编译时类型检查的编译模式,它提供了多种语言(如 Java 或 C#)的优势。它支持简化数据处理的新功能,包括 E4X (ECMAScript for XML) 标准,这个标准扩展了该语言并作为本地数据类型添加了 XML ,从而允许开发人员更自然地与 XML 进行交互并对其进行处理。它添加了正则表达式支持,从而实现了更好的文本解析和处理。它去除了旧虚拟机中一些特殊的事件处理方案,以支持基于 W3C DOM 事件标准的统一模型。同时它还极大地更新了面向应用开发人员群体的 API。

有关新功能的完整概述,请阅读文章 ActionScript 3.0 概述Flash Player 9 简介

Adobe Flex 2 系列产品

Flex 系列产品为应用开发人员提供了一种强大的客户端运行时、编程模型、开发环境和数据服务。 它支持常见的设计模式,与现有的开发和部署技术协同工作,并且提供现代的、基于标准的语言的优势。该系列产品包含以下独特的技术:

  • Adobe Flex Framework 和 SDK
  • Adobe Flex Charting 2
  • Adobe Flex Builder 2
  • Adobe Flex Data Services 2

Flex Framework

Flex 2 的核心是 Flex framework,Flex framework 将作为 Flex 软件开发套件 (SDK) 的一部分免费进行分发。 该框架提供了一个丰富的类库(包含构建成功 RIA 的最佳实践),因此它是建立在 Flash Player 9 和 ActionScript 3.0 提供的基础之上的。 Flex Framework 提供了一套丰富的可扩展的用户界面组件、一个用来控制布局和用户交互的灵活模型以及一个功能强大的基础架构,该架构用来访问来自远程服务的数据并将其绑定到数据对象和用户界面控件上。

Flex 组件库包括 100 多个组件和容器,从简单的窗口组件(如按钮和颜色选择器)到高级控件(如数据网格、accordion 窗格和丰富的文本编辑器)。 开发人员可以使用这些内置的组件构建应用程序的用户界面,对它们进行分类以修改其行为,或使用组件 API 创建全新的组件。与其他现代用户界面开发环境一样,Flex 能够使开发人员利用预先定义的交互操作,如数据网格上的可拖动列,或编写一些明确定义的事件来定义特定于应用程序的行为。

开发人员用基于 XML 的语言 MXML 对 Flex 组件进行布局,该语言提供了一种声明方法,来控制应用程序的可视外观。通过使用 MXML,开发人员可以定位组件,指定约束条件以支持更“明快”的用户界面,并使用“视图状态”和“转换”控制应用程序如何对不同的用户操作和应用程序事件做出响应。 为了自定义应用程序的外观,开发人员可以通过层叠样式表 (CSS) 设置内置样式属性,或使用内置 9 片段支持附加自定义的可视化资产。

Flex 应用程序通过一套内置的服务组件访问数据和服务。 开发人员可以通过 HTTP 和 Web 服务访问 XML 数据,并利用由 Flex Data Services 提供的其他服务,包括到远程 Java 对象的连接、发布/订阅消息和新的 Flex Data Services。 为了便于使用数据,Flex 提供了丰富的数据绑定基础架构,以在返回数据时自动更新用户界面,从而使得即便在等待从服务器返回结果时,应用程序仍然可以做出响应。

阅读 Flex Framework 简介可以详细查看 Flex Framework 2 中的增强功能。

Flex Charting 2

Adobe 提供了到 Flex 的灵活的图表扩展。开发人员可以轻松地向任何应用添加这些数据可视化组件。在客户端动态渲染图表组件,从而能够更轻松地添加展开、滚动和其他交互性,从而使您的图表比以前更直观。图表组件具有完全暴露的 API,它允许您轻松定制组件或创建您自己的组件。

图表包完全集成到框架的常规基础架构中,以支持效果、样式、数据绑定和拖放,它将与 Flex Data Services(请参见下面的内容)无缝地协同工作。

Flex Builder 2

Flex Builder 2 是从头开始定义的一个全新工具,旨在为开发人员提供一个难以置信的生产率环境来构建 Rich Internet Application。 它提供了一流的编码和调试环境;采用了直观的布局、样式和交互设计工具;并促进了良好的可保持的编码习惯。建立在 Eclipse 平台上的 Flex Builder 提供了一组熟悉的和真正可扩展的功能。

使用 Flex Builder 2 的开发人员将发现这些工具大大加快了他们的编码工作。“内容辅助”功能能够对 MXML 和 ActionScript 使用代码提示。代码导航功能帮助您迅速发现方法或类的定义。在保存每个文件时自动以增量方式编译应用程序的选项加快了编辑-运行-调试周期。内置的错误报告使查找和修复错误变得更加容易。上下文相关的帮助系统使得可以快速找到所需的文档。高级调试视角提高了调试 Flash 应用程序的效率,并能够使那些已经使用 Eclipse 的人在一个 IDE 中调试客户端和服务器代码。 最后,它与源控制系统(如 CVS)和构建工具(如 Ant)的集成使团队的开发工作变得更容易。

开发人员将发现按绝对位置、相对位置或预先定义的布局规则(如垂直、平铺等等)对控件进行布局的灵活的可视支持。“视图状态”的可视设计支持是一项创新功能,它能够使您使用很少的代码,以可视化的方式定义控件的外观或整个应用在对某个事件做出响应时如何变化。CSS 编辑器加快了新样式表的创建或与现有样式表的集成,而且将“设计”视图中所编辑的样式和外观显示为您的代码的能力缩短了更新和测试周期。它还支持手工编辑的代码和“设计”视图生成的代码之间的无缝巡回,这样,开发人员团队一起工作时就不会有代码冲突。

开发人员使用 Flex Builder 2 可以导入用 Flash Professional 8 制作的多媒体和视频。我们的目标是为交互式设计人员、录像师、多媒体制作者和应用程序开发人员团队提供全世界最好的工具。 他们可以使用 Flash Professional 创建最精确、最强大和最有表现力的交互内容和媒体。他们可以使用 Flex Builder 创建最吸引人的应用体验。过一段时间,我们打算加强这些工具之间的工作流,从而使协同工作更容易更有效。

我们将作为具有标准工具定价模型的独立产品提供 Flex Builder 2。请参阅 Flex Builder 2 简介中的详细信息。

Flex Data Services 2

在 Flex 1.0 中,我们提供了一组运行时服务,以协助数据传输以及与现有服务器基础架构的集成。 Flex Data Services 2 提供了一组基于消息的服务,并支持通过透明地同步层之间的数据来连接您的企业体系架构和信息表示的功能,性能又向前迈出了一大步。 这通过减少编写、调试和维护在客户端、应用和数据库层之间移动数据所需的易错代码的时间,极大地提高了开发人员的生产率。

Flex Data Services 还展示了用于在客户端和服务器之间移动数据的强大消息基础架构,并能够使开发人员轻松创建有效利用实时数据、偶尔可用的服务以及非常大的数据集的应用。 Data Services 功能无缝扩展该框架,从而能够使开发人员仅用很少的开销实现收益。 例如,客户端消息架构为事件以及数据排队与同步提供了最佳模型,从而允许组织花费很少的精力产生偶发性连接应用。

此外,Flex Data Services 还增强了我们有效的、用于数据传输 (AMF) 的二进制协议;并且继续支持与 Web 服务和 Java 对象的 RPC 样式交互。 有关详细信息,请参阅Flex Data Services 概述

Flash Platform: 扩展 Rich Internet Application 的丰富功能

Flash 一直为用户带来最新最好的体验,这要归功于技术的能力,以及推动传统设计方法发展的惊人的创造群体。通常 Flex 开发人员可以立即使用用户体验设计中的先进功能。例如,最近我们将 Flash Player 用在了音频和视频上。

Flash Player 是市场上部署最广泛的音频和视频播放器。它允许视频元素无缝集成到周围的内容或应用中,如您的 RIA 中的触发视频提示点事件。它支持短视频文件的渐进式下载并与 Flash Media Server 2.0 集成在了一起,以便流入更多交互的更高质量的长视频。

群体已经利用这些功能创建了 Rich Internet Application,这些应用程序破坏了当前存在于应用和富媒体之间的筒仓。 并非是让其应用程序启动单独的媒体播放器,因此产生了不连续的体验,而 Flex 开发人员可以真正地将视频集成到其应用程序的用户界面和工作流中。 例如,培训视频可以导航并突出您应用程序中的特定用户界面元素,并且您的应用程序可以提示视频中的特定部分以根据用户的操作进行播放。通过使用 Flash Media Server 2Flash Video Streaming Service,即用于交付领先的 CDN(内容交付网络)合作伙伴与 Adobe 一起开发的大规模 Flash Video 部署的托管服务,可以将 Flash 视频和音频流集成到 Flex 2.0 应用程序中。

最终,Adobe 和 Macromedia 的合并已经完成,您会看到 Flex 系列产品中引入的创新。正如所期望的一样,我们研究的一些领域包括支持实时协作、改进的设计者-开发人员工作流以及对脱机应用程序和文档提供更大支持。了解有关未来几个月中 Adobe 实验室研究方向的详细信息。

号召群体参与其中

到现在为止,您已经看到 Flex 2 系列产品(包括 Flash Player 9、Flex Framework、Flex Builder 和 Flex Data Services)的高层概述。 Flex 2 系列产品的目标是为开发人员群体提供一个出色的平台,以为其客户提供最佳的应用体验。

我们推出了 Flex 2 的 Prerelease 版本,以使所有开发人员群体能够有机会及早了解产品的方向,并向我们提供反馈。 我代表 Flex 产品团队鼓励您访问 Adobe 实验室,下载我们的 beta 产品并使用它。 如果您是一名 ColdFusion 开发人员,一定还要下载其他的 ColdFusion/Flex Connectivity beta 3 更新。 您可以订阅 RSS 服务,以确保获取最新信息,并在 Adobe 实验室论坛上与其他开发人员一起讨论您的想法和遇到的问题。

为了使您使用 alpha 的初始体验更有效,我们将提供一系列示例应用程序、教程和其他资源,您可在经历刺激的“越野”之旅前进行浏览。

当您体验了 Flex 2 的功能时,请告诉我们您的想法。 我们希望与您合作构建一组产品,使您改善 Internet 应用程序。

Flex 2 的资源

关于作者

David Wadhwani 是 Macromedia Flex 产品开发部门的副总裁。 在 2002 年加入 Macromedia 之前, 他是 iHarvest 公司的创始人兼副总裁。在任职于 iHarvest 期间, 在将基于 Web 的知识管理和协作系统卖给 Interwoven 公司前, 他曾领导该系统的开发和部署。20 世纪 90 年代初他还曾就职于 Oracle, 在那里工作了大约 4 年的时间, 是构思、设计和实施 Oracle 第一个业务分析软件包的核心团队的成员之一。David 毕业于布朗大学, 是 The Indus Entrepreneurs 的成员, 在过去 5 年内许多软件公司是他建议创建的。