English English Spanish EspañolKorea한국어
Straker»Company»Blog»2005» What is Cairngorm - in plain English

What is Cairngorm - in plain English

Here is Steven Webster's explanation of what is Cairngorm in plain
English.
Isn't there an article covering the topic of WHAT
Cairngorm > is? How it works? Explain in plain English as to HOW
the > proposed structure and included "helper files" enhances
the > developers ability to create RIA's (which are scalable in
nature).


First of all; Cairngorm is not intended as something that
we expect people to pick up the *same* time they are getting to
grip with Flex. As you build big, enterprise-level Flex
applications, there is going to come a point where you have
multiple developers working on the project, and run the risk of
them all solving the same problem in multiple different ways. As
your application becomes more complex, you are going to want to
address that complexity with a well understood technical
architecture. You are going to want that technical architecture to
clearly separate the roles in a multi disciplined development team,
you are going to want your application architecture to promote,
enable and encourage reuse - reuse of business object, reuse of
business services, etc.

You are going to want that application
architecture to allow you to inject complex functionality in a well
understood manner -- Todd Boland's excellent post on creating a
SecureCommand base-class being a fantastic example of this. As J2EE
developers, we learned a lot from using the Core J2EE Design
Patterns from Sun in architecting our applications. Furthermore,
assembling these design patterns in such a way that there was an
elegant collaboration and partitioning of design responsibilities,
created what has now been coined a "microarchitecture" that would
provide structure and skeleton in a generic fashion, to specific
web application problems.

With RIA, we recognsied that many of the
same problems that occured in J2EE enterprise web-application
development, didn't go away just because we were using ActionScript
2.0 and Flash/Flex, and so we adopted many of (a subset of) the
design patterns, and evolved Cairngorm as a microarchitecture for
RIA. I don't intend this next sentence to be patronising, so please
don't take as such -- but if you don't get why you would need to
use something like Cairngorm, then you probably aren't building
applications that merit using it anway. So ... immerse yourself in
Flex application development, and only when complexity is starting
to bite you in the butt, should you dust off Cairngorm, look
through the samples, and look for how we have solved the problems
you are (then) facing, with Cairngorm. >

Does everybody
understand what I am getting at? There is > nothing on the
website, that starts at "Ground Zero" - > explaining "What
Cairngorm is", "Here is how it works", "Here > is a coding
example of a typical way of doing an app, and > then in
comparison, the Cairngorm way". Software architecture, design
patterns, and microarchitecture are software engineering
techniques, not anything specific to RIA, specific to Flex, and
specific to Cairngorm. If you really want to understand the
motivation for Cairngorm, that would be a great starting place. I
honestly would recommend "Core J2EE Patterns" by Alur et al as a
great starting place for understanding software architecture and
software design patterns, particularly the ones we implemented for
Cairngorm: http://www.corej2eepatterns.com/index.htm Alistair and I
co-wrote a chapter called "ActionScript 2.0 Design Patterns for
Rich Internet Applications", that appears in the "ActionScript 2.0
Dictionary".

That's not specific to Flex, but it does go into a
great amount of detail as to what the motivations for each of the
design patterns are, why we implement them the way we do, in the
context of a Flash MX based RIA:
http://www.amazon.com/exec/obidos/tg/detail/-/0321228413/qid=1117099256/sr=8
-1/ref=sr_8_xs_ap_i1_xgl14/002-0848388-2547213?v=glance&s=books&n=507846
I think that's probably the level of material you're looking for.
Failing that, there's a Breeze presentation I've posted a few times
here; to be honest, the slides aren't really the same without
someone delivering the words, and the presentation was made
available for folks that saw me talk at IBM in Holland. But the
introductory slides try and put forward the case for why you might
want to use Cairngorm, which I try and define as "If you are
building Enterprise RIA". >

Sorry for the unusual post, but I
just need some > clarifications on Cairngorm. Pretend I am an
idiot - and not > somebody who has been following this model for
months, and > has a good grasp of Flex. Learn Flex first. Build
some apps with Flex until they get bigger and bigger, and then when
you know enough to be dangerous and tie yourself in knots, consider
Cairngorm your scissors. I hope the above helps -- there's a lot of
reading there for you, but that's what you asked for. I just don't
have to write it all :) Good luck, it's a rewarding journey you're
on, Best, Steven


Comments

Add a comment

Add Comment