MAX Frameworks Session: One Application, Four Implementations (Code Available)

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.


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.


  • The “plain” project is the framework-less version of the application.
  • Do not unzip 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:

  • Santosh Shanbhag

    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.


  • jadd

    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

  • Pingback: exemplos de uso » Bruno bg + ADOBE FLEX()

  • 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?

  • AIR

    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 ?

  • gary

    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?

  • Pingback: WWCBD? « journeysinflexland()

  • adrian

    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,

  • Jim Kat
  • Could you share the files again? I cannot download them.

  • Thin-walled conduits can be minimize by using a basic handsaw, nevertheless any dense pipe requires using special equipment.

  • ali khan

    SEO tools for news release marketing were also recognized by PRWeb at the end of July known as SEO Expert. Search motor engine marketing is not easy, but with the right SEO tools, your website marketing task just got a lot simpler. read more

  • ali khan

    Reverse SEO is becoming a popular method for reducing the destruction from problems and adverse reviews, whether they are legitimate or not. In fact, a lot more organizations are depending upon reverse SEO tactics as a preemptive way of managing their advertising on the internet. read more

  • ali khan

    So, please, Dr. Search engines, identify my redundancy as a minor bit of well designed online babble tactically joined into the aggressive world of web position basically for the objective of getting same and therefore happy. look here

  • ali khan

    High high quality material is king when it comes to seo. Search look for engines are constantly seeking for useful information and data. They are not concerned about fancy flash applications not a virtual art piece. anonymous

  • ali khan

    That’s based on what’s known as the online look for motor criteria which is generally a lot of factors that the online look for motor uses to say “is this web page RELEVANT or NOT?” The greater your pr for these factors than the greater your web page will get shown in the search engines listing pages. more learn

  • ali khan

    The feature of a top seo group in Delhi is that it is going to offer you beneficial price offer with the best possible come returning for your money. This is the objective why clients from all over Local indian native are nowadays gathering at their gateways for the projects being done. official sites

  • ali khan

    The simple SEO Company uses most advanced technology of web for major the future generation to on the internet businesses. go to my blog