prism - Prism.Wpf

Prism is a fully open source version of the Prism guidance originally produced by Microsoft Patterns & Practices. Prism provides an implementation of a collection of design patterns that are helpful in writing well structured, maintainable, and testable XAML applications, including MVVM, dependency injection, commanding, event aggregation, and more. Prism's core functionality is a shared library targeting the .NET Framework and .NET Standard. Features that need to be platform specific are implemented in the respective libraries for the target platform (WPF, Uno Platform, and Xamarin Forms).

Prism.Wpf helps you more easily design and build rich, flexible, and easy to maintain Windows Presentation Foundation (WPF) desktop applications. This library provides user interface composition as well as modularity support.

PM> Install-Package Prism.Wpf -Version -Source

Copy to clipboard

> nuget.exe install Prism.Wpf -Version -Source

Copy to clipboard

> dotnet add package Prism.Wpf --version --source

Copy to clipboard
<PackageReference Include="Prism.Wpf" Version="" />
Copy to clipboard

nuget Prism.Wpf  ~>
Copy to clipboard

> choco install Prism.Wpf --version --source

Copy to clipboard
Import-Module PowerShellGet
Register-PSRepository -Name "prism" -SourceLocation ""
Install-Module -Name "Prism.Wpf" -RequiredVersion "" -Repository "prism" -AllowPreRelease
Copy to clipboard

Browse the sources in this package using Visual Studio or WinDbg by configuring the following symbol server URL:


Prism is a framework for building loosely coupled, maintainable, and testable XAML applications in WPF, Xamarin Forms, Uno Platform and WinUI. Separate releases are available for each platform and those will be developed on independent timelines. Prism provides an implementation of a collection of design patterns that are helpful in writing well-structured and maintainable XAML applications, including MVVM, dependency injection, commands, EventAggregator, and others. Prism's core functionality is a shared code base supported in .NET Standard 2.0, .NET Framework 4.5 / 4.7. Those things that need to be platform specific are implemented in the respective libraries for the target platform. Prism also provides great integration of these patterns with the target platform. For example, Prism for Xamarin Forms allows you to use an abstraction for navigation that is unit testable, but that layers on top of the platform concepts and APIs for navigation so that you can fully leverage what the platform itself has to offer, but done in the MVVM way.

Help Support Prism

As most of you know, it takes a lot of time and effort for our small team to manage and maintain Prism in our spare time. Even though Prism is open source and hosted on GitHub, there are a number of costs associated with maintaining a project such as Prism. Please be sure to Star the Prism repo and help sponsor Dan and Brian on GitHub.

Don't forget both Brian and Dan stream live on Twitch and host recorded content on their YouTube Channels. Be sure to Subscribe and Ring that Bell for notifications when they go live or post new content.

Sponsor Twitter Twitch YouTube
Brian Lagunas GitHub Twitter
Follow & Subscribe
Subcribe & Ring the Bell
Dan Siegel GitHub Twitter
Follow & Subscribe
Subscribe & Ring the Bell

Build Status

Full Build Build Status
Prism.Core Build Status
Prism.Wpf Build Status
Prism.Forms Build Status
Prism.Uno Build Status

E2E Build Status

E2E App Status
WPF Build Status
Xamarin iOS Build Status
Xamarin Android Build Status


Videos & Training

By watching our courses, not only do you help support the project financially, but you might also learn something along the way. We believe this is a win-win for everyone.

We appreciate your support.

NuGet Packages

Official Prism releases are available on NuGet. Prism also has a MyGet feed which will be updated with each merged PR. If you want to take advantage of a new feature as soon as it's merged into the code base, or if there is a critical bug you need fixed we invite you to try the packages on this feed. Our feed is a public feed in the MyGet Gallery.

Simply add as a package source to either Visual Studio or Visual Studio for Mac.

Core Packages

These are the base packages for each platform, together with the Prism's Core assembly as a cross-platform PCL.

Platform Package NuGet MyGet
Cross Platform Prism.Core CoreNuGetShield CoreMyGetShield
WPF Prism.Wpf WpfNuGetShield WpfMyGetShield
Xamarin.Forms Prism.Forms FormsNuGetShield FormsMyGetShield
Uno Platform and WinUI Prism.Uno UnoNuGetShield UnoMyGetShield

Container-specific packages

Each supported IoC container has its own package assisting in the setup and usage of that container together with Prism. The assembly is named using this convention: Prism.Container.Platform.dll, e.g. Prism.Unity.Wpf.dll. Starting with version 7.0, Prism is moving to separate packages for each platform. Be sure to install the package for the Container and the Platform of your choice.


Package NuGet MyGet
Prism.DryIoc DryIocWpfNuGetShield DryIocWpfMyGetShield
Prism.Unity UnityWpfNuGetShield UnityWpfMyGetShield

