ARC310 TechEd 09 Prism

Embed Size (px)

Citation preview

  • 8/3/2019 ARC310 TechEd 09 Prism

    1/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    2/81

    Name Ward BellTitle V.P. of TechnologyCompany IdeaBlade, inc

    Session Code ARC310

  • 8/3/2019 ARC310 TechEd 09 Prism

    3/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    4/81

    MoreMoreMore

  • 8/3/2019 ARC310 TechEd 09 Prism

    5/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    6/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    7/81

    PRISM - izing

  • 8/3/2019 ARC310 TechEd 09 Prism

    8/81

    PRISM

    Composite Application Guidance

    for WPF & Silverlight

  • 8/3/2019 ARC310 TechEd 09 Prism

    9/81

    Patterns

    ConventionsExamples

    Code

  • 8/3/2019 ARC310 TechEd 09 Prism

    10/81

    Model-View-ViewModel

    ShellBootstrapper

    Dependency Injection

    Regions

    Modules

    Event AggregatorCommanding

  • 8/3/2019 ARC310 TechEd 09 Prism

    11/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    12/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    13/81

    Repository

    RIA Services

    Context

    Persistence

    Service

    Entity

    Manager

  • 8/3/2019 ARC310 TechEd 09 Prism

    14/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    15/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    16/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    17/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    18/81

    HEY!Youre only using

    two members?

  • 8/3/2019 ARC310 TechEd 09 Prism

    19/81

    One ViewModel Two Views !

    or even WPF

  • 8/3/2019 ARC310 TechEd 09 Prism

    20/81

    TIPEasier to reuse ViewModel

    if it doesnt know the View

  • 8/3/2019 ARC310 TechEd 09 Prism

    21/81

    UI in one project

    Introduce the shellthe rest is infrastructure

    Free the module

    Add new module

    TM

  • 8/3/2019 ARC310 TechEd 09 Prism

    22/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    23/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    24/81

    App.xaml Guidelines

    App start/stop

    App-wide resources

    Above all ignorant of UI

  • 8/3/2019 ARC310 TechEd 09 Prism

    25/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    26/81

    Shell Guidelines

    Visual hostNo smarts

  • 8/3/2019 ARC310 TechEd 09 Prism

    27/81

    Ok, wise guy!SOMEBODY has to

    do some work.

  • 8/3/2019 ARC310 TechEd 09 Prism

    28/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    29/81

    Bootstrapper

    Create Shell

    Configure

    Launch

    Get out of the way !

  • 8/3/2019 ARC310 TechEd 09 Prism

    30/81

    No Shell_Loaded; no code-behind.

  • 8/3/2019 ARC310 TechEd 09 Prism

    31/81

    Create ShellCreate View and ViewModel

    Add View to Shell

    Show the shell

    1

    2

    3

    4

  • 8/3/2019 ARC310 TechEd 09 Prism

    32/81

    3 classes

    instead of

    one.

    This is ..

    better?

  • 8/3/2019 ARC310 TechEd 09 Prism

    33/81

    Prism Services

    Module Loading

    Dependency Injection

    UnityBootstrapper

  • 8/3/2019 ARC310 TechEd 09 Prism

    34/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    35/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    36/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    37/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    38/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    39/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    40/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    41/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    42/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    43/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    44/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    45/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    46/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    47/81

    UI in one project

    Introduce the shellthe rest is infrastructure

    Free the module

    Add new module

    TM

  • 8/3/2019 ARC310 TechEd 09 Prism

    48/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    49/81

    from Bootstrapper

  • 8/3/2019 ARC310 TechEd 09 Prism

    50/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    51/81

    Give me theCustomer orders !New Module

    New M-V-VMNew Persistence Service

  • 8/3/2019 ARC310 TechEd 09 Prism

    52/81

    M d l G id li

  • 8/3/2019 ARC310 TechEd 09 Prism

    53/81

    Module Guidelines

    Configure

    LaunchGet out of the way !

  • 8/3/2019 ARC310 TechEd 09 Prism

    54/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    55/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    56/81

    Module Sync

    ?

  • 8/3/2019 ARC310 TechEd 09 Prism

    57/81

    Problem

    Module Independence

    Module Load Order

  • 8/3/2019 ARC310 TechEd 09 Prism

    58/81

    Infrastructure

    Assemblies

    Own

    Assemblies

    Other Module

    Assemblies

    MODULECustomerOrdersModule

    MevModuleModuleExplorer.Infrastructure

    Prism

    DevForce

  • 8/3/2019 ARC310 TechEd 09 Prism

    59/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    60/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    61/81

    ?

  • 8/3/2019 ARC310 TechEd 09 Prism

    62/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    63/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    64/81

    Wires up UI element events

  • 8/3/2019 ARC310 TechEd 09 Prism

    65/81

    Wires up UI element events

  • 8/3/2019 ARC310 TechEd 09 Prism

    66/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    67/81

    ICOMMAND ?

    We can write that

    Wires events

    Handles enabled

  • 8/3/2019 ARC310 TechEd 09 Prism

    68/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    69/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    70/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    71/81

    TipUse Prisms

    DelegateCommand

  • 8/3/2019 ARC310 TechEd 09 Prism

    72/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    73/81

  • 8/3/2019 ARC310 TechEd 09 Prism

    74/81

    Less code-behind ?

    We can do that

    with Prism Commanding

  • 8/3/2019 ARC310 TechEd 09 Prism

    75/81

    No moreAddHandlers

    !

    Learn M re

  • 8/3/2019 ARC310 TechEd 09 Prism

    76/81

    Learn More

    S/W & docs www.codeplex.com/compositeWpf

    MSDN www.microsoft.com/compositeWpf

    Prism

    IdeaBlade DevForce

    Data services [email protected]

    Resources

    http://www.codeplex.com/compositeWpfhttp://www.microsoft.com/compositeWpfhttp://www.ideablade.com/mailto:[email protected]?subject=TechEd%202009%20Talkmailto:[email protected]?subject=TechEd%202009%20Talkhttp://www.ideablade.com/http://www.microsoft.com/compositeWpfhttp://www.codeplex.com/compositeWpf
  • 8/3/2019 ARC310 TechEd 09 Prism

    77/81

    www.microsoft.com/teched

    Sessions On-Demand & Community

    http://microsoft.com/technet

    Resources for IT Professionals

    http://microsoft.com/msdn

    Resources for Developers

    www.microsoft.com/learning

    Microsoft Certification and Training Resources

    www.microsoft.com/learning

    Microsoft Certification & Training Resources

    Resources

    Related Content

    http://www.microsoft.com/techedhttp://microsoft.com/technethttp://microsoft.com/msdnhttp://www.microsoft.com/learninghttp://www.microsoft.com/learninghttp://www.microsoft.com/learninghttp://www.microsoft.com/learninghttp://microsoft.com/msdnhttp://microsoft.com/technethttp://www.microsoft.com/teched
  • 8/3/2019 ARC310 TechEd 09 Prism

    78/81

    Related Content

    Breakout Sessions (session codes and titles)

    Interactive Theater Sessions (session codes and titles)

    Hands-on Labs (session codes and titles)

    Hands-on Labs (session codes and titles)

    Track Resources

  • 8/3/2019 ARC310 TechEd 09 Prism

    79/81

    Track Resources

    Resource 1

    Resource 2

    Resource 3

    Resource 4

  • 8/3/2019 ARC310 TechEd 09 Prism

    80/81

    Complete an

    evaluation onCommNet andenter to win!

  • 8/3/2019 ARC310 TechEd 09 Prism

    81/81

    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.