SlideShare uma empresa Scribd logo
1 de 25
Blaine Wastell
Program Manager
Microsoft
Session Code:
Agenda
 What Is Prism and What Does It Do?
   Client Application Challenges
   What’s In The Box?

 Modularity Patterns
 UI Composition Patterns
 Separated Presentation Patterns
 Commanding & Eventing Patterns
 Multi-Targeting
   Sharing Code Between WPF And Silverlight
The Challenge
The Solution
Composite Client Applications
 The Problem:
    Client Applications are Challenging!
    Beyond the Bling – How To Make The Application
    Dynamic, Customizable, Extensible, Testable?

 The Solution:
    Break App Into Pieces
    Manage Dependencies Between Pieces
    Re-assemble App From Pieces

 Prism – Patterns For Composite Client Apps
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 – WPF & Silverlight
    Released Feb 2009
Reference Implementation
The StockTrader Reference
Implementation
Prism Core Concepts
Modules
 Unit Of Application Assembly
    Collection of Related Components
    Feature, Services, Views, Data Access
    Slice & Dice: Mandatory, Optional, Role Specific

 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
Modules and Catalogs
UI Composition
  Shell – Application Host Window
  Regions – Named Areas For View Placement = …;
                      IPositionPresentationModel presentationModel


  Views – Module UI IRegion mainRegion =
                       & regionManager.Regions[ Logic ];
                          Presentation quot;MainRegionquot;
  View Injection Visual Composition
                      mainRegion.Add( presentationModel.View );

 <ItemsControl
     RegionManager.RegionName=
     quot;MainRegionquot;>

                 Region
 <ContentControl
   RegionManager.RegionName=
   “DetailsRegion” />

          Region                 Region
UI Composition
   View Discovery Visual Composition:
        Less Complex
        Black Box ‘App Assembly’ Composition
                                regionManager.RegisterViewWithRegion(
        Select Views & Pull into Region
<ItemsControl
    RegionManager.RegionName=
                                    quot;MainRegionquot;, typeof( MainView ) );

    quot;MainRegion”/>



                  Region
<ContentControl
  RegionManager.RegionName=
  quot;DetailsRegion”/>


            Region            Region
UI Composition
Commands and Events
 Delegate & Composite Commands
   Simplified Command Handling
 Event Aggregator
   Loosely Coupled Pub/Sub Events
                                            Event
                                          Aggregator




                              Module A                 Module B
                                Order                  Customer
                              Presenter                Presenter
Separated Presentation
 Prism 1.0
    Supervising Presenter
    Presentation Model

             View       Presenter
 Prism 2.0
    More Concrete Guidance on Using These Patterns…
                           Model
    “Model-View-ViewModel”
    How To Be Designer Friendly
    Modeling Presentation State (Not UI State)
                       Presentation
    Ultra Thin Views – Data Templates Model
           View
                          Model
Multi-Targeting
User Experiences
  Desktop – In the Office, Full Functionality, Offline
  Capable
  RIA – Out of the Office, Functional Subset, Online
How to Share Code & Components?
                      BROWSER           DESKTOP
                           Views          Views
      SILVERLIGHT




                         Presenters     Presenters




                                                       WPF
                        Controllers     Controllers

                          Models         Models


                          BCL                 BCL

                    CLR - Silverlight    CLR Desktop
Multi-Targeting: Strategies
  Start With LCD – Silverlight
  Separated Presentation Strategies
  Single Source, Cross Compiled
  Links and Parallel Project Structures
  If Not:
                      #IF SILVERLIGHT
                      Partial Classes
                      Partial Methods
                 Separate Classes/Services
Multi-Targeting
Summary
 Prism 1.0
    Library of Patterns for Enterprise Client Apps
    Targets WPF on the Desktop

 Prism 2.0
    Extends Prism to Silverlight RIA Applications
    Extended Patterns for UI Composition, Separated
    Presentation, Modularity
    Multi-Targeting – Extend user experience & re-use code
    and components

 Download from MSDN & CodePlex
 Send us feedback & ideas for Prism 3.0!
Where Can You Find Prism
 www.microsoft.com/prism
 www.codeplex.com/prism
 http://blogs.msdn.com/blaine
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should
 not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS,
                                                                           IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Mais conteúdo relacionado

Mais procurados

Model View Presenter (MVP) In Aspnet
Model View Presenter (MVP) In AspnetModel View Presenter (MVP) In Aspnet
Model View Presenter (MVP) In Aspnetrainynovember12
 
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V6.1IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V6.1bureaucrat
 
