Adobe Flex 及相关技术正成为 RIA 领域的主流。虽然 Flex 社区的规模还远比不上 Java 或 Microsoft 平台,但它正在 Flex RIA 开发者们的栽培下稳健地成长。许多开源开发框架也因此被创造出来:
Cairngorm 是最老也最成熟的 Flex 框架。它现在由 Adobe 拥有并开源,而且被 Adobe 的 RIA 顾问服务团队大量使用。创造出 Cairngorm 的 Adobe Consulting 团队是把设计模式框架运用到 RIA 开发的最早的倡导者。Cairngorm 中可以看到许多在 JEE 世界中广泛使用的 MVC 相关设计模式,即使它只是一个仅用于 RIA 用户界面开发的微型架构框架。
Cairngorm 被看作是企业 RIA 开发框架。它的分层 MVC 实现有助于开发出具有复杂的业务逻辑的可伸缩的 RIA 应用。在异步通信、事件驱动、无线程的 Flex 平台上,Cairngorm 为构建严肃的商业应用程序提供了快速而可靠的方法。
Cairngorm 的本质也决定了它可能不适用于小型的快速原型。Adobe 说:
Cairngorm 微架构的意图是为企业 RIA 开发者提供一个框架。如果你在编写一个非常简单的应用(比如程序原型),或者只有一个视图的程序,那么你应该考虑“一体化”的方案,就不必挣扎于 Cairngorm 所倡导的模型、视图和控制分离了。Cairngorm 架构的益处在开发复杂的 RIA 应用的时候才能体现出来,比如有多个用例和视图,由一整个团队负责开发,以及团队中存在设计师、创意型开发者、技术型开发者等受过不同训练的成员的情形。
它实际上是一个 ActionScript 3 框架。与 Cairngorm 不同,它完全不依赖任何 Flash、Flex 或其他 Adobe 的 AS3 类。因此它可用于开发任何基于 Flash 或者 ActionScript 3 的应用程序。
从 PureMVC 的名字中就可以看出,它是根据 MVC 设计模式来实现的,里面包含了三层,即模型、视图和控制器。这个框架的文档很全面,它的网站上也有很丰富的信息去帮助开发者上手。
由于 PureMVC 是纯粹用 ActionScript 实现的,而 ActionScript 是与 JavaScript 基于相同标准(ECMAScript)的,强类型的,完全面向对象的语言,因此 PureMVC 可以很容易移植到其他 OO 语言。而事实上也确实如此:
我高兴地宣布把 PureMVC 移植到 4 种语言的工作正在进行之中:AS2、C#、Java 和 ColdFusion,现已接近向公众公开的阶段。这样 PureMVC 的适用平台就扩大到了 FlashLite、.NET、Windows Mobile、Silverlight、J2ME、SE、EE 以及……ColdFusion:)
这些移植版以及许多演示程序和工具都是由一群专门投身于此项工作的贡献者们完成的,他们遍及全世界。还有许多翻译人员加入进来帮忙把 PureMVC 的文档翻译成其他语言,包括法语、德语、俄语、汉语和日语等等。他们不知疲倦的工作把一个简单的个人项目变成了全球化的开源成果。很快,你就会认识他们,并爱上他们高质量的工作。要是遇到了这群人中的某一位,请他喝一杯吧!
考虑到 ActionScript(ECMAScript)连同 Adobe 所用的 Flash 引擎将被内建于下一代的 Firefox,PureMVC 将会成为 RIA 开发者们开发跨平台富应用的一件非常趁手的工具。
Model-Glue:Flex 也是一个简单的 MVC Flex 框架。Joe Rinehart 把他最初创作的 Model-Glue for ColdFusion 移植到了 Flex。Model-Glue: Flex 受到了好评。它的设计意图是成为一个比Cairngorm 和PureMVC 更轻量的框架,因此更便于快速原型和简单的Flex 应用开发。
ServeBox Foundry(sbasfoundry)是为 Flex 2 应用程序开发而设计的 ActionScript 3 / Java 框架。它根据几个设计模式而设计,还包括了一些工具,用来解决 Flex 2 开发中一再重现的烦人问题:Model-View 同步、屏幕浏览、访问控制列表(开发中)、本地化以及标签文字外部化等等。
Foundry 是为中大型规模的企业 RIA 系统开发而设计和实现的。它包含了 Java 公用模块,用来将 Foundry Flex 插件与服务器端的进程紧密集成。
Guasax 是一个易于使用的编程框架,可实现条理清晰的,可伸缩的 Flex 应用程序。
Guasax 框架在运行时依照 MVC 模式来处理程序的动作。Guasax 的一个独特之处是它用一个 XML 文件来配置业务逻辑中的动作,在某些方面类似于 Java Struts 框架。可通过开发 Guasax 组件来扩展 Guasax。
Aral Balkan 当初把 ARP(Ariaware RIA Platform)作为一个 ActionScript 框架来开发,现在它已成为 Open Source Flash 项目群的一员。ARP 现在支持使用 ActionScript 2 和 ActionScript 3 来开发 Flash 或 Flex 的 RIA 应用。
ARP 可能是 Flash 社区中最老的框架。ARP 的第一版是早在 2000 年用 Flash 5 编写的,其中一部分曾随开源的 FC-Lib 库发布。随后它发展到 Flash MX,其中一部分又进入了开源的 Moose 库。由于它是从 Flash 框架进化而来,ARP 可以在 Flex 和 AIR 中使用。ARP 的代码直接访问 Flash 类,因此有报告说它比其他 Flex 框架性能更好。
Flest 是构建企业级 RIA 的 ActionScript3 / Flex 应用程序框架。它运用了 Controller、Factory、Command 等设计模式。它的设计理念是高效、简单和实用。Flest 框架是一个轻量级且易于使用的工具集合,不但帮助搭建开发的环境,还给开发者最大的自由去实现自己的决定。
除了上面列出的框架,还有一些使用不那么广泛的。你可以看一下 EasyMVC 、 Adobe FAST 和 Joeberkovitz 的框架。
除了用来开发 RIA 用户界面的框架,RIA 开发者还有其他帮手,比如 FlexUnit (ActionScript 3 的单元测试框架), FlexLib (开源 Flex 2 组件库), AS3CoreLib (提供了若干基本工具和出色 JSON 支持的 ActionScript 3.0 类库),以及 Granite DS (Adobe Data Services for J2EE 应用服务器的免费、开源的替代品,支持 EJB3/Spring/Pojo 服务)。
InfoQ 将继续报道 Flex 开源开发社区的新进展。
查看英文原文: Open Source Flex Development Frameworks Show that Platform is Gaining Momentum
评论