Since the initial release of Prism in June 2008, many developers have successfully used it to build flexible, modular applications for WPF or Silverlight (and sometimes both at the same time!). We updated Prism in October last year so that it could be used with WPF 3.5 SP1 and/or Silverlight versions 2.0 or 3.0. That update (available here) was Prism version 2.1.
The recent availability of the Visual Studio 2010, .NET 4.0 and Silverlight 4.0 Release Candidates has brought us one step to closer to the next generation of WPF and Silverlight platforms. We know that many developers are really looking forward to the powerful new features in WPF 4.0 and Silverlight 4.0. But, we also know that many developers want to continue to use Prism to build composite applications on top of these new platforms and are wondering about our plans for Prism. If you’re one of those folks, then this post will answer many of your questions.
We’re just about to start work on the next version of Prism, which we’re calling version 4.0 (because 4 is the new 7 J). We’re targeting a release around September 2010 for Prism 4.0. In the meantime, we’ve had many folks ask us whether Prism 2.1 can be used for WPF 4.0 and Silverlight 4.0 development.
To answer that we’ve started to test Prism 2.1 against WPF 4.0 and Silverlight 4.0 (using the Release candidates for each). I’m happy to say that so far, apart from a couple of very minor issues in the Reference Implementation and some of the unit tests, we’ve found no issues with using Prism 2.1 for WPF 4.0 and Silverlight 4.0 development.
Of course, once .NET 4.0 and Silverlight 4.0 are released, we will complete our testing and we’ll release an interim update of Prism (probably called Prism 2.2) which will address any issues that we do find.
The patterns & practices team exists to provide guidance for building well architected solutions on the Microsoft platform. Of course, that means that as the platform evolves, our guidance will evolve too. So while Prism 2.2 will be fully tested against WPF and Silverlight 4.0, it won’t add any new capabilities or target any of their new features. For Prism 4.0, however, we plan to take full advantage of the powerful new features in .NET 4.0 and Silverlight 4.0 and provide guidance on using them to build modular, flexible composite client applications.
There are more details on our current thinking for Prism 4.0 below but, as always, as we develop Prism 4.0 we’ll be following our Agile community-driven approach and actively seeking ongoing feedback. We’ll use this feedback to guide the specific details of the project. We’ll be dropping code and docs to our Prism CodePlex site every (two-week) iteration so that you can see exactly how Prism is evolving.
So what are some of the things that we’re thinking of focusing on in Prism 4.0?
We’ve been polling the community for a while now so we’re starting to get a good idea on the main things that folks would like to see in Prism 4.0. Our current thinking on four of these is described briefly below, but once we start digging into some of the details, and as we get feedback from the community in terms of relative priority & focus, our plans may change.
The areas outlined above represent a lot of work, so we very well may not be able to address them all in Prism 4.0 J We’re looking to you to help us to make some key decisions and to help us prioritize which aspects we should focus on first. If you’d like to get involved, make sure you visit our CodePlex site regularly. We’ll be posting updates there often.
Lastly, given the excitement at the release of the Windows Phone Developer Tools CTP at Mix 10 this week, some of you may be wondering about using Prism on Windows Phone 7 Series. We intend to support Windows Phone development in a future release of Prism. In the meantime we’ll be tracking the Windows Phone 7 Series development platform closely.
Hopefully this post has answered many (if not all) of your Prism questions. If not, please let us know!
The patterns & practices Client Team
Any thoughts on adding Navigation support (so that you can build a linkable Silverlight application using Prism)?
most of all my SL apps are using Prism, and im definitely porting them to WP7.. is there any suggestion of timeframe for the next release, or how difficult it would be to update it myself?
>>The areas outlined above represent a lot of work, so we very well may not be able to address them all in Prism 4.0 J We’re looking to you to help us to make some key decisions and to help us prioritize which aspects we should focus on first.<<
If you might not have enough time for all, I'd certainly focus on the first three Items, and giving RIA Services a high priority.
Thanks!
..Ben
Any thoughts to replacing the EventAggregator with something like EventAgg.GetObservable<TEvent>(), or something similar with the intent of being able to compose queries with RX ontop of the EventAggreator
Any thoughts on reviewing/using RX?
It seems to be gaining momentum.
Fantastic!
Any chance in including ViewFirst MVVM in the Prism as an alternative approach?
Other than that all of the items from my internal prism-wish-list are mentioned so good works guys!
The plans sound great and I can't wait to get the new bits and start building. Any chance of getting non-WPF/non-Silverlight Prism for WinForms/ASP.NET? I still need to build those apps and I hate to give up all the Prism goodness (although I do use pieces).
Expression Blend 4 Beta includes an MVVM template (Interactivity). Will there be any alignment between Interactivity and Prism's MVVM frameworks?
John,
We are in the process of creating a survey so that you can help us prioritize the work for Prism 4.0. One of the topics that we will ask you to prioritize is Navigation. So it depends on votes it receives.
Blaine Wastell
p&p
SmartyP,
We have not finalized when the Windows Phone 7 version of Prism will ship. The current thinking is to start the project right after Prism 4.0. We are creating our plans for the next couple of Prism releases. Once the planning is complete, we will publish a roadmap with target dates for Windows Phone 7.
We are tracking Rx as a number of you are interested in it. Once it becomes part of the core platform, we will consider adding support in Prism.
We do not have plans to port Prism to WinForms or ASP.NET. There is a port of the Event Aggregator to Windows Forms on the Prism Codeplex contrib project. I also know of customers that ported the rest of Prism to Windows Forms to address your scenario. There are also a number of customers using the Composite UI Application Block (CAB) for Windows Forms. patterns & practices is in the process of porting CAB and the Smart Client Software Factory to Visual Studio 2010. I recently blogged about a beta version that is now available.
As for both MVVM comments, we will take them into account as we start the project. The current version of Prism works with both ViewFirst and PresenterFirst Composition.