Architecting WPF Applications
Architecting WPF ApplicationsArchitecting WPF Applications
Architecting WPF ApplicationsPaul Stovell
 
Windows Presentation Foundation
Windows Presentation FoundationWindows Presentation Foundation
Windows Presentation FoundationTran Ngoc Son
 
Building Applications for SQL Server 2008
Building Applications for SQL Server 2008Building Applications for SQL Server 2008
Building Applications for SQL Server 2008Dave Bost
 
MQ Certification
MQ CertificationMQ Certification
MQ CertificationMayank Deo
 
Getting started with PhoneGap
Getting started with PhoneGapGetting started with PhoneGap
Getting started with PhoneGapMihai Corlan
 
JSF and Seam
JSF and SeamJSF and Seam
JSF and Seamyuvalb
 
Building Canvas Apps with ASP.NET and Azure
Building Canvas Apps with ASP.NET and AzureBuilding Canvas Apps with ASP.NET and Azure
Building Canvas Apps with ASP.NET and AzureSalesforce Developers
 
Kony one studio technical training
Kony one studio technical trainingKony one studio technical training
Kony one studio technical trainingNiranjan Kumar Reddy
 
Kumar G - AI BOT
Kumar G - AI BOTKumar G - AI BOT
Kumar G - AI BOTKumar G
 
IBM_WebSphere_IIB_03_22_40_AM
IBM_WebSphere_IIB_03_22_40_AMIBM_WebSphere_IIB_03_22_40_AM
IBM_WebSphere_IIB_03_22_40_AMZoran Cerkez
 

Mais procurados (19)

Model View Presenter (MVP) In Aspnet
Model View Presenter (MVP) In AspnetModel View Presenter (MVP) In Aspnet
Model View Presenter (MVP) In Aspnet
 
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V6.1IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V6.1
 
An Overview Of Wpf
An Overview Of WpfAn Overview Of Wpf
An Overview Of Wpf
 
Architecting WPF Applications
Architecting WPF ApplicationsArchitecting WPF Applications
Architecting WPF Applications
 
Xamarin.Forms Advanced Topics
Xamarin.Forms Advanced TopicsXamarin.Forms Advanced Topics
Xamarin.Forms Advanced Topics
 
5 benefits of angular js
5 benefits of angular js5 benefits of angular js
5 benefits of angular js
 
Windows Presentation Foundation
Windows Presentation FoundationWindows Presentation Foundation
Windows Presentation Foundation
 
Slide Presentation of MVP Pattern Concept
Slide Presentation of MVP Pattern ConceptSlide Presentation of MVP Pattern Concept
Slide Presentation of MVP Pattern Concept
 
Building Applications for SQL Server 2008
Building Applications for SQL Server 2008Building Applications for SQL Server 2008
Building Applications for SQL Server 2008
 
MQ Certification
MQ CertificationMQ Certification
MQ Certification
 
Getting started with PhoneGap
Getting started with PhoneGapGetting started with PhoneGap
Getting started with PhoneGap
 
JSF and Seam
JSF and SeamJSF and Seam
JSF and Seam
 
Training: MVVM Pattern
Training: MVVM PatternTraining: MVVM Pattern
Training: MVVM Pattern
 
Building Canvas Apps with ASP.NET and Azure
Building Canvas Apps with ASP.NET and AzureBuilding Canvas Apps with ASP.NET and Azure
Building Canvas Apps with ASP.NET and Azure
 
Introducing J2ME Polish
Introducing J2ME PolishIntroducing J2ME Polish
Introducing J2ME Polish
 
Kony one studio technical training
Kony one studio technical trainingKony one studio technical training
Kony one studio technical training
 
WPF
WPFWPF
WPF
 
Kumar G - AI BOT
Kumar G - AI BOTKumar G - AI BOT
Kumar G - AI BOT
 
IBM_WebSphere_IIB_03_22_40_AM
IBM_WebSphere_IIB_03_22_40_AMIBM_WebSphere_IIB_03_22_40_AM
IBM_WebSphere_IIB_03_22_40_AM
 

Destaque

Harish Understanding Aspnet
Harish Understanding AspnetHarish Understanding Aspnet
Harish Understanding Aspnetrsnarayanan
 
Harish Aspnet Dynamic Data
Harish Aspnet Dynamic DataHarish Aspnet Dynamic Data
Harish Aspnet Dynamic Datarsnarayanan
 
