Learning about cross-WPF/Silverlight composite and reusable user interfaces.

Step 1 - Encapsulate resources. Abstracting all the resources for an app into a separate project reduces friction between coders and designers.

Step 2 - Understand Composite Framework. Shell hosts the app, application services glue the logic together, modules contain individual features.

Step 3 - Define the regions in the shell to subdivide the content of the app (navigation / content / whatever).

Step 4 - Understand Region Mapping. Region adapters map views into regions. Views are part of the modules (possibly multiple views per module).

Step 5 - Understanding Application Services. Core services deal with modules, services, regions, events and logging. App services are custom-coded; messaging, cache, security, exception handling.

Step 6 - Commands, Events, Attached Properties, Converters, Navigation.

Step 7 - there is no step 7.

Step 8 - Define Modules. Learn how to apply MVVM, listeners, events, models, services, module definition classes. How do modules inter-communicate? Event aggregation, subscribe/publish model.

Cannot really read the code on the screen very well, so I am just following the general shape of things. It's making a lot of sense so far, but very architecture-heavy, which is a little surprising. This may have needed to be a level-4 topic?

Step 9 - Bootstrapper. Configure the service container. Configure the regions and adapter mappings. Create the shell. Initialise the modules.

Step 10 - Test, test, test. Unit, functional, performance, memory.

Deployment - know the environment, ClickOnce, Silverlight (browser / stand-alone).

Multi-targeting between WPF and Silverlight. How to deal with layout/resource mismatches... missing features in Silverlight. The structure of the Composite Framework is designed to leverage common abstractions. Use two solution files in the same top directory, share code and resources that are generic, but add platform-specific parts for the 'differences'.

The Composite Framework chm file has a very good high-level overview of the technology involved.