Plan for Prism for .NET 4.5
The patterns & practices team is working on an update to Prism for WPF to support .NET 4.5. We plan to complete the release in February. Francis just posted our first drop to CodePlex. So go check it out and give us your feedback.
This project was just released. See the blog post announcement.
Scope
Prism library updates
The major theme for the release is to move classes to Portable Class Library (PCL) and to address some of the requested CodePlex issues. In Prism for the Windows Runtime we moved the Event Aggregator to PCL. For this release we will move classes that support MVVM to PCL. For the classes that are moved to PCL, we will make the WPF versions obsolete.
Going forward you will see us put as much into PCL as is appropriate and reasonable.
Here is what we are doing for Prism in this release:
- ViewModel Locator: migrate ViewModelLocator from Prism for Windows Runtime to be a Portable Class Library and use it in Prism for WPF.
- BindableBase: migrate BindableBase from Prism for Windows Runtime to a Portable Class Library and use it in Prism for WPF. There is a request to add CallerMemberName to NotificationObject. We decided to port BindableBase from Prism for Windows Runtime to PCL as it already supports CallerMemberName. This means we will make NotificationObject obsolete in this version.
- Navigation: allow a dev to pass an object as a navigation parameter. This is a CodePlex request.
- InteractionRequest: migrate InteractionRequest to WPF. This is a CodePlex request.
- DelegateCommand: migrate DelegateCommand to a Portable Class Library. In a future release, Prism for the Windows Runtime will use the PCL version of the DelegateCommand.
Quickstarts
- Basic MVVM Quickstart.
- Create WPF version.
- Add ViewModel locator.
- Demonstrate how to construct parent-child Views and ViewModels.
- Demonstrate how to communicate between parent and child.
- State-based Navigation Quickstart.
- Create WPF version.
- UI Composition Quickstart.
- Create WPF version
- View-Switching Navigation
- Create WPF version
Drops & Release
Francis Cheung posted a drop today to CodePlex. Once we complete the release we will create NuGet packages and publish the source code on the Microsoft download center.
In this Drop
- Prism
- ViewModel Locator and Bindable Base ported to PCL
- NotificationObject is marked obsolete
- Interaction Request working for WPF
- Using .NET 4.5.1 and latest version of Unity and the Common Service Locator
- Navigation passes an object and a string
- ErrorsContainer, NotificationObject, CompositePresentionEvent marked as obsolete.
- ViewModel Locator and Bindable Base ported to PCL
- Basic MVVM QuickStart using Prism ViewModel Locator.
- The ViewModel Locator uses a convention based approach to wire views and view models. In our XAML we tell the ViewModelLocator to AutoWire the view and the view model.
prism:ViewModelLocator.AutoWireViewModel="true"
-
- The convention assumes:
- View models are in the same assembly as the view types
- View models are in a .ViewModels child namespace
- Views are in a .Views child namespace,
- View model names correspond with view names and end with "ViewModel".
- For more information on how the ViewModel Locator works see the Prism for Windows Runtime documentation. We will provide documentation on how to modify the default convention.
- The convention assumes:
- Prism, Stock Trader reference implementation, and Quickstarts updated to use BindableBase (Prism.Core) and PubSubEvent (Prism.PubSubEvents).
- CodePlex requests resolved
- 10110 - Unity not compatible with UnityExtensions
- 9439 - Navigation to an existing view
- 8121 - Prism ContentControl Region RequestNavigate - View already exists in region
- 9439 - [MEF] Navigation to an existing View
- 9118 - Extract Core Application Functionality to Core Assembly (Prism.Core)
- 9107 - NuGet packaging
Check out the drop and let us know your thought.
Comments
- Anonymous
January 17, 2014
This is great news to hear! Thanks for doing this and looking forward to the bits! - Anonymous
January 23, 2014
Is PRISM 4.2 coming to .NET 4.0 ? - Anonymous
January 24, 2014
Martin, we only plan to release Prism 4.2 for .NET 4.5.1. - Anonymous
January 29, 2014
It also would be nice to have the option of viewmodel first approche.Or why dou you choose the view first approche? - Anonymous
March 02, 2014
Sorry. Did I misunderstand something?The projects in the latest drop on CodePlex seem to target Framework 4.5 not 4.5.1 as stated. - Anonymous
March 03, 2014
Brian, we did change the prism library to target .NET 4.5 instead of 4.51 so anyone that is still on .NET 4.5 can use the library. The Stock Trader RI and the QuickStarts projects are 4.51 which includes a reference to the Prism library for .NET 4.5.Is there an issue with targeting .NET 4.5 instead of 4.51? We are not using new capabilities of .NET 4.51 so we wanted to ensure it works for more developers.blaine - Anonymous
March 11, 2014
Any chance on seeing Prism 4.2 target Silverlight 5? C'mon guys, don't forget about us! - Anonymous
March 24, 2014
When is the release coming of this version? - Anonymous
March 27, 2014
I have a huge problem with the new 4.2 release. If you use NuGet packages for Prism, Prism.UnityExtension etc. you will get a exception in the UnityBootstrapper::ConfigureContainer as it tries to register the EventAggregator. This is caused be the fact that the EventAggregator now is placed in namespace Microsoft.Practices.Prism.PubSubEvents and not as before in Microsoft.Practices.Prism.Events.What i'm actually trying to say is... you need to update the NuGet package for Prism.UnityExtensions, so it references the correct EventAggregator.(sidenote: it's correct if you compile the PrismLibrary - the problem is with the NuGet pacage version 4.1.0) - Anonymous
March 27, 2014
Karsten: Thanks for your feedback. The Prism.UnityExtensions as well as Prism.MefExtensions NuGet packages will be updated in the next release. - Anonymous
March 27, 2014
Karsten: A work-a-round would be to take project references to the latest UnityExtensions code but use the NuGet reference to Prism.PubSubEvents. - Anonymous
March 27, 2014
Francis C: Looking forward to updated NuGet packages. Is there any roughly time for release of NuGet packages?As for workaround - i was actually thinking in the lines of something like what you suggested. I was planning to just override ConfigureContainer with code from base. - Anonymous
March 27, 2014
Patrick,We are finalizing the documentation which is taking longer than we expected. We expect that this will be finished in the next 3 weeks. - Anonymous
March 27, 2014
Etienne,At this point we do not plan to target Silverlight with the release. The Prism 4.1 support Silverlight 5 and will still be available. - Anonymous
April 21, 2014
Is there any plan to remove the platform restriction so the prim libraries can run as portable libraries on other platforms then windows? - Anonymous
April 21, 2014
Look like this version of Prism have been released : www.microsoft.com/.../details.aspxBut I don't like the version number you have used (5.0), a version 4.5 would have been easier to understand, and what will you use if you update Prism for .Net 5 now? - Anonymous
April 21, 2014
Documentation have also been released here : msdn.microsoft.com/.../gg406140.aspx - Anonymous
April 22, 2014
Yes the code and documentation are now available. We still have a couple items to publish before everything is ready. I will publish an official blog post later today. - Anonymous
April 25, 2014
Bejarid,The official announcement just went out. You can read it at aka.ms/prism-wpf-50announcement. - Anonymous
September 02, 2015
Where can I find example(s) using MEF 2 for Windows Runtime with PCL's? And a plus using ConventionBuilder to compose the parts instead of Attributes.