Getting Started with Prism
Architects and developers will need to devote some time and effort to fully understand and evaluate Prism. Although there is no single way to evaluate a solution, this guidance divides the process into four steps:Download
. Download the guidance or documentation.1. Fit analysis
. Determine if the guidance suits your needs. 2. Initial evaluation
. Install, run, and examine the guidance. 3. In-depth evaluation
. Conduct a thorough examination of the guidance. 4. Adoption
. Incorporate the guidance into a composite application. Upgrading from earlier releases
. Upgrade from the Composite UI Application Block (CAB) / Smart Client Software Factory (SCSF) or Composite Client Application Guidance - June 2008 Release
The next sections describe each step.
Depending on your requirements and prerequisites, download one of the following versions of Prism:
Step 1: Fit Analysis
Prism is for designing complex WPF or Silverlight applications. The following are scenarios where you should consider using Prism:
- 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.
Prism 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 Prism is a potential fit, you need to understand the problems that the solution solves. The following sections may help you perform a fit analysis:
| Topic ||Version 1.0 2008 ||Version 2.1 2009|
| When to Use This Guidance || link || link |
| Goals and Benefits ||link || link |
| Modularity design concept || link || link |
| UI Composition design concept ||link || link |
| Intended Audience || link || link |
This phase should take one to two hours to complete.
Step 2: Initial Evaluation
To take a closer look at Prism, you will want to learn more about the design of the Prism Library (also called 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:
| Topic ||Version 1.0 2008 ||Version 2.1 2009|
| Composite Application Library || link || link |
| Separated Presentation Pattern || link || link |
| Dependency Injection Pattern || link || link |
| Container and Services || link || link |
| Event Aggregator || link || link |
| UI Composition || link || link |
To get some hands-on experience, complete the following activities:
- Download and build the Prism Library
- Complete the 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 Prism for your application, you may want to perform an in-depth evaluation. The Prism 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 Prism team recommends that you read the following:
As you are developing your proof-of-concept application, you should do the following:
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
Prism has an explicit goal to provide a good adoption experience. To deliver on this goal, Prism provides the following:
- You can "opt in" and "opt out" of Prism capabilities. For example, you can consume only the services you need.
- You can incrementally add the Prism 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 Prism Library footprint in the code.
- It limits reliance on custom Prism attributes. You can integrate existing libraries with the Prism Library through a design that favors composition over inheritance (this avoids forcing you to inherit from the classes in the Prism Library).
To adopt Prism, 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 Prism 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 to Prism released in October 2009 from the previous June 2008 release, 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 (Prism 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 Prism Library.