The Prism Library was born in 2008 in the offices of the Microsoft’s Patterns and Practices team. Since then, Prism has grown into a mature set of guidance that allows developers to use proven patterns and development practices to create XAML based applications for the WPF, Silverlight, Windows Phone, and more recently, the Windows Store platforms. Prism has built a strong community following and is used in mission critical applications around the world. Since the Prism Library project was released on CodePlex, it has had well over 338,000 CodePlex downloads, over 123,900 Nuget downloads, and nearly 5,000,000 page views. That is what I would call a very successful project.
As you know, there are a lot of exciting changes happening at Microsoft. Those changes just happen to include the OSS community. Microsoft knows the importance of the dev and open source communities and has been positioning a number of products as OSS (Open Source Software). You have seen this new OSS direction with the Entity Framework, Roslyn, and most recently ASP.NET. They are putting the communities in charge and giving them direct input into the products. Now, they are taking a similar position with the Microsoft’s Patterns and Practices projects, but just a step further. Microsoft is giving full control of the Prism Library and supporting projects over to a new community team. This team will be taking over all projects and responsibilities related to the Prism Library. Who is this team you ask? Let’s meet them.
Meet the Team:
Brian Lagunas (Me)
Brian Lagunas is a Microsoft MVP, a Microsoft Patterns & Practices Champion, co-leader of the Boise .Net Developers User Group (NETDUG), board member of Boise Code Camp, speaker, trainer, Pluralsight Author, and original creator of the Extended WPF Toolkit. He is a multi-recipient of the Microsoft Community Contributor Award and can be found speaking at a variety of user groups, code camps, and other technical events around the world. His talks always involve some form of XAML, such as WPF, Silverlight, and Windows Store, as well as how to build modular applications with Prism.
Brian currently works at Infragistics as a Product Manager for all things XAML.
Brian is CTO at Solliance, a Microsoft Regional Director, Microsoft MVP, and Pluralsight Author.
He specializes in building maintainable client applications in XAML and HTML 5, as well as building the services that back them with WCF, ASP.NET Web API, and Windows Azure. Brian has authored several books including Developer’s Guide to Microsoft Prism 4, Data Binding with Windows Forms 2.0, and Smart Client Deployment with ClickOnce. He publishes articles frequently in a variety of publications and speaks at conferences worldwide including Microsoft TechEd, DevConnections, DevIntersection, VSLive!, DevTeach and others. Brian got started programming as a hobby while flying F-14 Tomcats in the U.S. Navy, later turning his passion for software into his current career.
Ariel Ben Horesh is a well-known .NET expert, consultant, team leader and community leader (admin of the Israeli .NET User Group).
With more than 15 years of experience in the software industry, Ariel now works in CodeValue, a company he has co-founded, where he creates products for developers, consults and conducts courses around the world about UI development: WPF, Web, Mobile and UI architecture.
Ariel is CodeValue’s Mobile and Apps department manager, he has created well known apps in Windows Phone, Windows 8.1, iOS and other mobile platforms.
A New Home
With a new team, comes a new home for the Prism Library. We will be moving the current Prism 5.0 code base to our new Prism Library GitHub Repository. We will only be bringing over the latest Prism Library code base, because this is the code base that Microsoft has assigned the Apache 2.0 license, except for Prism for WinRT which is under the MIT License. Which, in essence, allows us to have this freedom. Which means, if you are using an older version of Prism, you will continue to use the retired CodePlex site for binary and source code downloads. Over time, we will also be bringing over all documentation, samples, tutorials, and other content to a new website located at http://prismlibrary.com. Please be patient, as this website has not been created yet. Being open source, and community driven, we must create a new brand, vision, and supporting website in our free time. Which could take some time.
So you may be wondering exactly which projects this team will be managing. Well, here they are:
- Prism for WPF
- Prism For WinRT (Maybe)
You may notice that there is a “Maybe” next to Prism for WinRT. This is because the future of Prism for WinRT is not looking good. We will really have to wait until the Microsoft Build event to see what Windows 10 will bring. There is a good chance Prism for WinRT will be retired. Of course, we will be looking at creating a Windows 10 version of Prism. More projects may be added in the future, but this is it for now.
Now, we aren’t just going to move over the Prism code base and let it rot and die. Oh no, we will be improving an already mature product with new features and to support new platforms (can you say Windows 10?). We already have a number of items that we will be addressing in the next version of Prism. Here is a highlight of some of them.
- Remove the dependency of Prism.PubSubEvents from Prism.Composition
- Remove all deprecated classes and properties
- Fix that annoying namespace bug with Prism.Mvvm
- Fix that annoying bug with the ViewModelLocator design time exception. (We will remove the need of IView altogether)
- Add CallermemberName attribute to BindableBase.OnPropertyChanged
Besides these small feature improvements, we will also be looking at restructuring the Prism solution to make a more cohesive product, reduce dependencies, and to better support cross platform development; such as iOS and Android using Xamarin.Forms. You can expect a number of breaking changes in the Prism 6 release as we take Prism in this new direction.
We don’t have a release date just yet. We have a number of items on our backlog that must be figure out first. We need to solve how we will update/maintain/host documentation, how we will write the website, how we will support our users, and other product related items.
We are very excited, and extremely thankful, to Microsoft to allow us to continue the effort on the Prism Library. This would not be possible without the hard work and efforts from the Microsoft Patterns and Practices team for making this possible. They are the ones that pushed this to make it happen. They have entrusted us to continue a project that they have been working on for years. As developers, we know how attached we can become to our favorite projects. I remember how I felt when I gave up my Extended WPF Toolkit project. So I know the P&P team is somewhat saddened, but also excited to see their project live on with a team that shares their passion.
We are looking forward to the Prism community continuing their support and adoption of Prism. Please, feel free to interact with us, tell us your ideas, let us know when you find a bug, and even contribute to the code. If you want, you can even help write our new website :0). But, most of all, please help spread the word.
These are exciting times, and I hope to make the Prism community proud of where we go next.
I have used Prism in many WPF projects and I hope community continue support of this library. I suggest you Orchard CMS for PrismLibrary.com website.
Thanks for the suggestion, but I am not a fan of Orchard. We have been using it for our BoiseCodeCamp.com website, and have had nothing but issues. I was thinking a WordPress site, but we might be better off with just a simple SPA instead.
I know Microsoft killed off Silverlight, but it’s still out there in the community. Will Prism continue to support Ag?
Funny you should bring this up. As you may know, Microsoft’s P&P team dropped support for Silverlight with the release of Prism 5.0. I know this upset a lot of people that were using Prism in existing SL applications, and just wanted the new features. I just asked this question to my team about if we should bring SL back into the supported platforms, but we were not 100% sure this is something we should spend time on. Microsoft has clearly killed off Silverlight, and we have limited time available. So is this something we should be spending time on?
Also, we wouldn’t want to actually provide support for the SL platform. We would be getting a ton of questions regarding how to do something in Silverlight with Prism. If we did add support for Prism back into Prism, how would you feel if it were automatically marked obsolete? Basically, we would add it back so people can continue to maintain their current SL apps (and even build new ones), but not provide any support for it.
What are your thoughts?
The ViewModelLocator design time exception is the single biggest annoying thing about PRISM for me at the moment.
This announcement is great news.
RIGHT!? That is so freaking annoying. We have already fixed this in Prism 6. You will no longer even need to add IView to your views. It will just work.
Does Prism 6 is released? I cant find it on Nuget. I’m planing to start new windows application using Prism.
Yes, it is currently available as a preview.
I have struggled to get the new ViewModelLocator model in Prism 6 to work as expected. As there is no documentation yet and the single Prism WPF sample does not include MVVM, where can I go for help?
I think I figured out the problem. From the ‘Breaking Changes’ on your GitHub site:
“ViewModeLocator naming convention changes: [Name]View now requires [Name]ViewModel. No longer [Name]ViewViewModel”
I prefer to name my start window ‘MainView’, which means my ViewModel is then named ‘MainViewViewModel’. When I use ‘MainWindow’ everything works fine. I’m guessing the ‘…ViewViewModel’ in the name breaks the new rules.
Sorry for the late reply, I haven’t been getting notifications of new comments for some reason. Yes, you are correct. The naming convention was changed in Prism 6 to prevent those ugly MainViewViewModel names in our projects :0). So now it would just be MainViewModel
This are really great News!
We used PRISM in WPF and W8 App’s and I hope that support continues. It saved a lot of effort and headache.
I’m always happy to meet a fellow Prism user. We plan on taking Prism forward with continued development on other platforms as well.
Awesome! I was going to look into Prism about how much can be used in Xamarin Forms, I think the focus is in the right direction, hopefully I can make some contributions too, we use it in every Universal app since a couple of months now.
Great! I look forward to your feedback and pull requests :0)
We are starting a new WPF desktop project now and we are strongly considering to use PRISM, but I noticed that PRISM 6 has some examples in Xamarin, our focus today is a WPF desktop modular application, my question is: Does Prism continue to keep support to desktop development?
Yes, of course! WPF has always been the primary platform for Prism. We are just trying to structure Prism so that we can take advantage of it on other platforms too. We have already added a number of small features and bug fixes to the WPF version.
It would be nice if prism had a default splash screen implementation which shows the loading of modules. This feature along with a logon/logoff infrastructure would be great.
Be sure to submit your request under our github issues.
great to know the news. My silverlight was build on prism, I hope I cam update the project to mobile platform with the new release.
After Microsoft Build 2015 conference I think it’s clear that the future are Universal Apps so I think it’s very important to have Prism for Universal Apps.
We will be looking at adding support for the UWP very soon.
any news – supporting universal apps?
Developing a win 8.1 universal app. missing regions manager and modular Manager.
Nothing yet. We will only be supporting the new UWP platform when we do release something. Modularity will not be part of that because dynamic assembly loading is not supported in WinRT.
Is there a discussion forum for Prism 5 ?
Just submit an issue on the Prism GitHub site: https://github.com/PrismLibrary/Prism
Looks like Prism is in good hands!
It’s in great hands :0)
Where you folks stand in releasing Prism 6 for WPF ?
It has been released today and is available on NuGet. Search for Prism 6.
I know that regions are not there in prism for windows 8.1. I don’t know whether this is complicated because I have not done much in UWP just yet (and nothing in windows 8.1), but how will you deal with a situation where I have some static header, or footer etc. I looked at the HelloWorld app for Prism 6, and both pages have a textblock with text hello world. If you have 5 or more pages which need this header, then you have to repeat the same xaml 5 times or more (not good practice). Is this how it should be in the UWP? surely there would be something build in Prism that will deal with this issue? WPF prism is simple with the region and very powerfull because of this.
Prism doesn’t deal with titles on pages or windows. That is a platform feature.
We were planning on using prism 5 for our Presentation Layer. Prism 5 had the best documentation and guidance. Does the documentation apply to the new prism 6 as well? or is there a new documentation, tutorial on the changes made.
Sorry for the late reply, I haven’t been getting notifications of new comments for some reason. The documentation still applies. We have changed namespaces and other minor things, but conceptually and feature wise, everything is the same. You can read about the breaking changes here: https://github.com/PrismLibrary/Prism/
Thanks for your reply Brain. I got another quick one. Is the prismprop snippet (from your webinar) ready yet?
I haven’t had time to start creating the VS template or snippets yet. We have a lot of work that needs to be done, and there are only 3 of us actively contributing.
Thanks to you all. Keep up the good work! (Y)
Thanks and welcome to the new team! I love Prism and I hope the support will continue in the future, especially with Unity, and for a good blendability experience. For me at present the blendability experience is very bad, and I’ve to use a workaround to see the shell with the regions in Blend!