Kevin Ms Web Platform
Kevin Ms Web PlatformKevin Ms Web Platform
Kevin Ms Web Platformrsnarayanan
 

Destaque (6)

Walther Ajax4
Walther Ajax4Walther Ajax4
Walther Ajax4
 
Walther Mvc
Walther MvcWalther Mvc
Walther Mvc
 
Harish Understanding Aspnet
Harish Understanding AspnetHarish Understanding Aspnet
Harish Understanding Aspnet
 
Harish Aspnet Dynamic Data
Harish Aspnet Dynamic DataHarish Aspnet Dynamic Data
Harish Aspnet Dynamic Data
 
Kevin Ms Web Platform
Kevin Ms Web PlatformKevin Ms Web Platform
Kevin Ms Web Platform
 
Walther Aspnet4
Walther Aspnet4Walther Aspnet4
Walther Aspnet4
 

Semelhante a Prism Tech Ed India

Building Composite Applications with Silverlight - Prism 2.0
Building Composite Applications with Silverlight - Prism 2.0Building Composite Applications with Silverlight - Prism 2.0
Building Composite Applications with Silverlight - Prism 2.0Christian Thilmany
 
Creating UX Applications that Target both Silverlight and WPF
Creating UX Applications that Target both Silverlight and WPFCreating UX Applications that Target both Silverlight and WPF
Creating UX Applications that Target both Silverlight and WPFChristian Thilmany
 
SAP Inside Track 2010 - Thomas Jung Intro to WDA
SAP Inside Track 2010 - Thomas Jung Intro to WDASAP Inside Track 2010 - Thomas Jung Intro to WDA
SAP Inside Track 2010 - Thomas Jung Intro to WDAsjohannes
 
MVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,MobileMVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,Mobilenaral
 
Mho Web Dynpro Abap
Mho Web Dynpro AbapMho Web Dynpro Abap
Mho Web Dynpro Abapthomas_jung
 
Smart Client Software Factory 2010
Smart Client Software Factory  2010Smart Client Software Factory  2010
Smart Client Software Factory 2010Tomy Ismail
 
Become a Web-Dynpro for Functional Consultants - ConVista Asia
Become a Web-Dynpro for Functional Consultants - ConVista AsiaBecome a Web-Dynpro for Functional Consultants - ConVista Asia
Become a Web-Dynpro for Functional Consultants - ConVista AsiaConVista Consulting Asia
 
Deep Dive: MVC Controller Architecture
Deep Dive: MVC Controller ArchitectureDeep Dive: MVC Controller Architecture
Deep Dive: MVC Controller ArchitectureChris Eargle
 
Web(abap introduction)
Web(abap introduction)Web(abap introduction)
Web(abap introduction)Kranthi Kumar
 
MSDN Live: Windows Presentation Foundations Line of Business Apps
MSDN Live: Windows Presentation Foundations Line of Business AppsMSDN Live: Windows Presentation Foundations Line of Business Apps
MSDN Live: Windows Presentation Foundations Line of Business Appsgoeran
 
Action-Domain-Responder: A Web-Specific Refinement of Model-View-Controller
Action-Domain-Responder: A Web-Specific Refinement of Model-View-ControllerAction-Domain-Responder: A Web-Specific Refinement of Model-View-Controller
Action-Domain-Responder: A Web-Specific Refinement of Model-View-ControllerPaul Jones
 
Oracle ADF Overview for Beginners
Oracle ADF Overview for BeginnersOracle ADF Overview for Beginners
Oracle ADF Overview for BeginnersJithin Kuriakose
 
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...Davalen LLC
 
Lightning Workshop London
Lightning Workshop LondonLightning Workshop London
Lightning Workshop LondonKeir Bowden
 
Satendra Gupta Sr DotNet Consultant
Satendra Gupta Sr  DotNet ConsultantSatendra Gupta Sr  DotNet Consultant
Satendra Gupta Sr DotNet ConsultantSATENDRA GUPTA
 
SAP NetWeaver Composition Environment EhP1%2c Visual Composer Overview of Fea...
SAP NetWeaver Composition Environment EhP1%2c Visual Composer Overview of Fea...SAP NetWeaver Composition Environment EhP1%2c Visual Composer Overview of Fea...
SAP NetWeaver Composition Environment EhP1%2c Visual Composer Overview of Fea...danyackel
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arpGary Pedretti
 
Silverlight overview
Silverlight overviewSilverlight overview
Silverlight overviewTaras Romanyk
 
