application architecture guidedownload.microsoft.com/.../apparch_china_summit_2009.pdfpattern book...
TRANSCRIPT
![Page 1: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/1.jpg)
Application Architecture
Guide
Don SmithCommunity LiaisonMicrosoft patterns & practices
![Page 2: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/2.jpg)
TheApplication
usersgoals
inputs
outputs
![Page 3: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/3.jpg)
STRUCTUREARCHITE -
CTURE
![Page 4: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/4.jpg)
TheArchitect
makerdecision
diplomat LEADER
influencer
team-member
consultant
![Page 5: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/5.jpg)
TheApp
ArchGuide
map
progressive
developers and solution architects
![Page 6: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/6.jpg)
OneTechnique
Create Application Overview
Identify Key Issues
Create Candidate Solutions
Identify Key
Scenarios
Identify Architecture Objectives
![Page 7: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/7.jpg)
ArchitecturalObjectives
goalsprinciples
audience
scope time
howto
comm
unicate
it
![Page 8: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/8.jpg)
scenarios
KEY
revenue
process
risk
high impact
![Page 9: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/9.jpg)
OverviewApplication
Application Type
mobile
rich client
service web
![Page 10: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/10.jpg)
Mobile Client Application
Individual User
PRES
ENTA
TIO
N
LAYE
R UI Components
Presentation Logic Components
BUSI
NES
S LA
YER
DATA
LAYE
R
CRO
SS-C
UTT
ING
Application Façade
Business Workflow
Business Components
Business Entities
Data Access Components
Data Helpers/ Utilities
Service Agents
Local Dataand Cache
Mobile Support Infrastructure
Secu
rity
Conf
igur
atio
n
Com
mun
icat
ion/
Conn
ectiv
ity
DataSources Services
UnreliableNetworks
Mobile
Data Synchronization
![Page 11: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/11.jpg)
Rich ClientRich Client Application
PRES
ENTA
TIO
N
LAYE
R UI Components
Presentation Logic Components
BUSI
NES
S LA
YER
DATA
LAYE
R
CRO
SS-C
UTT
ING
Application Façade
Business Logic
Business Workflows
Business Entities
Data Access Components
Service Agents
Data Sources
Secu
rity
Ope
ratio
nal M
anag
emen
t
Com
mun
icat
ion
ExternalData Services
![Page 12: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/12.jpg)
Client
Rich InternetWeb Server
SERV
ICE
SLA
YER
Service Interfaces Message Types
BUSINESS LAYER
DATA LAYER
CRO
SS-C
UTT
ING
…
Data Sources
Secu
rity
Ope
ratio
nal M
anag
emen
t
Com
mun
icat
ion
ExternalData Services
BRO
WSE
R
…
Plug-in Execution Container
Business Processing Components
Rich UI Engine
PresentationLayer
IsolatedStorage
![Page 13: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/13.jpg)
Service
ServiceSE
RVIC
ESLA
YER UI Components
Presentation Logic Components
BUSI
NES
S LA
YER
DATA
LAYE
R
CRO
SS-C
UTT
ING
Application Façade
Business Logic
Business Workflows
Business Entities
Data Access Components
Service Agents
Secu
rity
Ope
ratio
nal M
anag
emen
t
Com
mun
icat
ion
Data Sources Services
External Systems
Service Consumers
![Page 14: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/14.jpg)
Web A
ppWeb Server
PRES
ENTA
TIO
N
LAYE
R UI Components
Presentation Logic Components
BUSI
NES
S LA
YER
DATA
LAYE
R
CRO
SS-C
UTT
ING
Application Façade
Business Logic
Business Workflows
Business Entities
Data Access Components
Service Agents
Data Sources
Secu
rity
Ope
ratio
nal M
anag
emen
t
Com
mun
icat
ion
ClientBROWSER
Rendering
Services
![Page 15: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/15.jpg)
OverviewApplication
ArchitectureStyle
technologies
whiteboard it
![Page 16: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/16.jpg)
IssuesKey
security (authn/authz)caching
loggingexception management
validation
configuration
interoperability
manageability
testabilitysecurity
usability
scalabilityreliability
maintainability
![Page 17: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/17.jpg)
SolutionCandidate
… to learn
buildsomething
![Page 18: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/18.jpg)
Technique
Overview
Create Application Overview
Identify Key Issues
Create Candidate Solutions
Identify Key
Scenarios
Identify Architecture Objectives
![Page 19: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/19.jpg)
Thingmoreone
RESTSOAP
&
![Page 20: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/20.jpg)
Follow-up LinksApplication Architecture Guide
– http://msdn.microsoft.com/en-us/library/dd673617.aspx
p&p’s site: http://msdn.com/practices don’s email: [email protected] don’s blog: http://blogs.msdn.com/donsmith
![Page 21: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/21.jpg)
![Page 22: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/22.jpg)
TheAppendix
![Page 23: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/23.jpg)
ISA Server SQL
Application Server
Commerce Server Content Management Server (CMS)
Mobile Information Server (MIS)
Exchange Server BizTalk Host Integration Server (HIS)
RTC Server
Server Iconography
Server Running XML Web service
![Page 24: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/24.jpg)
Information Iconography
BizTalk DeveloperTemplate BizTalk AnalysisKeyDocument
BizTalk DeveloperCode BizTalk AnalysisGXAlibraries
![Page 25: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/25.jpg)
User 1 User 2 User 3 User 4
Information Iconography
Generic Application
Database blue
User business man
Database purple Database green Databases
User casual User business casualUser business woman
Tools
User casual man
![Page 26: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/26.jpg)
Information Iconography
Folders Firewall Commerce Email/PackageFolder
CD Connector Message Bus network connection
![Page 27: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/27.jpg)
Hardware Iconography
Server PC PC (with XML Web service)
Notebook Pocket PC
Mobile Phone Pager Dumb PhoneDumb Terminal Tablet PC
PC blank screen Monitor iMac - AppleiMac – Apple newer
LCD flat panel monitor
![Page 28: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/28.jpg)
XML Web Services Iconography
XML Web service XML Web service (black and white)
XML Web service and Binary Code
![Page 29: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/29.jpg)
Icons
Router-Logical Storage ArrayRouter-Physical
Pattern Book with CD
Internet cloud Pattern Book
Monitor
ServiceServices
Multi-Layer SwitchSwitch
AB switchbox Biometric reader Bridge Camera
![Page 30: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/30.jpg)
Information Iconography
router Patch panel switch box
External hard drive
Hub PBX box modem
Copier
User 1
External media deviceCRT projector
Fax machine phone
Digital video camera
Ethernet cable network
Fiber optic transmitter
CRT monitor
![Page 31: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/31.jpg)
Information Iconography
Projection screen Printer
Wireless access
Printer, Copier, Fax
Plotter printer Phone
Repeater
Satellite
ScannerSmart card reader
Tablet PC Satellite dish
Switch
![Page 32: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/32.jpg)
Buildings
Building University
Enterprise sand
House yellow House tan House purple
House green Government buildingHouse redHouse blue
Enterprise redFactory red Enterprise blueFactory blueFactory yellow
![Page 33: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/33.jpg)
Buildings
Building brick Building blue
Building blue with tree
Building red Building gold Building teal
Building purple Building green with tree
Building purple with tree
Building white with tree
Small business yellowSmall business green
Small business rose
Small business sand
Small business purple
![Page 34: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/34.jpg)
Buildings
Manufacturer green
Manufacturer blue
Manufacturer olive
Manufacturer tan
Manufacturerblue
![Page 35: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/35.jpg)
Icons
Policy rukes Claim statusclaim
Patient DataPayment
Claim formXml
![Page 36: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/36.jpg)
![Page 37: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/37.jpg)
Build Better WPF & Silverlight applications
using Prism v2
![Page 38: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/38.jpg)
• The Problem:– Client Applications can be Difficult!– How Do You Make The Application
Dynamic, Customizable, Extensible, Testable?
• The Solution:– Break Application Into Modules– Manage Dependencies & Interactions– Re-assemble Application From Modules
• Prism = Patterns For Composite Client Apps
Client Application Challenges
![Page 39: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/39.jpg)
• 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
• Prism 4.0 – WPF & Silverlight 4.0– Coming Soon!
What’s In The Box?
![Page 40: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/40.jpg)
Prism Core Concepts
![Page 41: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/41.jpg)
Reference Implementation
![Page 42: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/42.jpg)
Prism Quick Start Templates
Available From : http://blogs.msdn.com/dphill
![Page 43: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/43.jpg)
• StockTrader Reference Implementation
![Page 44: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/44.jpg)
What Are 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
![Page 45: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/45.jpg)
Finding & Loading Modules• Module Discovery
– Pluggable Catalogs
• Module Loading– Background or On-Demand
Module Loader
![Page 46: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/46.jpg)
• Shell – Application Host Window• Regions – Named Areas For View Placement• Views – Module UI & Presentation Logic• View Injection:
Building the UI
Region
Region
Region
<ContentControlRegionManager.RegionName=“BuySellRegion” />
MyView view = …;
IRegion buySellRegion =regionManager.Regions[ “BuySellRegion" ];
buySellRegion.Add( view );
<ItemsControlRegionManager.RegionName=“DataRegion">
![Page 47: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/47.jpg)
• View Discovery:– Less Complex– Black Box ‘App Assembly’ Composition– Select Views & Pull into Region
Building the UI Automatically
Region
Region
Region
<ContentControlRegionManager.RegionName=“BuySellRegion” />
<ItemsControlRegionManager.RegionName=“DataRegion">
regionManager.RegisterViewType(“BuySellRegion", typeof( BuySellView ) );
![Page 48: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/48.jpg)
• Common UI Patterns– Supervising Presenter– Presentation Model (“Model-View-ViewModel”)
• Views:– Encapsulate UI & UI Logic– Minimal Code Behind– UI Designer Friendly
• Presenters:– Presentation Logic
& State– Unit Testable– View Independent
Separated Presentation
SupervisingPresenter
Model
View
PresentationModel ModelView
![Page 49: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/49.jpg)
Commands and Events• Delegate Commands
– Delegate Based Commanding Pattern
• Composite Commands– Multiple Handler Command Routing
• Event Aggregator– Loosely Coupled Pub/Sub Events
Module BCustomerPresenter
Module AOrder
Presenter
EventAggregator
SubscribePublishEvent
![Page 50: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/50.jpg)
• Separated Presentation
![Page 51: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/51.jpg)
WPF
SILV
ERLI
GH
T
CLR - Silverlight CLR Desktop
BCL BCL
BROWSER DESKTOP
Multi-Targeting• Deployment For User Experience
– Desktop: In the Office, Full FunctionalityOffline Capable
– RIA: Out of the Office, Functional Subset, Online Only
Controllers
Models
Presenters
Views
Models
Controllers
Presenters
Views
![Page 52: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/52.jpg)
• Multi-Targeting
![Page 53: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/53.jpg)
• Library of Patterns for Client & RIA Applications– Modularity, Composition, Separated Presentation…
• Solid but Flexible Architectural Foundation– Promotes Re-use, Unit Testing, Independent Development– Supports Design-Time & Run-Time Extensibility
• Multi-Targeting– Promotes Re-use across WPF & Silverlight– Support Multi User Experience or Migration
• Code, Reference Implementation, Documentation & Quick-Starts Available on MSDN & CodePlex
• What’s Next?– Next Release for WPF & Silverlight 4.0 Spring 2010– Send us feedback & ideas for Prism 4.0!
Summary
![Page 54: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/54.jpg)
Prism Roadmap
• What’s Coming in Prism 4.0?– Silverlight 4.0 and WPF 4.0 Support– More ViewModel Pattern Guidance– Managed Extensibility Framework (MEF) Support– Guidance For Out of Browser Applications– ???
2009 2010
3.0 4.0
Prism 2.0 Prism 2.1 Prism 4.0
![Page 55: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/55.jpg)
Where Can You Find It?• www.microsoft.com/prism• www.codeplex.com/prism
![Page 56: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/56.jpg)
© 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.
![Page 57: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/57.jpg)
Making your lifeeasier with Enterprise Library
Don SmithCommunity LiaisonMicrosoft patterns & practices
![Page 58: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/58.jpg)
Customers want to:→ leverage proven practices→ drive productivity up, improve economics→ more effectively jump-start junior developers→ achieve consistency & compliance→ drive quality: maintainability→ drive quality: mature code components
Motivation
EntLib is this, in actionable form
![Page 59: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/59.jpg)
in theBox
Pluggable Binaries
SourceCode
Acceptance Tests
Unit Tests
Documentation(PDF, HTML, CHM)
Quickstarts
![Page 60: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/60.jpg)
of theBoxOut
Hands-on Labs
FAQs
Industry Books
DiscussionForumsCommunityextensions
DevGuides
![Page 61: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/61.jpg)
Functional blocks Common Infrastructure
Structural/wiring blocks
Security
Data Access
Cryptography
Validation
Logging
Caching ExceptionHandling
Unity
Config Instrumen-tation
PolicyInjection
Conceptual Architecture
![Page 62: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/62.jpg)
ConsistencyBlocks are written with and used in common
patterns
ExtensibilityPluggable extension points
Ease of useConfiguration tool, tons of documentation,
simple interfaces, hands-on labs, webcasts
IntegrationWork well together or separately
DesignGoals
![Page 63: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/63.jpg)
Dependency Injection• The Hollywood principle• Decouples dependencies• Improving testability• Dependency injection container will…
– figure out which constructor to call– figure out which objects need to be
created to pass to the constructor– create the actual objects passed as constructor parameters– map interfaces to concrete implementations… and it’s recursive!
• Unity is one such container Unity ContainerLifetime Locator
Object Factory
![Page 64: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/64.jpg)
p a t t e r n s & p r a c t i c e s
LoggingApplication
Block
demo→
![Page 65: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/65.jpg)
Logging Application Block• Provides a simple model for logging events
– Strongly typed, extensible log schema• Built on top of System.Diagnostics• Configuration driven – you decide what
messages are logged where at runtime• Use any .NET TraceListener, including supplied
formatter-aware listeners:– EventLog, Database, Flat File, Rolling Flat File,
MSMQ, E-mail, WMI, XML or create your own• Tracer class lets you time key activities and
correlate any enclosed events
![Page 66: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/66.jpg)
p a t t e r n s & p r a c t i c e s
ExceptionHandling
ApplicationBlock
demo→
![Page 67: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/67.jpg)
Exception Handling Application Block
• Provides simple mechanism that allows you to consistently deal with exceptions throughout your application
• Define “Exception Policies” which link an exception to an action, e.g.– Exceptions of type ApplicationException should be logged– Exceptions of type SqlClientException should be caught and wrapped with an
exception of type DataLayerException and re-thrown– Exceptions of type SecurityException should caught and replaced with an
AccessDeniedException which will be thrown
• Actions provided include– Logging– Wrapping one exception with another– Replacing one exception with an other– Map to WCF Fault Contract
![Page 68: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/68.jpg)
p a t t e r n s & p r a c t i c e s
DataAccess
ApplicationBlock
demo→
![Page 69: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/69.jpg)
Data Access Application Block• Provides simplified access to the most often used
features of ADO.NET with applied proven practices• Improve Consistency
– Write code that works against multiple database brands– Integrate with System.Transactions functionality
• Improve ease of use– Easily call a stored procedure with one line of code– Easily consume results from a sproc call– Let the block manage the lifetime of database connections– Work with database connection strings stored in
configuration or specified in code• NOT an Object Relational Mapper (O/RM) like EF
![Page 70: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/70.jpg)
LINQ Style Result Processing• Basic idea:
– Instead of a DataReader, get back an IEnumerable<T>
– LINQ to Objects
• Introducing Accessors– Provide a higher level abstraction that
combines input mapping, output mapping, and result set management into a single object
• Accessors can be easily injected
![Page 71: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/71.jpg)
Summary• You cannot afford not to reuse• Enterprise Library is a mature free set of
pluggable components• A-la-carte approach• DI-style development for the win!• Focus on testability• Engage with us!• Hands-on labs are a good start
• Happy coding!
![Page 72: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/72.jpg)
Resources • Released versions and related resources:
– msdn.microsoft.com/entlib• Pre-releases for version 5.0:
– entlib.codeplex.com– unity.codeplex.com
• Community sites:– entlib.codeplex.com– entlibcontrib.codeplex.com
• patterns & practices home page– msdn.microsoft.com/practices
• Grigori’s blog:– blogs.msdn.com/agile/
![Page 73: Application Architecture Guidedownload.microsoft.com/.../AppArch_China_Summit_2009.pdfPattern Book with CD Internet cloud Pattern Book Monitor Services Service Switch Multi-Layer Switch](https://reader035.vdocuments.us/reader035/viewer/2022062508/5fea6d54dc4eed1aff6ad6a1/html5/thumbnails/73.jpg)
© 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.