Monday, January 11, 2010

Architectures for Adobe Flex Applications

Cairngorm
The project is Flex. It's always going to be Flex. Cairngorm is very Flex-centric (unless you rip out the front controller and port it to AS3, which I've done on other projects). Chances are good that other Flex developers joining the party will have had some experience with it. Not my favorite micro-architecture, but a solid choice for a portal app.

PureMVC
Again, a sweet framework, but if you're not using Modules it's a bad choice because it doesn't utilize Flex-centric functionality. If you ARE using Modules, the Multicore version with Pipes is a great choice. But the learning curve is considerable; new developers are less likely to know it, and even less likely to know it well, which means you, the architect, may end up doing a lot of the heavy lifting. Your call.

Mate
Flex-specific, and easy as hell to learn / teach. Another good choice, but you'd better like writing mxml. The decision to use Mate for a portal app is more an issue of coding style than anything else. Having used it, I can say it would work if you weren't using Modules.

RobotLegs
This one is so new to the party and my experience with it so limited based on that, I'm witholding judgment for now. I love its DI, I love the way it feels like PureMVC, and I think in a year I may understand enough about implementing it on a larger scale to revisit this post.

Tentative verdict: Cairngorm, with Mate running a close second.

More Architectures: SWIZ, Parsley, HydraMVC
Swiz and PureMVC both provide Model View Controller implementations. Swiz encourages you to write vanilla AS3 classes sprinkled with Swiz-specific annotations, using a dependency injection container (similar to Spring) to resolve dependencies. PureMVC encourages implementation of its interfaces (except for on the view tier), using a central concrete Facade with which dependencies are registered.
source

No comments:

Freelance