After years of using a homegrown approach to MVC for Flash and Flex, it was time to take look at the various frameworks for Flex. I figured “I might be of service,” David Bowie style.
This will be a Straight Walk Off, Old School Rules
Zoolander parodies aside, there are half a dozen characteristics that could be expected of a good MVC framework. The approach was to gather a pulse on what frameworks are being discussed, download and view the source, and work with some examples. The following criteria will be used throughout:
- Minimal Footprint
- Active Community
- Some brains behind the operation (its subjective, but ‘done the right way’)
Arp is(was?) Aral Balkan’s attempt at MVC for Flex. Although originally created for ActionScript 2, at Flash Forward in Austin, this looked promising. Then again, Flex was just gaining traction, so everything was looking promising. Aral has done a great job with his projects, OSFlash.org, <head> Conference, Pistach.io, and his many contributions to the Flash and Adobe community. Unfortunately, however, it seems that Aral has since stopped actively developing Arp, thus eliminating Arp as an option.
Ángel Blesa owns this project, and as one may easily surmise from his name the project is Spanish. Therefore, it is difficult to speak to the quality of the project. But, if you do speak Spanish, then this may be something to look into. However, for an English-only speaking developer, Guasax is a hard sell. Even the video tutorials are in spanish. Another quirk that factored into Guasax not making the cut was the run-time XML config files.
At first glance, MVCS seems more like a blueprint than a framework. But, Joe Berkovitz is smart (#6 Some brains behind the operation). Joe has some interesting thoughts on Flex application architecture, and is well worth the read. It is difficult to find an active community and it is really more of an approach rather than a framework. Luckily, a framework is included in the example code. Overall, MVCS’ approach is an interesting one, however, not fully applicable if searching for an MVC framework.
Cairngorm is one of the original Flex frameworks, and it certainly has a very large backing in enterprise environments, especially since it is sponsored by Adobe. It could be said that if you are developing Flex in the enterprise, you are/should be familiar with Cairngorm. Cairngorm also has a relatively small footprint. However, Cairngorm is not a silver bullet. Although Cairngorm serves its purpose, it is a little too complex in most scenarios. Thus, if the point of a framework is to become more efficient, the complexity of Cairngorm can do quite the opposite. This is especially true for those who aren’t familiar with frameworks.
Given the issues Cairngorm, would it not be nice if a framework took the good of Cairngorm and corrected the bad. A huge proponent of Cairngorm since it came out, Cliff Hall set out to do just that. PureMVC has gained a lot of steam since its creation, has a small footprint, is scalable, and simple. PureMVC has also been somewhat future-proofed. By keeping the concept simple and generic, PureMVC has been ported to almost every useful language. Furthermore, it is easy to find very informative documentation, overviews, and best practices. Although still relatively young and smaller community compared to Cairngorm, PureMVC seems to be evangelized among the developer community at the moment, and rightfully so.
Time Will Tell
After looking at several frameworks for Flex, PureMVC hits the criteria stated at the outset almost perfectly. As such, I am developing with PureMVC on a current project and have been very pleased thus far. Yet, time will tell if PureMVC sticks as the de facto standard Flex MVC framework.
To the readers, I would love to hear about your findings with Flex frameworks. Perhaps you have used a framework not listed here? Or do you have a different observation or opinion?
Nov 6 2008