This year at MAX, I organized a “Flex Frameworks” session called “Using Flex Frameworks to build Data Driven Applications”. I wanted to stay away from a high level / rhetorical debate or panel. I also did not want a session aimed at proclaiming a (subjective) winner. What I had in mind was a pragmatic session that would provide developers with the information they need to make their own decision based on their background, the type of applications they build, and their own style and preferences.
To achieve this goal, I thought it would be interesting for the audience to look at the exact same application built with four different frameworks. And to avoid any misrepresentation of the frameworks, I asked the framework creators to build their own version of the application. Laura Arguello (Mate), Chris Scott (Swiz), Alex Uhlmann (Cairngorm), and Javier Julio (PureMVC, standing in for Cliff Hall) accepted to take part in the experiment and implemented their own version of the “framework-less” application I provided them with. (Many thanks to all of them for the time and energy they put in the project!)
The end result was a three hours session where each of them presented their version. The session format wasn’t perfect: Three hours was too short to get the attendees to actually build the application using four different frameworks, but it was probably also a little too long to look at and decipher code written by someone else. But in the end I think the information that was provided and the applications the attendees left with were really useful for anybody looking at making a framework decision.
Download
I thought these applications would also be helpful to you if you didn’t attend the session…You can download the code here and read the Getting Started instructions here.
Notes:
- The “plain” project is the framework-less version of the application.
- Do not unzip flex-frameworks-max.zip in a directory path that includes white spaces.
- You will notice that there may be different projects for a single framework. This is because there is sometimes a conflict between apparent simplicity and real abstraction, and I wanted to make sure the framework creators would be able to show different ways to use their framework.
What’s wrong with the plain version?
The implementation of the plain (framework-less) version is intentionally simplistic. Components are tightly coupled (for example, views are tightly coupled to specific types of services); the responsibility of components overlap (poor implementation of the “separation of concerns” concept); the configuration/initialization of components is not externalized; there is no clear messaging scheme in the application, which in turns leads to tight coupling, etc. These are some of the things to look at, when you examine a specific framework implementation of the application.
More Information
Laura posted her presentation here.
Javier posted his presentation here.

Great session and a pleasure speaking to you Christophe. Reader’s of this article might also be interested in a frameworks article I recently wrote: http://imanit.com/blog/?p=80
I did attend your LCDS session at MAX 2009 and also had some discussions with Anil. However, I wasn’t able to attend the pre-conference BYOL lab – “Using Data Services to Power Flex Applications”. Do you have the attachments anywhere? I logged into the MAX Scheduler and didn’t find any attachments on that.
Thanks!
hi,
is there any video recording of the session? Thanks.
Thank you admin goood
Senin gibi admin olmaz olsun good baby
goodd
Not sure how the 4 applications work?
Very good topic and thanks to everyone who has contributed many important
I’ll try to photoshop this topic thanks
shares, and issues a very nice site very good thanks a lot this site has always been like that admins will get the best always come to this site.
Not sure how the 4 applications work?
I ended up here from the a tutorial page for Cairngorm 3 (A Simple Sample Application Explained).
I used pureMVC once for a small AIR project and wanted to know more about Cairngorm 3. Well, the documentation is quite poor to be honest.
The presentation of an application made with 4 different frameworks is brilliant. But I don’t see any objective conclusions, pro and cons for each framework.
Give us a little help here. Which framework is better or closer to the Flex spirit ?
downloaded from adobe, but doesn’t work – getting the below errors:
- plz fix. thx.
Description Resource Path Location Type
1044: Interface method allowDomain in namespace mx.core:IFlexModuleFactory not implemented by class _ContactsModule_mx_core_FlexModuleFactory. insync-cairngorm-modularExtended-contacts line 13 Flex Problem
1044: Interface method allowInsecureDomain in namespace mx.core:IFlexModuleFactory not implemented by class _ContactsModule_mx_core_FlexModuleFactory. insync-cairngorm-modularExtended-contacts line 13 Flex Problem
1044: Interface method get preloadedRSLs in namespace mx.core:IFlexModuleFactory not implemented by class _ContactsModule_mx_core_FlexModuleFactory. insync-cairngorm-modularExtended-contacts line 13 Flex Problem
1172: Definition insync.swiz:Beans could not be found. InsyncSwiz.mxml /InsyncSwiz-v2/src line 10 Flex Problem
Is there a video for this session anywhere?
Hi Christophe,
Can you please suggest some steps in making the ‘modularExtended’ application (api/contacts/messaging/expenses/shell) work within a flex 4 project ?
And also give links to the correct Cairngorm 3 libraries that we should use when testing ‘insync’ in flex 4 ?
Ideally if you have some time maybe you could post a .zip with a flex 4 working version of the ‘modular shell’ example.
I just spent a day on this without any luck.
Your help is much appreciated,
Thanks,
Link http://coenraets.org/flex-frameworks/flex-frameworks-max.zip doesn’t work