patterns & practices Developer Center
October 2009
Summary
The Composite Client Application Guidance is designed to help you more easily build modular Windows Presentation Foundation (WPF) and Silverlight client applications.
These types of applications typically feature multiple screens, rich, flexible user interaction and data visualization, and role-determined behavior. They are "built to last" and "built for change." This means that the application's expected lifetime is measured in years and that it will change in response to new, unforeseen requirements. This application may start small and over time evolve into a composite client—composite applications use loosely coupled, independently evolvable pieces that work together in the overall application. Applications that do not demand these features and characteristics may not benefit from the Composite Application Guidance.
Note
|
|
The Composite Application Library Guidance is designed to allow you to adopt only the components your application requires. For example, you could change your communication approach from .NET Framework events to use the event aggregator, which allows you to send loosely coupled messages between modules.
|
This version of the Composite Application Guidance is designed to help you build applications in WPF and Silverlight that have a single code base.
The guidance includes a reference implementation, reusable library code (named the Composite Application Library), documentation, QuickStart tutorials, and hands-on labs.
Active Releases
Architectural Goals
The Composite Application Library is designed to help architects and developers achieve the following objectives:
- Create a complex application from modules that can be built, assembled, and, optionally, deployed by independent teams using WPF or Silverlight.
- Minimize cross-team dependencies and allow teams to specialize in different areas, such as user interface (UI) design, business logic implementation, and infrastructure code development.
- Use an architecture that promotes reusability across independent teams.
- Increase the quality of applications by abstracting common services that are available to all the teams.
- Incrementally integrate new capabilities.
Note
|
|
Even single-person projects experience benefits in creating more testable and maintainable applications using the modular approach.
|
Community
The Composite Client Application Guidance has a thriving online community.
On this community site, you can post questions, provide feedback, or connect with other users for sharing ideas. Community members can also help Microsoft plan and test future offerings and download additional content, such as extensions and training materials.