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/compositeWpf8/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/teched8/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.