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

  • 2,026 views
Uploaded on

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,026
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
80
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • 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.

Transcript

  • 1. Shine a Light with “Prism” Dave Bost Developer Evangelist http://davebost.com/blog Pre-requisites for this presentation: 1) IoC, DI 2) Presentation patterns Level: Intermediate
  • 2. http://thirstydeveloper.com “ Looking at someone’s code, but with audio”
  • 3. 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
  • 4. Are you building this?
  • 5. Or something like this?
  • 6. The Challenge
  • 7. The Solution
  • 8. 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
  • 9. 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
  • 10. Reference Implementation
  • 11. Prism Core Concepts
  • 12. 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
  • 13. Modules
    • Module Discovery
      • Pluggable Catalogs
    • Module Loading
      • Background or On-Demand
    Module Loader Extended In Prism 2.0!
  • 14. Demo Modules & Catalogs
  • 15. 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” />
  • 16. 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 ) );
  • 17. Demo UI Composition
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. Multi-Targeting Controllers Models Presenters Views Views WPF CLR - Silverlight CLR Desktop BCL BCL BROWSER DESKTOP Models Controllers Presenters
  • 23. Demo Multi-Targeting
  • 24. Where Can You Find It?
    • www.microsoft.com/compositewpf
    • www.codeplex.com/compositewpf
    • http://msdn.microsoft.com/practices
    • http://blogs.msdn.com/bobbrum
    • http://blogs.msdn.com/blaine
  • 25. 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
  • 26. Dave Bost thank you! http://davebost.com http://twitter.com/davebost Q&A
  • 27.  
  • 28.