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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
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

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

• 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

• 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

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

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

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

• 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

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

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

• 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

• 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

• 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

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

• 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

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

• 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

• 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

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

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

© 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

© 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.


Top Related