Best practices for creating modular Web applications
Best practices for creating modular Web applicationsBest practices for creating modular Web applications
Best practices for creating modular Web applicationspeychevi
 

Semelhante a Prism Tech Ed India (20)

Building Composite Applications with Silverlight - Prism 2.0
Building Composite Applications with Silverlight - Prism 2.0Building Composite Applications with Silverlight - Prism 2.0
Building Composite Applications with Silverlight - Prism 2.0
 
Creating UX Applications that Target both Silverlight and WPF
Creating UX Applications that Target both Silverlight and WPFCreating UX Applications that Target both Silverlight and WPF
Creating UX Applications that Target both Silverlight and WPF
 
SAP Inside Track 2010 - Thomas Jung Intro to WDA
SAP Inside Track 2010 - Thomas Jung Intro to WDASAP Inside Track 2010 - Thomas Jung Intro to WDA
SAP Inside Track 2010 - Thomas Jung Intro to WDA
 
MVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,MobileMVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,Mobile
 
Mho Web Dynpro Abap
Mho Web Dynpro AbapMho Web Dynpro Abap
Mho Web Dynpro Abap
 
Smart Client Software Factory 2010
Smart Client Software Factory  2010Smart Client Software Factory  2010
Smart Client Software Factory 2010
 
Become a Web-Dynpro for Functional Consultants - ConVista Asia
Become a Web-Dynpro for Functional Consultants - ConVista AsiaBecome a Web-Dynpro for Functional Consultants - ConVista Asia
Become a Web-Dynpro for Functional Consultants - ConVista Asia
 
Deep Dive: MVC Controller Architecture
Deep Dive: MVC Controller ArchitectureDeep Dive: MVC Controller Architecture
Deep Dive: MVC Controller Architecture
 
Web(abap introduction)
Web(abap introduction)Web(abap introduction)
Web(abap introduction)
 
MSDN Live: Windows Presentation Foundations Line of Business Apps
MSDN Live: Windows Presentation Foundations Line of Business AppsMSDN Live: Windows Presentation Foundations Line of Business Apps
MSDN Live: Windows Presentation Foundations Line of Business Apps
 
Action-Domain-Responder: A Web-Specific Refinement of Model-View-Controller
Action-Domain-Responder: A Web-Specific Refinement of Model-View-ControllerAction-Domain-Responder: A Web-Specific Refinement of Model-View-Controller
Action-Domain-Responder: A Web-Specific Refinement of Model-View-Controller
 
Oracle ADF Overview for Beginners
Oracle ADF Overview for BeginnersOracle ADF Overview for Beginners
Oracle ADF Overview for Beginners
 
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
 
Lightning Workshop London
Lightning Workshop LondonLightning Workshop London
Lightning Workshop London
 
Satendra Gupta Sr DotNet Consultant
Satendra Gupta Sr  DotNet ConsultantSatendra Gupta Sr  DotNet Consultant
Satendra Gupta Sr DotNet Consultant
 
SAP NetWeaver Composition Environment EhP1%2c Visual Composer Overview of Fea...
SAP NetWeaver Composition Environment EhP1%2c Visual Composer Overview of Fea...SAP NetWeaver Composition Environment EhP1%2c Visual Composer Overview of Fea...
SAP NetWeaver Composition Environment EhP1%2c Visual Composer Overview of Fea...
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arp
 
Silverlight overview
Silverlight overviewSilverlight overview
Silverlight overview
 
Best practices for creating modular Web applications
Best practices for creating modular Web applicationsBest practices for creating modular Web applications
Best practices for creating modular Web applications
 
Asp.Net Mvc Dev Days09
Asp.Net Mvc Dev Days09Asp.Net Mvc Dev Days09
Asp.Net Mvc Dev Days09
 

Mais de rsnarayanan

Harish Aspnet Deployment
Harish Aspnet DeploymentHarish Aspnet Deployment
Harish Aspnet Deploymentrsnarayanan
 
Whats New In Sl3
Whats New In Sl3Whats New In Sl3
Whats New In Sl3rsnarayanan
 
Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...
Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...
Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...rsnarayanan
 
Advanced Silverlight
Advanced SilverlightAdvanced Silverlight
Advanced Silverlightrsnarayanan
 
Occasionally Connected Systems
Occasionally Connected SystemsOccasionally Connected Systems
Occasionally Connected Systemsrsnarayanan
 
Developing Php Applications Using Microsoft Software And Services
Developing Php Applications Using Microsoft Software And ServicesDeveloping Php Applications Using Microsoft Software And Services
Developing Php Applications Using Microsoft Software And Servicesrsnarayanan
 