Xamarin Forms

Package NuGet MyGet
Prism.DryIoc.Forms DryIocFormsNuGetShield DryIocFormsMyGetShield
Prism.Unity.Forms UnityFormsNuGetShield UnityFormsMyGetShield
Prism.Forms.Regions PrismFormsRegionsNuGetShield PrismFormsRegionsMyGetShield

NuGet package tree

A detailed overview of each assembly per package is available here.

Prism Template Pack

Prism integrates with Visual Studio to enable a highly productive developer workflow for creating WPF, and native iOS and Android applications using Xamarin.Forms. Jump start your Prism apps with code snippets, item templates, and project templates for your IDE of choice.


The Prism Templates are open source and available at

Visual Studio Gallery

The Prism Template Pack is available on the Visual Studio Gallery. To install, just go to Visual Studio -> Tools -> Extensions and Updates... then search for Prism in the online gallery:

Visual Studio Gallery


There are certain things that cannot be added directly into Prism for various reasons. To handle these common tasks such as supporting PopupPage's in Xamarin Forms, there are Prism Plugins. You can find a number of Plugins available on NuGet from our maintainer @DanJSiegel.

  • Prism.Plugin.Popups (Forms Only)
  • Prism.Plugin.Logging (Works on all Platforms)
    • Adds support for Syslog, Loggly, Graylog, Application Insights, & App Center
  • Prism.Container.Extensions
    • Adds advanced Container Registration abstractions
    • Adds DryIoc & Unity ContainerExtension with support for Microsoft.DependencyInjection.Extensions. Uses a singleton pattern to allow initialization from a native platform
    • Provides an extended PrismApplication with additional error handling and platform specifics support for Prism.Forms
  • Prism.Magician (Works with ALL Platforms)
    • The Magician works to reduce the amount of code you need to write with a collection of intelligent code generators that evaluate your codebase and references
    • It additionally provides a series of Roslyn Analyzers to help prevent you from making common mistakes
    • NOTE: This package is only available to Dan's GitHub Sponsors and Enterprise Support customers.


For stable samples be sure to check out the samples repo for the platform you are most interested in.


We strongly encourage you to get involved and help us evolve the code base.

  • You can see what our expectations are for pull requests here.

.NET Foundation

