Cairngorm is the lightweight micro-architecture for Rich Internet Applications built in Flex or AIR. A collaboration of recognized design patterns, Cairngorm exemplifies and encourages best-practices for RIA development advocated by Adobe Consulting, encourages 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.
|Governance||Learn how the Cairngorm project is governed|
|Roles||Understand the various roles related to the Cairngorm project|
|History||Get a quick time line of how Cairngorm came to be where it is today|
Cairngorm can be downloaded from here.
Cairngorm is available for both Flex 1.5 and Flex 2/3. All future efforts will be focused on the version for Flex 3 and all references to Cairngorm in this article refer to Cairngorm for Flex 2/3, unless otherwise stated.
At the time of the release of Flex 2, portions of the-then-named Flex Data Services were moved into LiveCycle Data Services, a licensable product. So as to ensure that Cairngorm could be used without the need for LiveCycle Data Services (for example, using BlazeDS), Cairngorm was packaged into two SWCs, once containing the core Cairngorm code, and one containing the code that had dependencies on classes in LiveCycle Data Services. This latter SWC is named Cairngorm Enterprise and is only needed when using the classes that ship with LiveCycle Data Services (Producer, Consumer and DataService classes).
Things have changed further with the release of Flex 3, and although the current package structure supports the latest release of Flex, Cairngorm will be changed to better reflect these changes in a future release.
Some methods used with Cairngorm have been deprecated as of Flex 3. A future release of Cairngorm will address these issues.
The Cairngorm microarchitecture is intended as a framework for Enterprise RIA developers.
First and foremost, this assumes that developers are likely to be delivering their applications on the Adobe Flex platform. As an ActionScript 2 and ActionScipt 3 technical architecture, Cairngorm has been used, and can continue to be used, for the rapid development of applications built with Flash MX and Flash Remoting. However, the implementation of the design patterns (the patterns that have been selected for the microarchitecture) and the future roadmap for Cairngorm development are firmly aligned with the feature set – advertised and anticipated – of the Adobe Flex platform, and the emerging ecosystem of tools (such as Adobe AIR) around the Flex platform.
If you are writing a very simple application (such as a prototype application) or an application with only a single view, then you might consider a “Model 1” solution that doesn’t strive for the same separation of model, view, and control that Cairngorm advocates.
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.