Build Mission Critical Applications On The Microsoft Platform Using Eclipse J...
Build Mission Critical Applications On The Microsoft Platform Using Eclipse J...Build Mission Critical Applications On The Microsoft Platform Using Eclipse J...
Build Mission Critical Applications On The Microsoft Platform Using Eclipse J...rsnarayanan
 
J Query The Write Less Do More Javascript Library
J Query   The Write Less Do More Javascript LibraryJ Query   The Write Less Do More Javascript Library
J Query The Write Less Do More Javascript Libraryrsnarayanan
 
Ms Sql Business Inteligence With My Sql
Ms Sql Business Inteligence With My SqlMs Sql Business Inteligence With My Sql
Ms Sql Business Inteligence With My Sqlrsnarayanan
 
Windows 7 For Developers
Windows 7 For DevelopersWindows 7 For Developers
Windows 7 For Developersrsnarayanan
 
What Is New In Wpf 3.5 Sp1
What Is New In Wpf 3.5 Sp1What Is New In Wpf 3.5 Sp1
What Is New In Wpf 3.5 Sp1rsnarayanan
 
Ux For Developers
Ux For DevelopersUx For Developers
Ux For Developersrsnarayanan
 
A Lap Around Internet Explorer 8
A Lap Around Internet Explorer 8A Lap Around Internet Explorer 8
A Lap Around Internet Explorer 8rsnarayanan
 
App Arch Guide (Dons)
App Arch Guide (Dons)App Arch Guide (Dons)
App Arch Guide (Dons)rsnarayanan
 
Data Access Tech Ed India
Data Access   Tech Ed IndiaData Access   Tech Ed India
Data Access Tech Ed Indiarsnarayanan
 
Federated Identity Architectures Integrating With The Cloud
Federated Identity Architectures   Integrating With The CloudFederated Identity Architectures   Integrating With The Cloud
Federated Identity Architectures Integrating With The Cloudrsnarayanan
 
Pnp Agile Tech Ed India
Pnp Agile Tech Ed IndiaPnp Agile Tech Ed India
Pnp Agile Tech Ed Indiarsnarayanan
 
Tech Ed 2009 Creating Strategic Influence On Stake Holders
Tech Ed 2009   Creating Strategic Influence On Stake HoldersTech Ed 2009   Creating Strategic Influence On Stake Holders
Tech Ed 2009 Creating Strategic Influence On Stake Holdersrsnarayanan
 

Mais de rsnarayanan (20)

Harish Aspnet Deployment
Harish Aspnet DeploymentHarish Aspnet Deployment
Harish Aspnet Deployment
 
Whats New In Sl3
Whats New In Sl3Whats New In Sl3
Whats New In Sl3
 
Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...
Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...
Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...
 
Advanced Silverlight
Advanced SilverlightAdvanced Silverlight
Advanced Silverlight
 
Netcf Gc
Netcf GcNetcf Gc
Netcf Gc
 
Occasionally Connected Systems
Occasionally Connected SystemsOccasionally Connected Systems
Occasionally Connected Systems
 
Developing Php Applications Using Microsoft Software And Services
Developing Php Applications Using Microsoft Software And ServicesDeveloping Php Applications Using Microsoft Software And Services
Developing Php Applications Using Microsoft Software And Services
 
Build Mission Critical Applications On The Microsoft Platform Using Eclipse J...
Build Mission Critical Applications On The Microsoft Platform Using Eclipse J...Build Mission Critical Applications On The Microsoft Platform Using Eclipse J...
Build Mission Critical Applications On The Microsoft Platform Using Eclipse J...
 
J Query The Write Less Do More Javascript Library
J Query   The Write Less Do More Javascript LibraryJ Query   The Write Less Do More Javascript Library
J Query The Write Less Do More Javascript Library
 
Ms Sql Business Inteligence With My Sql
Ms Sql Business Inteligence With My SqlMs Sql Business Inteligence With My Sql
Ms Sql Business Inteligence With My Sql
 
Windows 7 For Developers
Windows 7 For DevelopersWindows 7 For Developers
Windows 7 For Developers
 
What Is New In Wpf 3.5 Sp1
What Is New In Wpf 3.5 Sp1What Is New In Wpf 3.5 Sp1
What Is New In Wpf 3.5 Sp1
 
Ux For Developers
Ux For DevelopersUx For Developers
Ux For Developers
 