This project is part of the .NET Foundation.

  • .NETFramework 4.6.1
    • Microsoft.Xaml.Behaviors.Wpf (>= 1.1.3)
    • Prism.Core (>=
  • .NETFramework 4.7
    • Microsoft.Xaml.Behaviors.Wpf (>= 1.1.3)
    • Prism.Core (>=
  • .NETFramework 4.8
    • Microsoft.Xaml.Behaviors.Wpf (>= 1.1.3)
    • Prism.Core (>=
  • .NETCoreApp 3.1
    • Microsoft.Xaml.Behaviors.Wpf (>= 1.1.3)
    • Prism.Core (>=
  • .NETCoreApp 3.1:
  • .NETFramework 4.6.1:
  • .NETFramework 4.7:
  • .NETFramework 4.8:

Signature validation information


Signature Hash Algorithm: SHA256

Timestamp: 9/10/2020 9:50:31 PM

Verifying author primary signature's timestamp with timestamping service certificate: 
  Subject Name: CN=TIMESTAMP-SHA256-2019-10-15, O="DigiCert, Inc.", C=US
  SHA1 hash: 0325BD505EDA96302DC22F4FA01E4C28BE2834C5
  SHA256 hash: 481F4373272D98586C5364B6C115E82425675AEBFD9FACF7ADC464FA2FFFB8F0
  Issued by: CN=DigiCert SHA2 Assured ID Timestamping CA,, O=DigiCert Inc, C=US
  Valid from: 10/1/2019 12:00:00 AM to 10/17/2030 12:00:00 AM

Signature type: Author

Verifying the author primary signature with certificate: 
  Subject Name: CN=Prism (.NET Foundation), O=Prism (.NET Foundation), L=Redmond, S=wa, C=US, SERIALNUMBER=603-389-068
  SHA1 hash: 4E91986A3466F81C3E62DFE2991C40A9F4B2418E
  SHA256 hash: 0D6BDA0F45F31EC1B872D6F1014AC83D11F190BD36C8A91FCD49B44D06F98F30
  Issued by: CN=.NET Foundation Projects Code Signing CA, O=.NET Foundation, C=US
  Valid from: 6/12/2018 12:00:00 AM to 6/16/2021 12:00:00 PM


Dan Siegel Brian Lagunas


Brian Lagunas, Dan Siegel

Project URL




prism mvvm xaml wpf


Validation: Valid


228 total downloads
3 downloads for version
Download (496.4 KB)
Download symbols (120.17 KB)
Found on the current feed only

Package history

Version Size Last updated Downloads Mirrored? 496.4 KB Thu, 10 Sep 2020 21:55:00 GMT 3 496.39 KB Sat, 05 Sep 2020 20:52:08 GMT 1 496.39 KB Thu, 03 Sep 2020 21:52:00 GMT 1 486.27 KB Tue, 25 Aug 2020 17:19:01 GMT 2 486.24 KB Tue, 25 Aug 2020 17:16:10 GMT 0 486.24 KB Mon, 24 Aug 2020 23:36:54 GMT 0 486.01 KB Mon, 24 Aug 2020 21:27:30 GMT 0 492.31 KB Sat, 22 Aug 2020 20:13:27 GMT 1 497.6 KB Sat, 22 Aug 2020 19:01:55 GMT 1 493.96 KB Sat, 22 Aug 2020 18:26:41 GMT 1 493.96 KB Sat, 22 Aug 2020 02:38:02 GMT 1 493.95 KB Sat, 22 Aug 2020 02:01:58 GMT 0 493.97 KB Fri, 21 Aug 2020 21:57:57 GMT 0 493.38 KB Fri, 21 Aug 2020 21:21:21 GMT 0 493.38 KB Fri, 21 Aug 2020 00:32:57 GMT 0 493.42 KB Thu, 20 Aug 2020 19:56:54 GMT 0 493.33 KB Thu, 20 Aug 2020 18:45:07 GMT 0 501.29 KB Wed, 19 Aug 2020 18:43:40 GMT 1 501.32 KB Mon, 17 Aug 2020 15:06:43 GMT 1 501.3 KB Mon, 10 Aug 2020 19:50:21 GMT 2 501.29 KB Mon, 10 Aug 2020 19:01:21 GMT 2 501.23 KB Fri, 03 Jul 2020 16:27:12 GMT 7 501.32 KB Fri, 03 Jul 2020 00:06:41 GMT 3 499.9 KB Thu, 02 Jul 2020 22:34:45 GMT 3 497.72 KB Thu, 02 Jul 2020 21:55:25 GMT 4 495.09 KB Fri, 12 Jun 2020 18:01:10 GMT 2 495.1 KB Wed, 10 Jun 2020 20:54:39 GMT 3 495.11 KB Wed, 10 Jun 2020 19:49:50 GMT 2 495.08 KB Wed, 10 Jun 2020 15:28:55 GMT 3 491.18 KB Fri, 08 May 2020 00:40:05 GMT 5 491.21 KB Tue, 05 May 2020 23:11:23 GMT 2 491.2 KB Tue, 05 May 2020 21:53:57 GMT 2 491.17 KB Wed, 29 Apr 2020 16:43:57 GMT 3 491.13 KB Sat, 25 Apr 2020 01:35:18 GMT 8 488.3 KB Fri, 24 Apr 2020 00:11:57 GMT 4 487.3 KB Thu, 23 Apr 2020 18:41:14 GMT 4 494.16 KB Wed, 22 Apr 2020 20:34:56 GMT 4 494.16 KB Tue, 21 Apr 2020 23:35:37 GMT 3 489.14 KB Tue, 21 Apr 2020 14:48:24 GMT 3 489.09 KB Sun, 19 Apr 2020 17:11:26 GMT 3 484.68 KB Thu, 16 Apr 2020 20:02:37 GMT 5 482.99 KB Thu, 16 Apr 2020 19:19:32 GMT 4 485.85 KB Sun, 12 Apr 2020 15:03:47 GMT 4 485.79 KB Thu, 02 Apr 2020 22:14:28 GMT 9 482.54 KB Wed, 01 Apr 2020 23:53:00 GMT 3 482.54 KB Wed, 01 Apr 2020 23:29:30 GMT 4 482.51 KB Wed, 01 Apr 2020 22:36:02 GMT 3 482.53 KB Tue, 31 Mar 2020 16:03:35 GMT 4 364.87 KB Tue, 31 Mar 2020 15:08:01 GMT 3 364.86 KB Thu, 05 Mar 2020 01:35:28 GMT 8 319.99 KB Thu, 21 Nov 2019 17:00:38 GMT 27 320.09 KB Wed, 24 Jul 2019 15:16:55 GMT 13 320.09 KB Wed, 24 Jul 2019 14:57:20 GMT 5 320.07 KB Wed, 24 Jul 2019 14:41:52 GMT 3 320.08 KB Wed, 24 Jul 2019 14:15:11 GMT 3 320.1 KB Tue, 09 Jul 2019 18:30:28 GMT 9 158.26 KB Mon, 15 Oct 2018 16:23:24 GMT 36