In this course you will learn how to design and build Windows Presentation Foundation (WPF) desktop applications, Silverlight Rich Internet Applications (RIAs), and Windows Phone 7 applications using loosely coupled components that can evolve independently but which can be easily and seamlessly integrated into the overall application. This is an introductory course that concentrates on the basic concepts required to build a composite application with the Microsoft Patterns and Practices Prism 4.0 framework which includes the boostrapper, regions, modules, view composition, and different techniques for communicating between loosely couple components.
Brian Lagunas is a Microsoft MVP, a Microsoft Patterns & Practices Champion, Director of Technology for INETA, co-leader of the Boise .Net Developers User Group (NETDUG), board member of Boise Code Camp, speaker, trainer, author, and original creator of the Extended WPF Toolkit.
Getting Started with Prism Hello, this is Brian Lagunas, and in this module, we're going to discuss on how to get started using Microsoft's pattern & practices Prism library. If you write software and you're looking for a way to architecture applications that evolve and will stand the test of time, that don't break the second you change something, then Prism might be what you're looking for. By the end of this module, you're going to know what Prism is, and some of the benefits you get by using Prism, you're going to know how to download and install Prism, and you're going to know how Prism works. You're going to know some of the major components used when creating an application with Prism.
Bootstrapper and the Shell Hello, this is Brian Lagunas. As you well know, every application has to start somewhere. And in this module, I'm going to talk about what it takes to get your Prism application up and running. This includes creating a Bootstrapper and a shell. This module is going to be pretty straightforward. We're going to talk about two components that I believe are the easiest components to understand from the Prism library. The first one being the bootstrapper. We're going to talk about what the bootstrapper is. Some of the various stages that the bootstrapper goes through. And then we'll look at an example of how to create a bootstrapper. Then, we'll talk about what the shell is. And I'll show you how to create one for your application.
Regions Hello, this is Brian Lagunas and in this module we're going to talk about the role that regions play in your Prism application. In this module we're going to discuss what regions are and what role they play in your application. We're going to discuss the RegionManager and how it manages the regions in your Prism application. We're going to discuss the RegionAdapter and the relationship it has between the region and a region manager. We're going to talk about how to create a custom region. These are necessary for creating regions for controls that Prism doesn't support.
Modules Hello, this is Brian Lagunas and in this module we're going to talk about how to take all the views and logic out of your monolithic application and break them down into smaller, more manageable pieces called modules and use them in your Prism application. We're going to start out by talking about what a module is, then we're going to move on to the module lifetime, which includes registering modules, loading modules, and then we're going to see how to initialize these modules.
Views Chances are most applications you build require some type of interface for the user to interact with, especially line of business applications. Well a prism application is no different. Hi, I'm Brian Lagunas and in this module I'm going to show you how to add views to your prism application. We're going to start off by talking about what a view is as it pertains to a prism application. Then we're going to discuss view composition and the two methodologies of achieving view composition which view discovery and view injection.
Communication When building a Prism application you divide your application up into individual, loosely coupled modules. And sometimes it's necessary to communicate between those modules, to send data, user service, or respond to an action. Hello, this is Brian Lagunas and in this module we're going to talk about how to communicate between modules and still maintain loose coupling. When you have a need to communicate between modules there are couple of approaches that you can take. These approaches include commanding, with the support of delegate commands and composite commands, event aggregation, shared services, or provide information with the region context. Let's talk more about each of these in detail.
State-Based Navigation Designing navigation for your application is probably one of the most important aspects of your application design. And it could be a challenge to say the least. Hi, this is Brian Lagunas. And in this module, we're going to discuss how to implement state-based navigation in your prism application. We're going to be talking about what state-based navigation is. We're going to see how to implement state-based navigation to reflect application state. We're going to see how to display data in different formats and layouts. And we're going to see how we can give users the ability to perform tasks that are related to a view.
View-Based Navigation Hello, this is Brian Lagunas and in this module, we're going to continue our conversation about how to implement navigation in our Prism application. This module is going to cover view-based navigation. In Prism 4, regions have been extended to provide view-based navigation services. So we're going to be talking about basic region navigation. We're going to be covering the View and ViewModel participation and navigation services. We're going to see how to pass parameters between the view being navigated from and the view being navigated to. We're going to see how we can navigate to existing views. We're also going to learn how to confirm or cancel a navigation. And lastly, we're going to see how to use the Navigation Journal to implement custom Go Back or Go Forward type navigation.