A Lap Around Internet Explorer 8
A Lap Around Internet Explorer 8A Lap Around Internet Explorer 8
A Lap Around Internet Explorer 8
 
App Arch Guide (Dons)
App Arch Guide (Dons)App Arch Guide (Dons)
App Arch Guide (Dons)
 
Data Access Tech Ed India
Data Access   Tech Ed IndiaData Access   Tech Ed India
Data Access Tech Ed India
 
Federated Identity Architectures Integrating With The Cloud
Federated Identity Architectures   Integrating With The CloudFederated Identity Architectures   Integrating With The Cloud
Federated Identity Architectures Integrating With The Cloud
 
Pnp Agile Tech Ed India
Pnp Agile Tech Ed IndiaPnp Agile Tech Ed India
Pnp Agile Tech Ed India
 
Tech Ed 2009 Creating Strategic Influence On Stake Holders
Tech Ed 2009   Creating Strategic Influence On Stake HoldersTech Ed 2009   Creating Strategic Influence On Stake Holders
Tech Ed 2009 Creating Strategic Influence On Stake Holders
 
Web 2.0 Futures
Web 2.0 FuturesWeb 2.0 Futures
Web 2.0 Futures
 

Último

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 

Último (20)

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 

Prism Tech Ed India

  • 1.
  • 3. Agenda What Is Prism and What Does It Do? Client Application Challenges What’s In The Box? Modularity Patterns UI Composition Patterns Separated Presentation Patterns Commanding & Eventing Patterns Multi-Targeting  Sharing Code Between WPF And Silverlight
  • 6. Composite Client Applications The Problem: Client Applications are Challenging! Beyond the Bling – How To Make The Application Dynamic, Customizable, Extensible, Testable? The Solution: Break App Into Pieces Manage Dependencies Between Pieces Re-assemble App From Pieces Prism – Patterns For Composite Client Apps
  • 7. 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 – WPF & Silverlight Released Feb 2009
  • 11. Modules Unit Of Application Assembly Collection of Related Components Feature, Services, Views, Data Access Slice & Dice: Mandatory, Optional, Role Specific Unit Of Development Independent Development Independent Testing Unit Of Deployment Up-Front, Background or On-Demand
  • 12. Modules Module Discovery Pluggable Catalogs Module Loading Background or On-Demand Module Loader
  • 14. UI Composition Shell – Application Host Window Regions – Named Areas For View Placement = …; IPositionPresentationModel presentationModel Views – Module UI IRegion mainRegion = & regionManager.Regions[ Logic ]; Presentation quot;MainRegionquot; View Injection Visual Composition mainRegion.Add( presentationModel.View ); <ItemsControl RegionManager.RegionName= quot;MainRegionquot;> Region <ContentControl RegionManager.RegionName= “DetailsRegion” /> Region Region
  • 15. UI Composition View Discovery Visual Composition: Less Complex Black Box ‘App Assembly’ Composition regionManager.RegisterViewWithRegion( Select Views & Pull into Region <ItemsControl RegionManager.RegionName= quot;MainRegionquot;, typeof( MainView ) ); quot;MainRegion”/> Region <ContentControl RegionManager.RegionName= quot;DetailsRegion”/> Region Region
  • 17. Commands and Events Delegate & Composite Commands Simplified Command Handling Event Aggregator Loosely Coupled Pub/Sub Events Event Aggregator Module A Module B Order Customer Presenter Presenter
  • 18. Separated Presentation Prism 1.0 Supervising Presenter Presentation Model View Presenter Prism 2.0 More Concrete Guidance on Using These Patterns… Model “Model-View-ViewModel” How To Be Designer Friendly Modeling Presentation State (Not UI State) Presentation Ultra Thin Views – Data Templates Model View Model
  • 19. Multi-Targeting User Experiences Desktop – In the Office, Full Functionality, Offline Capable RIA – Out of the Office, Functional Subset, Online How to Share Code & Components? BROWSER DESKTOP Views Views SILVERLIGHT Presenters Presenters WPF Controllers Controllers Models Models BCL BCL CLR - Silverlight CLR Desktop
  • 20. Multi-Targeting: Strategies Start With LCD – Silverlight Separated Presentation Strategies Single Source, Cross Compiled Links and Parallel Project Structures If Not: #IF SILVERLIGHT Partial Classes Partial Methods Separate Classes/Services
  • 22. Summary Prism 1.0 Library of Patterns for Enterprise Client Apps Targets WPF on the Desktop Prism 2.0 Extends Prism to Silverlight RIA Applications Extended Patterns for UI Composition, Separated Presentation, Modularity Multi-Targeting – Extend user experience & re-use code and components Download from MSDN & CodePlex Send us feedback & ideas for Prism 3.0!
  • 23. Where Can You Find Prism www.microsoft.com/prism www.codeplex.com/prism http://blogs.msdn.com/blaine
  • 24.
  • 25. © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Notas do Editor

  1. First we’re going to talk about Prism – what it is, what it’s for, what does it do…Define what we mean by a composite client application, and what challenges they pose.Then we’ll talk about what’s in the Prism box, and where we are in the development cycle for Prism. If you’ve been following the evolution of Prism, you’ll know we’re in the middle of developing Prism 2.0. We’ll talk about that and where we are.Next we’re going to talk about some of the patterns that Prism supports.Patterns for modularity – how to break an app into modules and how to find and load those modules.Patterns for UI composition – how to compose you’re applications UI from pieces that are contained in the modules.Separated presentation patterns – patterns to help you separate out the nasty UI stuff from good old fashioned unit-testable code.Lastly, we’ll talk about multi-targeting – how to build apps that can provide a desktop experience and an in-browser RIA experience.Going to see some code and demos…
  2. http://www.sxc.hu/photo/833284http://www.sxc.hu/photo/338544The Challenge:Client tier lots of componentsWorkflow- ui flow service agent requirements can also change a lotMost apps start having a clear structure, seem to be logically laid out Lot’s of people start with: User controls could be dragged and droppedWired together with eventsFalls apart very quickly Large number of developers, making it even less clear, and you end up with a big pile And you end up feeling like thisNeeds to make reusable & support lots of developers / teamsClient Apps: Complex, Lots of Moving Pieces, User ExperienceMultiple Developers, Multiple TeamsHow To Make App Dynamic, Customizable, Extensible, Testable?
  3. The SolutionBreak into pieces so you can manage pieces, evolve independently, release independentlyManage dependencies between piecesReassemble in a way that appears seamlessWhat patterns can use to address these challenges
  4. Most client apps are actually fairly complex. Client app design poses a number of unique challenges.One of which is how to present a huge amount of data, business processes and domain knowledge to a user, who might not care about computers (if you can imagine such a thing) so that they can make sense of it, stay out of trouble, and maybe even have an enjoyable experience!! You might have the best service oriented, scalable flexible back-end in existence, but if your users can’t make head nor tail of it, if the user experience isn’t right, you’re pretty much sunk. The client app is where the rubber meets the road.Client apps can be also complex with lots of moving parts (like data access & storage, services, business objects, processes, workflows, functions, as well as the UI itself). How can you manage that complexity and keep quality and reliability high?You’ll likely have more than 1 developer, maybe even have a large team, or even multiple teams, to build it all. How can you distribute the work over your development team and allow them to work as independently as possible while still maintaining productivity and quality?And the requirements might change dramatically while your building it as you get feedback from those fickle users. How easy is it to adapt to new requirements, add new features, change existing features, extend the application to service new users? Can your users, or an admin, configure or customize the application instead of building and rolling out a new version.So there are a number of challenges, and so there is the need to build client applications that are dynamic, customizable and extensible, where you can re-use lots of code and components, leverage TDD, and split the work over multiple developers or teams in a manageable way.Composite applications are what they call applications that are split into separate, composable parts. The approach is to split the application into pieces and have individual developers or teams build those pieces, carefully manage the dependencies between those pieces (to make them as loosely coupled as possible), and then re-assemble the pieces back into a coherent app. Sounds easy right?Splitting things up introduces new, specific challenges but there of course patterns that help meet those challenges.The trick is to split the application up in the right way, to manage the dependencies between the pieces in the right way, and to put them all back together in the right way.Prism provides patterns for decomposition and for recomposition of client applications.
  5. Like all of our guidance deliverable from P&P, you get a few things out of the box.Library = Implementation of the PatternsPrism = “Composite Client Application Guidance for WPF and Silverlight”Guidance For Modular, Composite WPF ApplicationsIndependent TeamsComplexity Management, Loose CouplingRe-Use & Agility & TDDPatternsInversion of ControlSeparated Presentation – Model-View-PresenterHow many of you are familiar with the Composite UI Application Block that we released a few years ago?
  6. Reference implementation provides an example of how the patterns in the guidance can be used in combination.Enterprise style app: Data-oriented Rich interactions with different visual experiences Complex screens Separately evolvingBut, not a complete application – “based on a true story” – stubs out most of the real non-UI services and data.Not a real app – based on a true story.Shows how the various patterns can work together to make an end-to-end application.Not a Franken-App – can’t see the seems.
  7. If you would like to host your demo on the Virtual Server, please use the myVPC demo slide, not this slide.
  8. Prism is a library of patterns with reference implementations. You can use one or all of these in combination.This slide shows the main patterns and concepts that are included in Prism 1.0Bootstrapper – Your app’s point of contact with Prism. A simple class that connects your app to the Prism container and the other services that Prism provides. Modules – Key units of functionality within the application. Services & Container – Prism uses Dependency Injection (Inversion of Control) pattern to support loose coupling of the modules and services and views within the application. Regions & Views – Support composition support at the UI level. Views represent the UI of the various pieces within the application, Regions provide support for putting views in the right places within the overall UI. Events & Commands – Support communication between loosely coupled parts of the application.
  9. Will discusss catalog:Describe the modules and module attributesVisual structure may not follow module structureCatalog provides meta data for applicationFixed list of modules in codeConfig fileWeb services that provides a list of users and role and decide which modules to provideDirectory and load the modules and go
  10. If you would like to host your demo on the Virtual Server, please use the myVPC demo slide, not this slide.
  11. Some benefits of this approach:Simpler.Regions can choose or select which view to pull in and when – can create views on demand.In some sense provides a looser coupling between modules and shell.Might make AutoPopulate default to true so you might not even need to set it.Might have something more flexible than names for connecting views to regions.
  12. If you would like to host your demo on the Virtual Server, please use the myVPC demo slide, not this slide.
  13. Demo Stock Trader Reference ImplementationShow the ability to buy & sell stockMultiple buttons that could buy a stock Buttons: View level & Composite ViewMultiple buttons that invoke 1 commandSave All button uses attach property to the SaveAll Composite CommandComposite Comand Hold delegates to each order objectEA uses the publish subscribe patternScenarioEvent Aggregator  Customer model updates order total once an order is placed needs to a loosely coupled event when the order is placed Customer module subscribes to a names event Order model published an event when the order is placed Customer module listens to event and then updates the order total on the customer view
  14. Good piece of advice I was given once was never to talk about Religion, Politics, or Separated Presentation Patterns with people you like…M-V-VM really just Presentation Model. Essential thing is that the view is just bound to the ViewModel or PresentationModel. It’s an observer.Trick is to model the presentation state, not the UI stateMake the presentation model bindable & easily consumable by a designer.Make it friendly to a developer – easily unit-tested.Designers don’t like to write code, but they can bind UI to a ViewModel.Got to leave the designer with artistic freedom – they are a sensitve bunch and we really need them so we don’t want to upset them.
  15. Talk about key scenarios – Full RIA, not enriched web scenario.
  16. Strategies:We looked at a number of approaches hereModify the build systemProjects for ‘shared’ code projected to Silverlight and WPF projectsFinally settled on linked projectsSupported natively in VSEasy to understandPractices:Start with least common denominator (Silverlight)Use links & setup your projects with parallel structuresWhere code needs to be different,Apply the SieveRewrite the code -> keeps you in single sourceDrawbacks: not taking advantage of platformExample: Use #if statements if you have simple or single line constructsDrawbacks: less readable, debugging more challengingExample: Around dispatcherUse partial classes when most of the class is similar, but some methods have platform specific implementationsKeep platform specific methods private -> keeps your unit tests from having to have platform specific testsClasses have Single clear responsibilityExample: Retrieving images from a web service vs. the file system.Use partial methods only if you need to call an extra method on one platform but not the otherExample:Build platform specific classes with a single responsibilityExample: A data gateway with a well-defined interface, but different implementations for WPF and Silverlight.Keep namespaces and assembly names the sameSeparated Presentation StrategiesA bunch of code around the presentation logic, models, service interaction is likely to compile straight across.Simple XAML can be shared, but more complicated XAML becomes tougher.No Triggers, more limited data binding, commands and templating, different validation models.Share what you canConsider using VSM -> not in guidance as its only preview, but this is where you need to go.Rely on exceptions for validation to support bothPrism provides some attached behavior commands to help with command bindingWorst case code is will need to create Silverlight and WPF skins but the logic is reusable patterns allow you reuse your logic
  17. If you would like to host your demo on the Virtual Server, please use the myVPC demo slide, not this slide.