Looking Through a New Prism
While I've not highlighted frameworks and such recently, when Brian Lagunas reached out to me about today's news I knew I had today's post.
I've used Prism myself in a couple WPF LOB app's and found it pretty darn cool and useful. If you're building complex applications, with multiple team members and need to break it up into modules that are independent yet communicate and work together, Prism is something you need to look into. It helps make the complex less so...
Prism was a product of Microsoft's Patterns and Practices group, and while there's been a number of releases, the last v5 in 2014, it's hard to call it a dynamic project. Sure, the source has been available for forever and v5 is Apache 2/MIT licensed, but it just doesn't seem to have been getting much love.
That is until now...
Last Thursday Microsoft released Prism, as in letting it go, to three of passionate Prism developers, supports and evangelists, Brian Lagunas, Brian Noyes and Ariel Ben-Horesh. This will give Prism a complete new lease on life and huge shot in the arm... Woot!
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.
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)
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.
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. ...
Want to learn more about Prism as it sits today? Here's the MSDN Library site;
Prism provides guidance to help you more easily design and build, flexible, and easy-to-maintain client business apps that run on Windows Runtime, Windows Presentation Foundation (WPF) desktop, Silverlight, or Windows Phone 7. These apps may start small and evolve over time.
Using design patterns that embody important architectural design principles, such as separation of concerns and loose coupling, Prism helps you to design and build apps that embody significant presentation and business logic that typically interact with back-end systems and services and, using a layered architecture, may be physically deployed across multiple tiers. It is expected that the app will evolve significantly over its lifetime in response to new requirements and business opportunities. In short, these apps are "built to last" and "built for change." Apps that do not demand these characteristics may not benefit from using Prism.
Develop and Deploy Applications: If you want to create a Prism Hello World application and deploy it then go through these topics. If you want to more fully understand how to utilize specific Prism capabilities in your application then read the content below.
- How to get your machine ready.
- Where to get library binaries.
- Create your first composite Prism application: Getting Started Using the Prism Library Hands-on Lab.
- Deploy Prism App: Publishing and Updating Applications Using the Prism Library Hands-on Lab.
Upgrade from Prism 4.1: Read the topics below so you can perform a cost benefit analysis of upgrading to Prism 5.0.
Learn how to create a composite application from loosely coupled WPF components that can evolve independently using the Prism library.
Prism's future is brighter than ever and I expect to see great things. Keep an eye on its new site (which currently redirects to its github repo, but will be fleshed out in the future), http://prismlibrary.com and remember YOU can take part too! The team wants to hear from you and now is your chance to get in on the ground floor... :)