Composite Application Library (CAL)

The Composite Application Library can either be applied to a desktop application, that is most likely using WPF, or to a Silverlight application.

The Composite Application Library targeted for desktop applications consists of three assemblies:
Microsoft.Practices.Composite. This assembly contains interfaces and components to help build composite applications that are not specific to a user interface technology. These components include the EventAggregator, TraceLogger, ModuleManager, ModuleCatalog, IModuleRetriever, and ModuleLoader.
Microsoft.Practices.Composite.Presentation. This assembly contains components that relate to the presentation layer of the desktop application. These include CompositeCommand, DelegateCommand, CompositePresentationEvent, and RegionManager.
Microsoft.Practices.Composite.UnityExtensions. This assembly provides components to use the Unity Container Application Block with the Composite Application Library. These components include UnityBootstrapper and UnityServiceLocatorAdapter.

The Composite Application Library targeted for Silverlight applications consists of three assemblies:
Microsoft.Practices.Composite. Most of the elements in this assembly are linked to the components in the Microsoft.Practices.Composite assembly listed earlier. For Silverlight, there are additional classes that handle remote module loading, such as the FileDownloader and XapModuleRetriever.
Microsoft.Practices.Composite.Presentation. Most of the elements in this assembly are linked to the components in the Microsoft.Practices.Composite.Presentation assembly. This assembly contains interfaces and components to help build composite applications that are specific to Silverlight, such as CompositeCommand, DelegateCommand, and ViewsCollection.
Microsoft.Practices.Composite.UnityExtensions. This assembly provides components to use the Unity Container Application Block for Silverlight with the Composite Application Library. These components include UnityBootstrapper and UnitServiceLocatorAdapter.