Share via


Key Decisions

Next, you need to decide if you want to use a subset of the Composite Application Library capabilities or if you want to use the library in its entirety. The library is designed to allow you to incrementally add library capabilities to your architecture. If you want to use a subset of the library, you should review the technical concepts and determine which capabilities you want to use. If you plan to use the library in its entirety, you should think about several architectural decisions, including the following:

  • Consider your approach to populating the module catalog (defining modules in code, defining modules in XAML, reading module information from a configuration file, or loading all modules in a directory). For more information, see the Module technical concept.
  • Consider your approach to UI composition (view discovery or view injection). This is a view-by-view decision. For more information, see the UI Composition technical concept.
  • Consider which separated presentation patterns you want to use and whether you want to follow a view-first or presenter-first philosophy. For more information, see the Separated Presentation patterns.
  • Consider whether you need to share code between Silverlight and WPF and if you do, consider your approach to doing so. For more information, see the Multi-Targeting design concept, the Multi-Targeting technical concept, and the Project Linker: Synchronization Tool.
  • Consider how to communicate between views when you are composing them. The options include region context, services, commands, and event aggregator. For more information about how to make these decisions, see the Communication technical concept.
  • Consider the solution structure that defines how your shell and modules will be organized. For more information, see How To: Create a Solution using the Composite Application Library.

More Information

To learn more about the design and use of the Composite Application Library, see the following topics:

Home page on MSDN | Community site