Overview

Retired Content

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

The Composite Application Guidance for WPF is a set of guidance designed to help you more easily manage the complexities you may face when building enterprise-level Windows Presentation Foundation (WPF) client applications. This guidance will help you design and build flexible WPF client applications using loosely coupled, independently evolvable pieces that work together and are integrated into the overall application. This type of application is known as a composite application. The guidance includes a reference implementation, reusable library code (named the Composite Application Library), and documentation.

Intended Audience

This guidance is intended for software architects and software developers building complex WPF applications. Such complex applications typically feature multiple screens, rich user interaction, a consistent appearance, and role-determined behavior. Additionally these complex applications typically use layered architectures that may be physically deployed across tiers, strong separation of concerns, and loosely coupled components. 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 evolve in response to new, unforeseen requirements. Simple applications that do not have these requirements may not benefit from the Composite Application Library.

There is an important human dimension to consider. The Composite Application Guidance is not difficult to learn. But developers must be ready and willing to embrace patterns and practices that may be new to them. Management understanding and commitment is crucial and the project deadline must accommodate some upfront investment of time to learn and embrace these patterns and practices.

The Composite Application Library is built on the Microsoft .NET Framework 3.5 (this includes WPF), and it uses a number of software design patterns. Familiarity with these technologies and patterns is useful for evaluating and adopting the Composite Application Library.

System Requirements

This guidance was designed to run on the Microsoft Windows Vista, Windows XP Professional, or Windows Server 2003 operating system. Applications built using this guidance will require the .NET Framework 3.5 to run.

Before you can use the Composite Application Library, the following must be installed:

Composite Application Guidance Assets

The Composite Application Guidance consists of the following:

  • Composite Application Library source code. Developers can use the Composite Application Library to develop WPF applications that are composed of independent and collaborating modules.
  • Unity Extensions for Composite Application Library source code. This provides components to use the Unity Container Application Block with the Composite Application Library for WPF.
  • Unity Application Block binaries. The Composite Application Library itself is not container-specific; however, the Stock Trader Reference Implementation uses the Unity Application Block as the container.
  • Stock Trader Reference Implementation (Stock Trader RI). This is a composite application that is based on a real world scenario. This intentionally incomplete application illustrates the Composite Application baseline architecture. This is a good reference to see how many of the challenges when building composite applications are addressed by this guidance.
  • QuickStarts. This includes the source code for several small, focused applications that illustrate UI composition, dynamic modularity, commanding, and event aggregation. The Hello World QuickStart provides a step-by-step hands-on lab to create your first application using the Composite Application Library.
  • Documentation. This includes the architectural overview, Stock Trader RI overview, design and technical concepts for composite applications, applied patterns, How-to topics, QuickStarts overviews, and deployment topics. Much of this guidance is applicable even if you are not using the Composite Application Library, but just want to know best practices for creating composite applications.

Exploring the Documentation

The Composite Application Guidance for WPF documentation spans a wide range of topics from the conceptual drivers for composite applications to step-by-step instructions for using pieces of the Composite Application Library. The documentation is intended to appeal to a broad technical audience to help you understand composite scenarios, evaluate the Composite Application Library, and use the Composite Application Library. Figure 1 maps the types of documentation available.

Ff921153.e6db7e59-8e3d-4394-abd6-843c5e619df0(en-us,PandP.10).png

Figure 1
Composite Application Guidance for WPF documentation

As illustrated in Figure 1, the documentation includes the following types of guidance:

  • Design Concepts. These topics introduce the key challenges in building composite applications and guidance on the solutions designed to solve these challenges. These topics primarily target architects and developers seeking a deeper understanding of the drivers for the Composite Application Library.
  • Patterns. These topics describe the software design patterns applied in the Composite Application Library and Stock Trader Reference Implementation. These topics primarily target architects and developers looking to familiarize themselves with the patterns used to address the challenges in building composite applications.
  • Composite Application Library Baseline Architecture. This topic introduces a candidate composite architecture that you can use to create your own baseline architecture. This document primarily targets architects and developers seeking a starting point for their composite applications.
  • Composite Application Library. This topic describes the goals, benefits, development activities, and customization activities of the library. This topic primarily targets architects and developers interested in using the library.
  • Technical Concepts. These topics introduce individual technical implementation details of the Composite Application Library. This documentation primarily targets architects and developers seeking in-depth information on a particular aspect of the library.
  • How-to topics. These topics are step-by-step instructions to accomplish a particular task with the Composite Application Library. These topics range from usage to customization of the library. These topics primarily target developers seeking to accomplish specific tasks.
  • QuickStarts. These topics describe the Visual Studio projects that demonstrate particular aspects of the Composite Application Library. These topics primarily target architects and developers seeking a working example of a portion of the library.
  • Hand-On Lab. The Hands-On Lab demonstrates building a simple composite application, step by step. This topic primarily targets developers wanting to understand the basic concepts of the Composite Application Library.
  • Reference Implementation. This topic describes the Stock Trader Reference Implementation, which is an intentionally feature-incomplete application that demonstrates an implementation of the baseline architecture using the Composite Application Library. This topic primarily targets architects and developers wanting to see the library working as part of an application.
  • Designer Guidance. This topic is intended to help user interface designers understand composite applications. It provides helpful tips for designing composite user interfaces with the Composite Application Library. This topic primarily targets designers working on projects developing composite applications.

Community

The Composite Application Guidance for WPF, like other patterns & practices deliverables, is associated with a community site. 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 material.

Retired Content

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.