Developer's Guide to Microsoft Prism Library 5.0 for WPF
patterns & practices Developer Center
April 2014
Prism provides guidance in the form of samples and documentation that help you easily design and build rich, flexible, and easily maintained Windows Presentation Foundation (WPF) desktop applications. Using design patterns that embody important architectural design principles, such as separation of concerns and loose coupling, Prism helps you to design and build applications using loosely coupled components that can evolve independently but which can be easily and seamlessly integrated into the overall application. In short, these applications are "built to last" and "built for change." These types of applications are known as composite applications.
This topic provides a brief overview of the Prism concepts with links to associated source code and documentation.**If you are considering upgrading from Prism 4.1 to Prism 5.0 we include a "What’s New" and "Upgrading from Prism 4.1" topic that you should read.
Note: For .NET 4.0, Silverlight, or Windows Phone 7.x applications use Prism 4.1.
Getting Started
Where to start depends on your goals and what you already know. Learn, Develop and Deploy Applications, and Upgrade from Prism 4.1 should help you understand if Prism makes sense in your application and how to get started.
Learn: If you are new to Prism, this is a good place to start. You should also read through the remaining content in this topic.
- Learn about Prism Capabilities: Introduction.
- See how to consume the Prism Library in source code.
- Learn the Prism concepts.
- Where to ask questions?
- Who created Prism?
Develop and Deploy Applications: If you want to create a Prism Hello World application and deploy it then go through these topics. If you want to more fully understand how to utilize specific Prism capabilities in your application then read the content below.
- How to get your machine ready.
- Where to get library binaries.
- Create your first composite Prism application: Getting Started Using the Prism Library Hands-on Lab.
- Deploy Prism App: Publishing and Updating Applications Using the Prism Library Hands-on Lab.
Upgrade from Prism 4.1: Read the topics below so you can perform a cost benefit analysis of upgrading to Prism 5.0.
Introduction
Learn how to create a composite application from loosely coupled WPF components that can evolve independently using the Prism library.
Download code:
More info:
- Introduction
- Getting Started Using the Prism Library Hands-on Lab
- Stock Trader Reference Implementation
Initializing Prism Applications
Learn how to get a Prism for Window Presentation Foundation (WPF) application up and running – bootstrapping the application.
Download code:
More info:
Managing Dependencies Between Components
Create maintainable apps using dependency injection to manage components’ dependencies and lifetimes, facilitate testing, and wire views to view models.
More info:
Modular Application Development
Learn how to create a loosely coupled modular application that is easier to develop, test, deploy, and extend.
Download code:
More info:
MVVM Pattern
Learn how the MVVM pattern makes your app easier to test, maintain, and evolve. It improves code re-use and allows developers and designers to collaborate. Learn how to use composite commands, handle asynchronous interactions, implement user interaction patterns, and wire views to view models using MVVM.
Download code:
More info:
Composing the User Interface
Learn how to compose your UI from loosely coupled WPF visual components for modular application. Create designer-friendly UIs with design time data.
Download code:
More info:
Navigation
Learn how to navigate between views in composite WPF applications that use the MVVM pattern. Use either state-based or view-based navigation.
Download code:
More info:
Communicating Between Loosely Coupled Components
Decide when to use the different loosely coupled communication mechanism works for your modular application: commands, region context, shared services, and event aggregation.
Download code:
More info:
Deploying Prism Applications
Learn the deployment options for a composite WPF application – Xcopy, ClickOnce, and Windows Installer.
More info:
Patterns in Prism
Learn the different patterns the Prism library and associated reference implementation demonstrate.
Download code:
- Stock Trader Reference Implementation
- Event Aggregation QuickStart
- Commanding QuickStart
- MVVM QuickStart
- UI Composition QuickStart
- Hello World Hands-on-Lab
More info:
- Patterns in the Prism Library
- Stock Trader Reference Implementation
- Code Samples
- Getting Started Using the Prism Library Hands-on Lab
Prism Library
Learn who the Prism library for WPF was developed for, how it is organized, how to modify the source, and how to run the associated tests.
Download code and binaries:
- Prism NuGet Package
- Prism.Composition NuGet Package
- Prism.Interactivity NuGet Package
- Prism.UnityExtensions NuGet Package
- Prism.MefExtensions NuGet Package
- Prism.Mvvm NuGet Package
- Prism.PubSubEvents NuGet Package
- Prism Source Code
More info:
Upgrading from Prism 4.1
Learn how to upgrade your existing Prism 4.1 projects and solutions to Prism 5.0. This includes changes to references, namespaces, and APIs.
More info:
Extending the Prism Library
Learn how to modify Prism default behavior including bootstrapping, container, logging, modularity, regions, navigation, and view model locator.
More info:
License
What's Next
- Prism Download: Download source or documentation, get links to the NuGet packages, or see the full content of this Prism release.
- Introduction: Read the next topic in the Prism documentation.
Community
Prism's community sites are:
- Prism: https://www.codeplex.com/Prism
- PubSubEvents (Event Aggregator): https://www.codeplex.com/pnpPubSubEvents
- MVVM: https://www.codeplex.com/pnpMvvm
On these community sites, you can post questions, provide feedback, or connect with other users for sharing ideas.
Prism Team Blogs
Stay informed and up to date about Prism and patterns & practices.
Name |
Blogs and Home Pages |
|
---|---|---|
Blaine Wastell |
||
Francis Cheung |
||
patterns & practices |
The Team Who Brought You This Guide
Prism was produced by the following individuals:
patterns & practices Team:
Microsoft Corporation |
Blaine Wastell, Francis Cheung, Nelly Delgado, Rohit Sharma, RoAnn Corbisier |
Southworks SRL |
Diego Poza |
Icertis Inc. |
Poornimma Kaliappan |
Contributors to the previous release of this guidance:
Microsoft Corporation |
Blaine Wastell, Bob Brumfield, David Hill, Karl Shifflett, Larry Brader, Michael Puleio, Nelly Delgado |
Clarius Consulting |
Fernando Simonazzi |
Infosys Technologies Ltd |
Mani Krishnaswami, Meenakshi Krishnamoorthi, Rathi Velusamy, Ravindra Varman, Sangeetha Manickam, Sanghamitra Chilla |
Software Insight |
Brian Noyes |
Southworks SRL |
Diego Poza, Fernando Antivero, Geoff Cox, Matias Bonaventura |
TinaTech, Inc. |
Tina Burden |
Modeled Computation |
Sharon Smith, Katie Niemer |
Many thanks to the following advisors who provided invaluable assistance:
Bill Wilder of Fidelity Investments, Brian Noyes of Solliance, Brian Lagunas of Infragistics, Clifford Tiltman of Morgan Stanley, Rob Eisenberg of Blue Spire, Norman Headlam, Ward Bell of IdeaBlade, Paul Jackson of CM Group Ltd., John Papa of Microsoft, Julian Dominguez of Clarius Consulting, Ted Neveln of Ballard Indexing Services, Glenn Block of Microsoft, Michael Kenyon of IHS, Inc., Terry Young of PEER Group, Jason Beres of Infragistics, Peter Lindes of The Church of Jesus Christ of Latter-day Saints, Mark Tucker of Neudesic, LLC, David Platt of Rolling Thunder Computing, Steve Gentile of Strategic Data Systems, Markus Egger of EPS Software Corp. and CODE Magazine, Ryan Cromwell of Strategic Data Systems, Todd Neal of McKesson Corp, Dipesh Patel of Fidelity Investments, and David Poll of Microsoft.