In part one of the six-part article titled Developing Flex RIAs with Cairngorm Micro-Architecture (Steven Webster and Leon Tanner) at http://www.adobe.com/devnet/flex/articles/cairngorm_pt1.html, the following statement is made: "In software development, framework is among the most overloaded and overused terms."
While there is much debate as to what does and does not constitute a framework and even further debate about how to categorize frameworks, there are some generally accepted definitions of the types of frameworks. Two of these are of particular interest with regard to Flex and Cairngorm.
The first type is an application framework, which, according to Webster and Tanner, the Flex framework is. They define this type of framework as follows:
When a framework features highly granular class libraries that provide a high degree of flexibility to application developers, or when a framework provides application-level services that are useful across multiple developer projects, we call it an "application framework."
In an application framework, it is up to the developer to decide how the classes of the framework are assembled to create an application. You can think of this type of framework as being made of Lego blocks. Lego blocks come in various shapes and sizes. Users are free to assemble them into larger objects as they see fit.
The second type of framework is an architectural framework. According to Webster and Tanner, Cairngorm is this type of framework. ...