Evaluating the Composite Application Guidance
Architects and developers will need to devote some time and effort to fully understand and evaluate the Composite Application Guidance. Although there is no single way to evaluate a solution, this guidance divides the process into four steps:
- Fit analysis. Determine if the guidance suits your needs.
- Initial evaluation. Install, run, and examine the guidance.
- In-depth evaluation. Conduct a thorough examination of the guidance.
- Adoption. Incorporate the guidance into a composite application.
The next sections describe each step.
Step 1: Fit Analysis
The Composite Application Guidance is for designing complex WPF or Silverlight applications. The following are scenarios where you should consider using the Composite Application Guidance:
- You are building a composite application that presents information from multiple sources through an integrated user interface.
- You are developing, testing, and deploying modules independently of the other modules.
- Your application will add more views and more functionality over the coming years.
- You must be able to change the application quickly and safely to meet emergent business requirements.
- Your application is being developed by multiple collaborating teams.
- Your application targets both WPF and Silverlight, and you want to share as much code as possible between the two platforms.
The Composite Application Guidance may not be right for you if your applications do not require one or more of these scenarios. It also may not be right for you if, for example, your application consists of a few simple screens, you are building a prototype or demonstration application, or your developers are not familiar with the ideas and practices and do not have the time to learn them.
To determine whether the Composite Application Guidance is a potential fit, you need to understand the problems that the solution solves. The following sections may help you perform a fit analysis:
- When to Use This Guidance
- Goals and Benefits
- Modularity design concept
- UI Composition design concept
- Intended Audience
This phase should take one to two hours to complete.
Step 2: Initial Evaluation
To take a closer look at the Composite Application Guidance, you will want to learn more about the design of the Composite Application Library to determine how composite application architectures fit into your enterprise or solution architectures. You will also want to start looking at the code by developing a simple "Hello World" application.
The relevant topics to read for this step include the following:
- Composite Application Library
- The following patterns:
- Container design concept
- The following technical concepts:
To get some hands-on experience, complete the following activities:
- Download and build the Composite Application Library
- Complete the WPF Hands-on Lab: Getting Started with the Composite Application Library or the Silverlight Hands-on Lab: Getting Started with the Composite Application Library
This phase should take three to four hours to complete.
Step 3: In-Depth Evaluation
Before deciding to use the Composite Application Guidance for your application, you may want to perform an in-depth evaluation. The Composite Application Guidance team recommends you evaluate the QuickStarts and the Stock Trader Reference Implementation (Stock Trader RI) and consider developing a proof of concept application with which to gain a deep understanding of the library. At this point, you should also think about required extensions to the library and optimizations that will help you meet your organization's requirements.
Before starting your proof-of-concept application, the Composite Application Guidance team recommends that you read the following:
- Technical concepts:
- Examine the QuickStarts
- Familiarize yourself with the Stock Trader Reference Implementation
As you are developing your proof-of-concept application, you should do the following:
- Review appropriate How-to topics in the Development Activities.
- Use the Stock Trader RI to see how to implement specific tasks or features.
- Review the deployment activities. See Deploying WPF Applications with ClickOnce or Deploying Silverlight Applications.
- Review the Customization Activities.
The amount of time spent on this phase will differ based on the size and nature of your proof-of-concept application.
Step 4: Adoption
The Composite Application Guidance has an explicit goal to provide a good adoption experience. To deliver on this goal, the Composite Application Guidance provides the following:
- You can "opt in" and "opt out" of the Composite Application Library capabilities. For example, you can consume only the services you need.
- You can incrementally add the Composite Application Library capabilities to your existing WPF or Silverlight applications.
- You can build WPF and Silverlight applications that share as much code as possible.
- It is non-invasive because of the following:
- It limits the Composite Application Library footprint in the code.
- It limits reliance on custom Composite Application Library attributes. You can integrate existing libraries with the Composite Application Library through a design that favors composition over inheritance (this avoids forcing you to inherit from the classes in the Composite Application Library).
To adopt the Composite Application Guidance, you will need to perform the following tasks:
- Decide how you will use the library: as-is or customized to fit your requirements.
- Make the key decisions described in Key Decisions and communicate this with the rest of your development team.
- Educate your development team about the Composite Application Library. Developers should review the following:
- Educate your designers about working with applications using the Composite Application Library. Designers should review the following:
Upgrading from Earlier Releases
If you are upgrading from the previous release of the Composite Application Guidance, released in June 2008, you should review Upgrading from the Composite Application Guidance for WPF - June 2008 to understand the major differences between the two releases.
If you are upgrading from the Composite UI Application Block to the Composite Application Library, you should review Upgrading from the Composite UI Application Block so that you understand how the concepts in the Composite UI Application Block map to the Composite Application Library.