Not only is the Cairngorm framework organized into packages, but so are projects created with the framework.
When you build a project in Cairngorm, the classes you create get organized into specific packages. You do this by creating sub-folders in your project's src folder. The particular organization of these packages can vary greatly. For example, the Cairngorm Store application (http://www.cairngormdocs.org/exampleApps/CairngormStoreWeb2_1.zip) organizes its packages as seen in Figure 1-2.
However, if you look at the FStop application included in the article "Flex 3: Introducing Cairngorm" (cited earlier in this chapter), it organizes its packages as seen in Figure 1-3.
Both of these package structures work; however, it is not always clear where you would expect to find a given type of class. For example, in the Cairngorm Store, events are in a package on the same level as the business package, while in the FStop application, events are a subpackage of the business package.
To avoid any confusion as to where a particular type of class should be located, I am suggesting the following package structure:
commands (stores command classes)
controllers (stores the FrontController class)
delegates (stores ...