Designing extensible XAML client applications with WPF, Silverlight and Metro involves a lot more than just knowing how to load a plug in interface to invoke some functionality. You need to be able to add whole new sets of functionality including a data model, logic, and views for presentation. And if you do it right, you should be able to do all that without disturbing or even changing any of the core application logic or other views. This session will show you how you can achieve that with a combination of the Managed Extensibility Framework (MEF), the MVVM design pattern, and a little bit of help from the Prism Framework. You will learn how to set up a little bit of base class infrastructure in the core application that can then be easily built upon with extensions. You’ll see how you can plug in views and view models and model objects and still have those integrated with existing parts of the application they are plugged into, but in a loosely coupled way. You’ll walk away with a baseline architecture and sample code for achieving it that will let you grow and extend your WPF and Silverlight client apps over time without needing to constantly crack open the core code and do surgery to add new features. You'll also see what the path to building similar applications in Metro looks like.
You will learn:
- How to leverage MEF, MVVM, and Prism to build extensible applications.
- How to compose parent-child relationships in views so that you can plug in new user interface elements without the parent being coupled to the child views.
- How to add whole new sets of functionality by plugging them in with Prism modules and regions.