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.
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.