Shine a Light with Prism (the Composite Application Guidance for WPF and Silverlight)
Upcoming SlideShare
Loading in...5

Shine a Light with Prism (the Composite Application Guidance for WPF and Silverlight)



This is the slide deck of the session I presented at VSLive San Francisco 2009 on Feb. 26, 2009

This is the slide deck of the session I presented at VSLive San Francisco 2009 on Feb. 26, 2009



Total Views
Views on SlideShare
Embed Views



5 Embeds 21 9 4 4 2 2



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment
  • MGB 2003 © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Shine a Light with Prism (the Composite Application Guidance for WPF and Silverlight) Shine a Light with Prism (the Composite Application Guidance for WPF and Silverlight) Presentation Transcript

  • Shine a Light with “Prism” Dave Bost Developer Evangelist Pre-requisites for this presentation: 1) IoC, DI 2) Presentation patterns Level: Intermediate
  • “ Looking at someone’s code, but with audio”
  • Session Objectives And Takeaways
    • Session Objective(s):
      • Able to determine RIA composite application scenarios and recommend solutions for the scenarios using Prism for Silverlight and WPF.
    • Prism – V2 in Feb shipped Feb. ‘09 (Silverlight)
    • Provides written and code-example guidance for composite solution space
    • Supports targeting both Silverlight & WPF composite applications
  • Are you building this?
  • Or something like this?
  • The Challenge
  • The Solution
  • Consider Prism
    • Provides Tools to help with separating your app and composing at run-time:
      • Tools to help you discover the pieces
      • Strategies and guidance for recomposition
      • Approaches for communication between these separate components
      • Event help with targeting both Silverlight and WPF
  • Prism-What’s in the box
    • Prism – Composite Client Application Guidance for WPF and Silverlight
      • Library
      • Reference Implementation
      • Documentation
      • Quick-Starts & How-To’s
      • Community – CodePlex
    • Prism 1.0 – WPF
      • Released July 2008
    • Prism 2.0 – Silverlight
      • Released February 2009
  • Reference Implementation
  • Prism Core Concepts
  • Modules
    • Unit Of Application Assembly
      • Collection of Related Components
      • Feature, Services, Views, Data Access
      • Mandatory or Optional or Role Specific
      • Example: Banking app: Checking Module, Credit Card Module, Trading Module, News Module
    • Unit Of Development
      • Independent Development
      • Independent Testing
    • Unit Of Deployment
      • Up-Front, Background or On-Demand
  • Modules
    • Module Discovery
      • Pluggable Catalogs
    • Module Loading
      • Background or On-Demand
    Module Loader Extended In Prism 2.0!
  • Demo Modules & Catalogs
  • UI Composition
    • Shell – Application Host Window
    • Regions – Named Areas For View Placement
    • Views – Encapsulate UI & Presentation Logic
    Region Region Region // View Injection IPositionPresentationModel presentationModel = …; IRegion mainRegion = regionManager.Regions[ &quot;MainRegion&quot; ]; mainRegion.Add( presentationModel.View ); < TabControl RegionManager.RegionName = &quot;MainRegion&quot;> < ItemsControl RegionManager.RegionName = “ResearchRegion” /> < ContentControl RegionManager.RegionName = “ActionRegion” />
  • UI Composition
    • View Discovery Composition:
      • Less Complex
      • Black Box ‘App Assembly’ Composition
      • Select Views & Pull into Region
    Region Region Region New In Prism 2.0! < TabControl RegionManager.RegionName = &quot;MainRegion&quot;> regionManager. RegisterViewWithRegion( &quot;MainRegion&quot;, typeof ( MainView ) );
  • Demo UI Composition
  • Commands and Events
    • Delegate & Composite Commands
      • Simplified Command Handling
    • Event Aggregator
      • Loosely Coupled Pub/Sub Events
    Event Aggregator Module B Customer Presenter Module A Order Presenter Subscribe Publish Event
  • Prism Silverlight Logical Architecture HOST APPLICATION LOADING SERVICES CORE SERVICES MODULE PROFFERED SERVICES Modules MODULES Presenter Model View Model ModuleCatalog Module Loader EventAggregator Logging RegionManager Unity Module Initializer
  • Multi-Targeting
    • User Experiences
      • Desktop – In the Office, Full Functionality, Offline
      • RIA – Out of the Office, Functional Subset, Online
    WPF Application Silverlight (RIA) Application CLR - Silverlight CLR Desktop BCL BCL BROWSER DESKTOP
  • Multi-Targeting: Strategies
    • Start with LCD
    • Use Links and Parallel Project Structures
    • Separated Presentation Strategies
    • Keep single source
    • If not, apply the sieve
    #IF SILVERLIGHT Partial Classes Partial Methods Separate Classes Rewrite the Code
  • Multi-Targeting Controllers Models Presenters Views Views WPF CLR - Silverlight CLR Desktop BCL BCL BROWSER DESKTOP Models Controllers Presenters
  • Demo Multi-Targeting
  • Where Can You Find It?
  • Summary
    • Prism
      • Library of Patterns for Composite Client Applications
      • Targets WPF Desktop and Silverlight RIA Applications
      • View Disovery Composition, Separated Presentation Patterns, Module Catalog
      • Multi-Targeting to reuse code between Silverlight and WPF
    • Download from CodePlex and send us feedback
  • Dave Bost thank you! Q&A