InfoQ

新闻

开源开发框架展现出Flex平台的发展势头

作者 Moxie Zhang译者 郭晓刚 发布于 2008年1月20日 下午9时12分

社区
Java
主题
RIA,
富客户端/桌面
标签
Flex

Adobe Flex及相关技术正成为RIA领域的主流。虽然Flex社区的规模还远比不上Java或Microsoft平台,但它正在Flex RIA开发者们的栽培下稳健地成长。许多开源开发框架也因此被创造出来:

Cairngorm下载

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应用的时候才能体现出来,比如有多个用例和视图,由一整个团队负责开发,以及团队中存在设计师、创意型开发者、技术型开发者等受过不同训练的成员的情形。

PureMVC下载

它实际上是一个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((下载)

Model-Glue:Flex也是一个简单的MVC Flex框架。Joe Rinehart把他最初创作的Model-Glue for ColdFusion移植到了Flex。Model-Glue: Flex受到了好评。它的设计意图是成为一个比Cairngorm和PureMVC更轻量的框架,因此更便于快速原型和简单的Flex应用开发。

Foundry下载

ServeBox Foundry(sbasfoundry)是为Flex 2应用程序开发而设计的ActionScript 3 / Java框架。它根据几个设计模式而设计,还包括了一些工具,用来解决Flex 2开发中一再重现的烦人问题:Model-View同步、屏幕浏览、访问控制列表(开发中)、本地化以及标签文字外部化等等。

Foundry是为中大型规模的企业RIA系统开发而设计和实现的。它包含了Java公用模块,用来将Foundry Flex插件与服务器端的进程紧密集成。

Guasax Flex Framework下载

Guasax是一个易于使用的编程框架,可实现条理清晰的,可伸缩的Flex应用程序。

Guasax框架在运行时依照MVC模式来处理程序的动作。Guasax的一个独特之处是它用一个XML文件来配置业务逻辑中的动作,在某些方面类似于Java Struts框架。可通过开发Guasax组件来扩展Guasax。

ARP下载

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 Framework下载

Flest是构建企业级RIA的ActionScript3 / Flex应用程序框架。它运用了Controller、Factory、Command等设计模式。它的设计理念是高效、简单和实用。Flest框架是一个轻量级且易于使用的工具集合,不但帮助搭建开发的环境,还给开发者最大的自由去实现自己的决定。

除了上面列出的框架,还有一些使用不那么广泛的。你可以看一下EasyMVCAdobe FASTJoeberkovitz的框架

除了用来开发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

6 条回复

回复

框架,好用吗? 发表人 James Tong 发表于 2008年1月21日 上午2时7分
Re: 框架,好用吗? 发表人 Xiaogang Guo 发表于 2008年1月21日 上午2时38分
Re: 框架,好用吗? 发表人 James Tong 发表于 2008年1月21日 上午3时0分
Re: 框架,好用吗? 发表人 Xiaogang Guo 发表于 2008年1月21日 上午4时19分
Re: 框架,好用吗? 发表人 James Tong 发表于 2008年1月21日 上午11时4分
FunFX据说也不错,支持TDD的自动化测试框架 发表人 James Tong 发表于 2008年1月21日 上午2时27分
  1. 返回顶部

    框架,好用吗?

    2008年1月21日 上午2时7分 发表人 James Tong

    本来编译速度就慢,不知道加上框架会如何。

  2. 返回顶部

    FunFX据说也不错,支持TDD的自动化测试框架

    2008年1月21日 上午2时27分 发表人 James Tong

    可惜昨天晚上再次尝试使用FunFX失败,Grantie DS这个听起来很不错。

  3. 返回顶部

    Re: 框架,好用吗?

    2008年1月21日 上午2时38分 发表人 Xiaogang Guo

    Flex 3编译速度提升不少。不见得要用框架啦,不过用一些模式还是必要的,不然事件处理代码都混在一起很难维护。

  4. 返回顶部

    Re: 框架,好用吗?

    2008年1月21日 上午3时0分 发表人 James Tong

    也不多快,1万多行代码的项目编译起来都能搞成二十多秒。每次Ctrl + s之后痛苦死了。

  5. 返回顶部

    Re: 框架,好用吗?

    2008年1月21日 上午4时19分 发表人 Xiaogang Guo

    我都把自动编译关掉,项目大的话还可以分成几个Modules。

  6. 返回顶部

    Re: 框架,好用吗?

    2008年1月21日 上午11时4分 发表人 James Tong

    Module确实是很好的选择,正准备试试,只是担心在访问全局属性的时候会不会出问题。

独家内容

剖析短迭代

敏捷教练Dave Nicolette提出:我们应该如何设定迭代长度?是要根据发布周期的时间么?使用短迭代又有哪些好处?

应用JSF、Ajax和Seam开发Portlets(1/3)

本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。

AtomServer:数据分发的发布动力(第二部分)

在这篇文章里,Bryon Jacob和Chris Berry将和我们继续探讨AtomServer,它是基于Apache Abdera的完整Atom存储实现。作者还创建了几个Atompub规范扩展,其中包括自动标记、批处理和Feeds聚合。

架构师(试刊第二期)

InfoQ中文站的电子杂志《架构师》试刊第二期出版了!相比于上期,我们在内容的选择安排和版式上都根据读者的意见重新做了修正。“细节决定成败”,我们希望基于InfoQ中文站的专业内容,《架构师》能逐渐成为大家喜欢的电子刊物!

一种正规的性能调优方法:基于等待的调优

在本文中,Steven Haines探讨了Web应用性能调优问题。该领域过去更像是一门艺术而不是一门科学。他提出了一种称为基于等待调优的方法,使整个调优过程更加可度量,也因此更具科学性。

Java程序员ActionScript 3入门

通常来说,改变技术路线时最艰难的部分是辨别语言语法之间的不同。这篇文章就为Java开发者提供了一份如何转向Flex基础语言ActionScript的指南。

浅谈如何创建Rails应用

本视频主要以财帮子为例,介绍了如何创建一个PV为百万级的Rails应用。其中包括:Rails应用的服务器架构、Rails Cache的优化、负载均衡的处理、Web服务器的调试、分布式解决方案、Open API的设计等等。

Alexandru Popescu谈InfoQ.com网站架构

InfoQ首席架构师Alexandru Popescu在采访中谈论了InfoQ架构、Webwork与DWR、Hibernate与JCR、Hibernate可扩展性、最新的InfoQ视频流系统和InfoQ的未来规划。