Personal tools

Views

Cairngorm

From Adobe Labs

Table of contents

News

Cairngorm 2.2.1 Released

Cairngorm 2.2.1, which has been in beta for a few months now, has been released, and is available on the Downloads page.

Cairngorm 2.2.1 has no new functionality, other than the ability to work with the moving of SWC libraries that took place in Flex 2.0.1 with Hotfix 2 and LiveCycle Data Services 2.5.x.

Overview

What is Cairngorm?

The Cairngorm Microarchitecture is a lightweight yet prescriptive framework for rich Internet application (RIA) development.

Cairngorm is an implementation of design patterns that the consultants at Adobe Consulting have successfully taken from enterprise software development (with technologies including J2EE and .NET) and applied rich Internet application development using Adobe Flex.

Flex 1.5 and Flex 2

Cairngorm is available for both Flex 1.5 and Flex 2. All current efforts are focused on the version for Flex 2 and all references to Cairngorm in this article refer to Cairngorm for Flex 2, unless otherwise stated.

The History of Cairngorm

The team at Adobe Consulting who built Cairngorm have been the earliest advocates of design pattern frameworks for RIA development. The ideas in the Cairngorm framework were first advocated in the book Reality J2EE - Architecting for Flash MX, released by Macromedia Press in 2002. As the technologies for RIA matured to ActionScript 2.0 and Flash Remoting with Flash MX 2004, the ideas behind Cairngorm were revisited in ActionScipt 2.0 Design Patterns for rich Internet applications in the ActionScript 2.0 Dictionary from Macromedia Press. The current incarnation of Cairngorm will be most familiar to those who have followed the best-practices theory advocated by Steven Webster and Alistair McLeod (previously at iteration::two, now at Adobe Consulting) in the acclaimed Developing Rich Clients with Macromedia Flex, the first book on best-practices for Enterprise RIA development with Adobe Flex.

The Cairngorm architecture has been successfully applied in generations of Enterprise RIA development by Adobe Consulting. Additionally, teams of enterprise developers around the world have applied the ideas to their own RIA architectures. The establishment of the Cairngorm architecture as a de-facto framework for Enterprise RIA development has led to the decision to ensure that future development of the Cairngorm platform captures the combined knowledge capital of the international development community, through an open-source development model.

Although the open-source decision had been hinted at to the development community, the Cairngorm microarchitecture was formally announced as an open-source project at the Macromedia MAX2004 conference in New Orleans in November 2004.

The first open-source release of the Cairngorm framework was labelled the 0.95 version for Flex 1.5, with an updated 0.99 version (with new features) released soon thereafter.

The current version of Cairngorm is Cairngorm 2, which is targeted at the newly-released Flex 2 framework.

Target Applications for Cairngorm

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 ActionsScipt 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 Apollo) 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.

Getting Started with Cairngorm

For a background of the design patterns used in the Cairngorm microarchitecture, and why we feel these are applicable to Enterprise RIA development, the following books (in order of relevance) provide excellent background:

Chapter 20 of "Developing Rich Clients with Macromedia Flex" discusses the motivation for the microarchitecture in great detail, and is available as a PDF download from http://flexbook.iterationtwo.com


Cairngorm Releases

Cairngorm 2.2.1 for Flex 2

Cairngorm 2.2.1 was released as beta in June 2007 and as a final version in October 2007. See the readme with the download to see the list of updates and installation instructions for this release. The Cairngorm 2.2.1 release notes can also be found here

Cairngorm 2.2 for Flex 2

Cairngorm 2.2 was released in April 2007. See the readme with the download to see the list of updates and installation instructions for this release. The Cairngorm 2.2 release notes can also be found here

Cairngorm 2.1 for Flex 2

Cairngorm 2.1 was announced at Max 2006. See the readme with the download for the list of updates and installation instructions in this release. The Cairngorm 2.1 release notes can also be found here

Cairngorm 2 for Flex 2

To install Cairngorm for Flex 2, copy the Cairngorm.swc from the /bin directory of the downloaded zip file and put it in your actionscript classpath.

You can achieve this with FlexBuilder 2, as follows:


Cairngorm 0.99 for Flex 1.5

To install Cairngorm for Flex 1.5, download the provided zip file and read the InstallationGuide.pdf documentation.

The installation of Cairngorm 2.1 is the same as that for Cairngorm 2 above.

Downloads

Binary package, source package and documentation for most recent version of Cairngorm can be downloaded from here.

Previous versions of Cairngorm can be downloaded from the downloads page.

Documentation and Samples

API documentation for the latest version of Cairngorm can be retrieved from here.

API documentation for Cairngorm from version 2.1 onwards can be retrieved from the downloads page.

API documentation for Cairngorm 2 can be downloaded from here.

Further documentation and sample projects can be downloaded from the Cairngorm community project cairngormdocs.org

Resources

Steven Webster has written a series of articles explaining the concepts behind Cairngorm in more detail. This six-part article series can be found at:

Although this series was written in the context of Cairngorm for Flex 1.5, the concepts discussed are just as relevant for Flex 2 development and are a recommended read for those new to Cairngorm. Subsequent Devnet articles will take the series forward for Cairngorm 2.

Several of the contributors to the Cairngorm framework from within Adobe Consulting maintain blogs and often discuss best-practices for using the Cairngorm framework, which you can find at:

Steven Webster and Alistair McLeod wrote a chapter for the ActionScript 2.0 Dictionary, titled "ActionScript 2.0 Design Patterns for Rich Internet Applications" where many of the design patterns applied in Cairngorm were first published in the context of RIA development.

Retrieved from "http://labs.adobe.com/wiki/index.php/Cairngorm"