Training Class on Prism 2.0, the Microsoft Composite Application Library and Composite Application Guidance 

 

Programming Microsoft CAL and CAG

Detailed Syllabus

Day 1 Morning:   Introduction

Lecture: Introduction to Prism. Problems addressed by Prism. Goals and non-goals of the Prism framework. Advantages and disadvantages of loose coupling. Common and uncommon usage scenarios. Types of applications that Prism does well, types that it does not. Basic architectural layout of the Prism system, components of a Prism application. Definition of basic terms. Analogies to CAB/SCSF and OLE. Concepts of targeting both WPF and Silverlight.

Lab: Installation of Prism SDK. Exploration of its parts.

Day 1 Afternoon:  Prism Application Walkthrough

Lecture:  Walkthrough of Hello, World sample Prism application, in WPF and Silverlight. Examination of tools for creating your own Prism application, guidance packages written by your instructor.  Examination of the Bootstrap class. Examination of UnityContainer and its Resolve method, differences between WPF and Silverlight. 

Lab: Generate Hello, World application using instructor's templates. Make changes, observe results.

Day 2 Morning:  Services and Modules

Lecture:  Concept of a module, implementing the IModule interface. Using guidance package written by your instructor to add a module to your project. Injection of container reference into modules. Different ways of specifying the module list: hard-wired, .config file, directory sweep, web service. Preparing a module for remote downloading. Concept of a service: separation of interface and implementation. Creating a service. Registering a service locally and globally. Fetching and using services.

Lab: Work with sample application manipulating services and modules.

Day 2 Afternoon: User Interface Composition with Regions and Views

Lecture: Need for loose coupling in the user interface. Definition of a region. Examination of the Region Manager service. Adding a region to your application. Examination of the IRegion interface. Creating a custom region. Fetching a region and showing a view in it.  Concept of a view and presenter. Creating and implementing a new view/presenter class. Using pull-based and push-based composition for associating view with regions.

Lab: Work with sample application showing regions and views

Day 3 Morning: Shared User Interface Extension and Commands

Lecture: Need to integrate with WPF Command mechanism to respond to items from the user interface, such as button clicks. Examination of the ICommand interface.  Declaring and creating a Command object. Examination of the CompositeCommand and DelegateCommand classes. Connecting to the Command object via single and multicast delegates. Local versus Global commands. Using Command object to allow modules to show menus and toolbars and ribbons. Example integrating Commands and Regions.

Lab:  Work with sample application integrating events and regions.

Day 3 Afternoon:  Event Broker System

Lecture: Problems of loosely-coupled notification. Introduction to the Event Broker service. Characteristics of a Prism event. Static and dynamic subscriptions to an event. Specifying the thread on which an event notification is received. Static and dynamic firing of an event. Specifying the scope of a fired event. Filtering on event parameters.

Lab: Work with sample application showing loosely coupled events