Flex Development with Cairngorm
The topic chosen for today is by far a novelty, but being a Flex developer it’s a must know thing at least (in case you haven’t used it yet). Besides, information about Adobe frameworks is always useful, especially since this one is part of an open-source project.
Cairngorm is one of the primary open-source frameworks for application architecture in Adobe Flex and is the lightweight micro-architecture for Rich Internet Applications built in Flex or AIR. Its main goal is to provide developers with a consistent structure separating concerns allowing them to focus on implementing features not plumbing. Cairngorm contains a collaboration of recognized design patterns such as MVC (model-view-control), Observer, Singleton and Command Pattern.
“Cairngorm exemplifies and encourages best-practices for RIA development advocated by Adobe Consulting, supports best-practice leverage of the underlying Flex framework, while making it easier for medium to large teams of software engineers deliver medium to large scale, mission-critical Rich Internet Applications.”
Although during time there were many complains about this framework on different blogs or forums, Cairngorm is in fact the most commonly used Framework for Flex Applications. It has been used, and can continue to be used, for the rapid development of applications built with Flash MX and Flash Remoting.
Unfortunately the last version of it is 2 years old and most likely it isn’t “actively developed” anymore. Still the important thing is that it is “updated” for each version of Flex. And if you want to look at the situation from a positive point of view, it’s actually a good think that it’s not developed anymore. It shows that this product is mature enough that it doesn’t need more features added to fix previous flaws or shortcomings.
And as it is written on the official page of Cairngorm on Adobe open-source, “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.”