Prism 4.0 For Visual Studio 2010, .NET Framework 4.0, WPF & Silverlight 4


The Microsoft patterns & practices team is excited to announce the release of:

Prism 4

For Visual Studio 2010, .NET Framework 4.0, WPF & Silverlight 4

Prism provides guidance designed to help you more easily design and build rich, flexible, and easy to maintain Windows Presentation Foundation (WPF) desktop applications, Silverlight Rich Internet Applications (RIAs) and Windows Phone 7 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. Such applications are known as often referred to as composite applications.



Prism is intended for software developers building WPF or Silverlight applications that typically feature multiple screens, rich user interaction and data visualization, and that embody significant presentation and business logic. These applications typically interact with a number of back-end systems and services and, using a layered architecture, may be physically deployed across multiple tiers. It is expected that the application will evolve significantly over its lifetime in response to new requirements and business opportunities. In short, these applications are “built to last” and “built for change.” Applications that do not demand these characteristics may not benefit from using Prism.

Key Benefits

  • Provides guidance and a re-usable library to help you develop flexible, easy to maintain WPF and Silverlight composite applications
  • Helps you to understand, implement and use key design patterns, such as MVVM and Dependency Injection
  • Supports the development of modular applications, allowing parts of your application to be fully developed and tested by separate teams
  • Helps you re-use application code and components across WPF and Silverlight, allowing you to create multi-targeted client experiences
  • Allows you to build a designer-friendly, dynamically composed user interface for your application
  • Includes reference implementations, quick-starts, hands-on-labs, as well as a comprehensive developers guide to get you up to speed quickly
  • Includes full source code to support code re-use or customization or for reference and education

In this Release

  • Prism Library for WPF, Silverlight and Windows Phone 7
    • Signed binary assemblies
    • Full source code
  • Example Applications and Hands-on-Lab Source Code
    • Reference Implementations (2)
    • QuickStarts (12)
    • Hands on Labs (2)
  • Documentation
    • Comprehensive developers guide showing how to use Prism within your application
    • A printable PDF of the developers guide – available on CodePlex

About patterns & practices

The Microsoft patterns & practices team provides a wide range of guidance to help customers save time and reduce risk on their software development projects by incorporating proven patterns and practices.  This applied engineering guidance includes both production quality source code and in-depth documentation.

The guidance is designed to help software development teams:

  • Make critical design and technology selection decisions by highlighting the appropriate solution architectures, technologies, and Microsoft products for common scenarios
  • Understand the most important concepts needed for success by explaining the relevant patterns and prescribing the important practices
  • Get started with a proven code base by providing thoroughly tested software and source code that embodies the recommendations

For more information:

15 Responses to Prism 4.0 For Visual Studio 2010, .NET Framework 4.0, WPF & Silverlight 4

  1. […] This post was mentioned on Twitter by LIDNUG, patterns & practices. patterns & practices said: Karl Shifflett: Prism 4.0 For Visual Studio 2010, .NET Framework 4.0, WPF & Silverlight 4 – […]

    • nicemunda says:

      Where can we find example application for prism 4.0, mvvm, mef and entity framework? Can you create tutorial in the box with this combination?

      • The code included in the Prism download contains many Prism, MVVM, MEF examples.

        EF is a data access framework that is normally abstracted behind a repository layer. This allows swapping out the repository layer for testing or for another data access framework to be used.

        Prism is not directly connect to a data access framework (which is a very good thing).

        Once you have a grasp of Prism and the UI, you can use any data access framework.

        The In the Box for Prism won’t have EF examples as this would add more requirements to the learning experience. Instead, I’ll show a respository layer that can be swapped out.



  2. weitzhandler says:

    I think what’s really missing in Prism is:
    1) Templates!!!!
    2) Designer & Code generators
    3) Should work against Entity-Framework
    4) Should be integrated with RIA services (+WPF)
    5) Karl you gotta create an In the Box training for Prism as well!!

    Thanks, waiting to hear forward!

    • weitzhandler

      Thank you for the feedback.

      1) templates are in progress and will be shipped on the VS Gallery.
      2) out of scope – instead, we feel that templates can meet 90% of the need
      3) It does. you can use any data layer you choose.
      4) It does. you can use any data layer you choose.
      5) I will be, this was annouced in the blog post and inside In the Box



      • weitzhandler says:

        Hi Carl and thanks for your response!
        What do you mean on section 2 “Out of scope”?
        I basically meant that the MVVM ViewModel etc. should be generated.

        Love you too,

  3. […] Prism 4.0 For Visual Studio 2010, .NET Framework 4.0, WPF & Silverlight 4 (Karl Shifflett) […]

  4. zholobov says:

    Is the Prism navigation integrated with SL native navigation in this release?

  5. Hi Karl,
    I am using prism and I find it very good as a base Framework. I am having some problem with NavigationService when there are regions defined in data template, for this I opened this discussion

    Is there any way to have a transition animation, as you did in BBQ Shack whne navigating from one view to another?


    • We should give support time to reply; your post was at Friday at 3:00pm.

      Why put regions in data templates, seems to add a level of complexity.

      What control is your region manager attached to? The control that the region manager is attached to is responsible for transitioning content. There are many examples of ContextControls or ItemsControls that transition their content.


  6. Thanks Karl,

    I am adopting the ViewModel First approach and, as I read in the documentation, if I want to use the NavigationService I must adopt the DataTemplate to specify which view should be used to render the ViewModel I am navigating to.

    I was defining the region inside DataTemplete because I wanted to have an HomeVew that is activated when I choose an application functionality, lets say the Invoice, and then use the navigation to move among all view related to the invoice within this subregion. I know that I am adding complexity, I am still looking for a better UI.

    The RegionManager is attached to a ContentControl, also the subregion is another ContentControl.

    I would like to relize a UI like what you did with BBQ Shack but using a Ribbon.

    My application is constitued by various modules, each module adds his own RibbonTab to the ribbon with all functionalities related (ribbonGroups and ribbonButtons).

    When I chose a functionality, i.e. Invoice, I navigate to the InvoiceHomeScreen, but I am having doubts where to show that the invoice functionality has opened 3 invoices, in BBQ Shck you defined a NavigatinButton that shows a circle with the number of open items. This BBQ Shack UI is fine when the application has few functinalities, 5 to 10, so you can show these 10 buttoms at the bottom, bt if it has a lot, displaying a lots of button is confusing the user.

    I tried definind a custom RibbonButton that does the same but I don’t like it, it seams breaking the rules for Ribbon.

    Any hint here will be appreciated.


    • You want to make it easy for the end user to see their open (active) forms.

      Get a UI Designer to help you with surfacing the information. Each application has different requirements, limitations and features.

      It’s very difficult for me to provide concrete advice without seeing the whole picture.



Get every new post delivered to your Inbox.

Join 255 other followers