Prism provides guidance in the form of samples and documentation that help you easily design and build rich, flexible, and easily maintained Windows Presentation Foundation (WPF) desktop applications. Using design patterns that embody important architectural design principles, such as separation of concerns and loose coupling, Prism helps you to design and build applications using loosely coupled components that can evolve independently but that can be easily and seamlessly integrated into the overall application. In short, these applications are "built to last" and "built for change." These types of applications are known as composite applications.
What’s new for Prism 5.0 for WPF?
When we first created Prism one of the primary goals was to allow developers to use the components that they needed for their applications. For this release we took it a step farther by separating the features into separate assemblies – Prism.Composition, Prism.Mvvm (portable class library), Prism.PubSubEvents (portable class library), and Prism.Interactivity.
- The Prism assembly no longer exists, instead that functionality has moved into the assemblies mentioned above. If you want to use all the Prism functionality, you can download the Prism NuGet package, which will download the NuGet packages for Prism.Composition, Prism.Mvvm, Prism.PubSubEvents, and Prism.Interactivity.
- The NavigationParamaters class can now be used to pass object parameters during navigation using the overloads of the RequestNavigate method of a Region or RegionManager instance. This was a community request on CodePlex.
- Portable class library that encapsulates Prism’s MVVM support including DelegateCommand, CompositeCommand, and ViewModel. This allows your view models to be portable across WPF, Windows Phone 8, and Windows Store 8.1.
- Views and view models can be wired together using the new ViewModelLocationProvider’s convention-based approach.
- DelegateCommands are now extendable and provide Async support.
- Portable class library that allows your view models to communicate in a loosely couple fashion.
- PopupWindowAction class added to allow a custom window to display in response to interaction request being raised.
- The InvokeCommandAction provided by Prism now passes trigger parameter's to the associated command. This was a community request on CodePlex.