Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Open Source Flex Development Frameworks Show that Platform is Gaining Momentum

Open Source Flex Development Frameworks Show that Platform is Gaining Momentum

This item in japanese

Adobe Flex and the technologies surrounding it are becoming mainstream in the RIA space. Even though the Flex community is still much smaller than those of Java or Microsoft platform, it's growing steadily with significant contributions from dedicated Flex RIA developers. This has resulted in the creation of a number of open source developer frameworks:

 Cairngorm (download)

Cairngorm is the oldest and the most mature Flex framework. It's currently owned and opensourced by Adobe and is used extensively by Adobe's RIA consulting services. The team at Adobe Consulting who built Cairngorm have been the earliest advocates of design pattern frameworks for RIA development. Cairngorm adapters feature many MVC based design patterns widely seen in JEE world, even though it's a micro-architecture framework that resides and serves exclusively for RIA user interface development.

Cairngorm is considered a enterprise RIA development framework. Its layered MVC implementation helps development a scalable RIA application with complex business logics. On the asynchronous communication, event driven and none-threaded Flex platform, Cairngorm provides a rapid and reliable way of construct a serious business application.

The nature of Cairngorm also determines that it may not suite a small or quick prototype application. As Adobe states:

The Cairngorm microarchitecture is intended as a framework for Enterprise RIA developers. If you are writing a very simple application (such as a prototype application) or an application with only a single view, then you might consider a "Model 1" solution that doesn't strive for the same separation of model, view, and control that Cairngorm advocates. The benefits of the Cairngorm architecture are realized when developing complex RIA applications with multiple use-cases and views, with a team of developers, and with a multi-disciplinary development team that includes designers as well as creative and technical developers.

PureMVC (download)

This is actually an ActionScript 3 framework. Unlike Cairngorm, It has no dependency on any Flash, Flex or other Adobe's AS3 classes, therefore, it can be used to develop any Flash based or ActionScript 3 application.

As its name suggested, PureMVC is implemented according to the MVC design pattern, which includes three layers, model, view and controller. This framework is very well documented and its web site contains very rich information to help developers get started.

Since PureMVC is implemented purely on ActionScript, which is a strongly-typed, fully object-oriented language based on the same standard as JavaScript (ECMAScript), it can be relatively easier to be ported to other OO languages. In fact, according to PureMVC,

I'm happy to announce that there are ports to 4 different languages in progress: AS2, C#, Java, and ColdFusion, nearing public readiness. This puts PureMVC on FlashLite, .NET, Windows Mobile, Silverlight, J2ME, SE, EE, and well... ColdFusion :) 

These ports as well as lots of demos and utilities are being written by a dedicated group of contributors  spread all over the world. Translators are also signing on and being sought to help expand the PureMVC documentation into other spoken languages, such as French, German, Russian, Chinese, Japanese, etc. Their tireless efforts are turning what was a simple, one man project into a truly global open-source effort. Soon, you'll know them and love them for the quality of work that they are committing to the repositories as I write this. Later, when you see one of these people, by them a beer!

Considering that ActionScript (ECMAScript) will be built into next generation Firefox along with the same Flash engine Adobe is using, PureMVC can be a very useful handy tools for RIA developers to develop cross platform rich applications.

Model-Glue: Flex (download)

Model-Glue:Flex is another simple MVC based Flex framework. Joe Rinehart, the author of original Model-Glue for ColdFusion port it to Flex. There are positive comments about Model-Glue: Flex. It's design to be more lightweight than framework such as Cairngorm and PureMVC, which makes it easier for quick prototyping or simple Flex application development.

Foundry (download)

The ServeBox Foundry ( sbasfoundry ) is an ActionScript 3 / Java framework designed for Flex 2 applications development. Its design is based on several design patterns, and includes tools built to resolve some of the recurrent Flex 2 development issues : Model-View sync, screen-browsing, Access-Control Lists (currently in development), localization and labels externalization, etc.

Foundry is designed and implemented for mid to large scale enterprise RIA system development. It includes Java common module to tight integration between Foundry flex plug-in and server side processes.

Guasax Flex Framework (download)

Guasax is an ease of use programming framework to provide ordered and scalable Flex applications.
Life cycle of guasax framework is based in the MVC pattern to take on our program actions. One uniqueness of Guasax is that they use a XML file to configure the actions in the business logic, which reassemble some aspects of Java Struts framework. Guasax can be extended by developing guasax components.

ARP (download)

Aral Balkan initially developed ARP (Ariaware RIA Platform) a ActionScript based framework and now it's hosted as one of Open Source Flash projects. ARP currently supports Macromedia? Flash? and Flex based RIA Development in ActionScript 2 and ActionScript 3.

ARP could be the oldest framework developed for the Flash community.  The first version of ARP, in Flash 5, was created in 2000 and parts were released under the open-source FC-Lib library. This evolved, in time, to Flash MX and parts were again released as open source as part of the Moose library. Since it's evolved from Flash, ARP can be used in Flex or AIR now. Its codes directly access Flash classes so that it's reported having better performance comparing to other Flex based frameworks.

Flest Framework (download)

Flest is an ActionScript3 / Flex application framework for building enterprise level RIAs. It uses such design pattern as Controller, Factory, Command, etc. High efficiency, simplicity and practicality were set as its mandatory design features. Flest Framework was designed and built to be a lightweight and easy to use toolset that helps to structure the deveopment environment on the one hand, and gives a developer maximum freedom in making his/her own decisions on the other.

Besides the frameworks listed above, there are a few others that are not as widely used. You can check out EasyMVC, Adobe FAST and Joeberkovitz's framework.

In addition to the development framework for building RIA UI, there are other frameworks and resources offer helping hands to RIA developers, such as FlexUnit (a unit test framework for ActionScript 3), FlexLib(an Open Source Flex 2 Component Library), AS3CoreLib (an ActionScript 3.0 library for several basic utilities with great JSON package) and Granite DS (a free, open source, alternative to Adobe Data Services for J2EE application servers with EJB3/Spring/Pojo services support), to name a few.

InfoQ will continue reporting new development among Flex open source development community.

Rate this Article