SlideShare uma empresa Scribd logo
1 de 31
Architecting Applications the Microsoft Way Clint Edmonson Developer Evangelist Microsoft Corporation
Who the heck needs architecture?
Architecture “A unifying or coherent form or structure.”      merriam-webster.com
Design “Design, at its most fundamental, is about finding solutions.”      Garr Reynolds
A technique for architecture & design Page 41
1. Identify architecture objectives Goals based on size, scope, time Complete application Prototype Solving a technical risk Exploring potential options Building shared, reference models Target audience Other architects Developers Testers Operations
2. Identify key scenarios Define the solution’s boundaries Identify who will impacted by the solution Discover what valuable activities will be automated Uncover constraints that will limit the solution Highlight those that are most important to the success of your application
Brainstorming scope & key scenarios
3. Create an application overview Determine your application type Web Mobile Rich client RIA Web service Some combination of the above Identify your deployment constraints Determine your relevant technologies Identify important architectural styles
Architecture styles Layered Client/server Component-based Domain driven design  Message bus N-Tier Object-oriented Service-oriented This is our architecture toolbox!
4. Identify key issues Cross-cutting concerns Configuration Security Communication Compression Encryption Logging & instrumentation Validation Error management Quality attributes Run-time performance  Scalability Disaster recovery
5. Define candidate solution(s) Choose an architecturally significant scenario  Design out a baseline architecture Prove it out
Common Application Architecture Page 10
Lay(er)ing it all out Describe the application at a high level  Identify major components and other functional units of the design and their interdependencies Each layer represents a logical group of projects, namespaces, and/or other artifacts
Layered structure design steps Determine layers you require Determine rules for interaction between layers Identify cross-cutting concerns Determine if you need to collapse layers Choose deployment strategy
Presentation layer UI Components Presentation Layer Logic Components Navigation Error handling Validation
Services layer Authentication Authorization Communication & messaging format Exception handling
Business layer Authentication Authorization Exception handling Logging, auditing, & instrumentation Validation
Data layer Batching Blobs Connections Data format Exception management O/R mapping Transactions Validation
Initial architecture
Physical deployment Visualize the physical structure of a system  Executables Libraries Services Focus on components of the system, their relationships, interfaces, and ports Highlight the service behavior that they provide and consume through interfaces
Physical deployment
Grouping layers into assemblies Prefer fewer, larger assemblies Faster load time Reduced working set Better NGEN optimization If several assemblies are always loaded together, consider combining them into one Partition into separate assemblies based on Security control Independent versioning Data access Contributions from disparate sources
Rinse, repeat, refactor… Page 41

Mais conteúdo relacionado

Mais procurados

Android Chromium Rendering Pipeline
Android Chromium Rendering PipelineAndroid Chromium Rendering Pipeline
Android Chromium Rendering Pipeline
Hyungwook Lee
 
Android graphics
Android graphicsAndroid graphics
Android graphics
Krazy Koder
 

Mais procurados (20)

Asp.Net Core MVC with Entity Framework
Asp.Net Core MVC with Entity FrameworkAsp.Net Core MVC with Entity Framework
Asp.Net Core MVC with Entity Framework
 
Object oriented programming in java
Object oriented programming in javaObject oriented programming in java
Object oriented programming in java
 
Basic java important interview questions and answers to secure a job
Basic java important interview questions and answers to secure a jobBasic java important interview questions and answers to secure a job
Basic java important interview questions and answers to secure a job
 
Android Chromium Rendering Pipeline
Android Chromium Rendering PipelineAndroid Chromium Rendering Pipeline
Android Chromium Rendering Pipeline
 
Android graphics
Android graphicsAndroid graphics
Android graphics
 
Reactive Programming
Reactive ProgrammingReactive Programming
Reactive Programming
 
Docker Container Security
Docker Container SecurityDocker Container Security
Docker Container Security
 
Android MVVM
Android MVVMAndroid MVVM
Android MVVM
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
 
Discover Quarkus and GraalVM
Discover Quarkus and GraalVMDiscover Quarkus and GraalVM
Discover Quarkus and GraalVM
 
Sqlite
SqliteSqlite
Sqlite
 
Chrome DevTools
Chrome DevToolsChrome DevTools
Chrome DevTools
 
Android - Graphics Animation in Android
Android - Graphics Animation in AndroidAndroid - Graphics Animation in Android
Android - Graphics Animation in Android
 
jdbc document
jdbc documentjdbc document
jdbc document
 
Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...
Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...
Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...
 
IntelliJ IDEA Architecture and Performance
IntelliJ IDEA Architecture and PerformanceIntelliJ IDEA Architecture and Performance
IntelliJ IDEA Architecture and Performance
 
Java Multi-threading programming
Java Multi-threading programmingJava Multi-threading programming
Java Multi-threading programming
 
Presentation on Android application life cycle and saved instancestate
Presentation on Android application life cycle and saved instancestatePresentation on Android application life cycle and saved instancestate
Presentation on Android application life cycle and saved instancestate
 
Intro to react native
Intro to react nativeIntro to react native
Intro to react native
 
.Net Debugging Techniques
.Net Debugging Techniques.Net Debugging Techniques
.Net Debugging Techniques
 

Destaque

Mobile platform war
Mobile platform warMobile platform war
Mobile platform war
toteb5
 
Scrum and Test-driven development
Scrum and Test-driven developmentScrum and Test-driven development
Scrum and Test-driven development
toteb5
 
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Zohirul Alam Tiemoon
 

Destaque (20)

Windows Azure jumpstart
Windows Azure jumpstartWindows Azure jumpstart
Windows Azure jumpstart
 
Practical IxD for Developers
Practical IxD for DevelopersPractical IxD for Developers
Practical IxD for Developers
 
It's All About Context
It's All About ContextIt's All About Context
It's All About Context
 
Rage Against the Framework
Rage Against the FrameworkRage Against the Framework
Rage Against the Framework
 
A Strategist's Guide to Digital Fabrication
A Strategist's Guide to Digital FabricationA Strategist's Guide to Digital Fabrication
A Strategist's Guide to Digital Fabrication
 
Peering through the Clouds - Cloud Architectures You Need to Master
Peering through the Clouds - Cloud Architectures You Need to MasterPeering through the Clouds - Cloud Architectures You Need to Master
Peering through the Clouds - Cloud Architectures You Need to Master
 
Architecting Scalable Applications in the Cloud
Architecting Scalable Applications in the CloudArchitecting Scalable Applications in the Cloud
Architecting Scalable Applications in the Cloud
 
Mobile platform war
Mobile platform warMobile platform war
Mobile platform war
 
Application architecture jumpstart
Application architecture jumpstartApplication architecture jumpstart
Application architecture jumpstart
 
Advanced oop laws, principles, idioms
Advanced oop laws, principles, idiomsAdvanced oop laws, principles, idioms
Advanced oop laws, principles, idioms
 
Introduction to Windows Azure Virtual Machines
Introduction to Windows Azure Virtual MachinesIntroduction to Windows Azure Virtual Machines
Introduction to Windows Azure Virtual Machines
 
Agile Workspace
Agile WorkspaceAgile Workspace
Agile Workspace
 
Test Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose preso
Test Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose presoTest Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose preso
Test Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose preso
 
State of agile 2016
State of agile 2016State of agile 2016
State of agile 2016
 
Tom Grey - Google Cloud Platform
Tom Grey - Google Cloud PlatformTom Grey - Google Cloud Platform
Tom Grey - Google Cloud Platform
 
Scrum and Test-driven development
Scrum and Test-driven developmentScrum and Test-driven development
Scrum and Test-driven development
 
Agile Metrics That Matter
Agile Metrics That MatterAgile Metrics That Matter
Agile Metrics That Matter
 
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
 
Effective code reviews
Effective code reviewsEffective code reviews
Effective code reviews
 
ATDD - Acceptance Test Driven Development
ATDD - Acceptance Test Driven DevelopmentATDD - Acceptance Test Driven Development
ATDD - Acceptance Test Driven Development
 

Semelhante a Architecting Applications the Microsoft Way

04 designing architectures
04 designing architectures04 designing architectures
04 designing architectures
Majong DevJfu
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
Majong DevJfu
 
App Arch Guide (Dons)
App Arch Guide (Dons)App Arch Guide (Dons)
App Arch Guide (Dons)
rsnarayanan
 

Semelhante a Architecting Applications the Microsoft Way (20)

OOSAD Chapter 6 Object Oriented Design.pptx
OOSAD Chapter 6 Object Oriented Design.pptxOOSAD Chapter 6 Object Oriented Design.pptx
OOSAD Chapter 6 Object Oriented Design.pptx
 
Basics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET DevelopersBasics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET Developers
 
Choosing the Right Framework for Your Web Development Project.pdf
Choosing the Right Framework for Your Web Development Project.pdfChoosing the Right Framework for Your Web Development Project.pdf
Choosing the Right Framework for Your Web Development Project.pdf
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architectures
 
Demystifying Programming Frameworks - A Step-by-Step Guide.pdf
Demystifying Programming Frameworks - A Step-by-Step Guide.pdfDemystifying Programming Frameworks - A Step-by-Step Guide.pdf
Demystifying Programming Frameworks - A Step-by-Step Guide.pdf
 
Software Architecture: How Much Design?
Software Architecture: How Much Design?Software Architecture: How Much Design?
Software Architecture: How Much Design?
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
 
02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt
 
J2EE Performance And Scalability Bp
J2EE Performance And Scalability BpJ2EE Performance And Scalability Bp
J2EE Performance And Scalability Bp
 
Domain Driven Design & Hexagonal Architecture
Domain Driven Design & Hexagonal ArchitectureDomain Driven Design & Hexagonal Architecture
Domain Driven Design & Hexagonal Architecture
 
Security and DevOps: Agility and Teamwork - SID315 - re:Invent 2017
Security and DevOps: Agility and Teamwork - SID315 - re:Invent 2017Security and DevOps: Agility and Teamwork - SID315 - re:Invent 2017
Security and DevOps: Agility and Teamwork - SID315 - re:Invent 2017
 
Clean architecture with asp.net core
Clean architecture with asp.net coreClean architecture with asp.net core
Clean architecture with asp.net core
 
Software Architecture: introduction to the abstraction
Software Architecture: introduction to the abstractionSoftware Architecture: introduction to the abstraction
Software Architecture: introduction to the abstraction
 
App Arch Guide (Dons)
App Arch Guide (Dons)App Arch Guide (Dons)
App Arch Guide (Dons)
 
Software Architecture for Agile Development
Software Architecture for Agile DevelopmentSoftware Architecture for Agile Development
Software Architecture for Agile Development
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Notes on software engineering
Notes on software engineeringNotes on software engineering
Notes on software engineering
 
The Intersection of Security and DevOps
The Intersection of Security and DevOpsThe Intersection of Security and DevOps
The Intersection of Security and DevOps
 
Elements of DDD with ASP.NET MVC & Entity Framework Code First
Elements of DDD with ASP.NET MVC & Entity Framework Code FirstElements of DDD with ASP.NET MVC & Entity Framework Code First
Elements of DDD with ASP.NET MVC & Entity Framework Code First
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General Introduction
 

Mais de Clint Edmonson

Visual Studio 2010 Ultimate
Visual Studio 2010 UltimateVisual Studio 2010 Ultimate
Visual Studio 2010 Ultimate
Clint Edmonson
 
Building a Twitter App with Silverlight 3 - Part 2
Building a Twitter App with Silverlight 3 - Part 2Building a Twitter App with Silverlight 3 - Part 2
Building a Twitter App with Silverlight 3 - Part 2
Clint Edmonson
 

Mais de Clint Edmonson (20)

New Product Concept Design.pptx
New Product Concept Design.pptxNew Product Concept Design.pptx
New Product Concept Design.pptx
 
Lean & Agile Essentials
Lean & Agile EssentialsLean & Agile Essentials
Lean & Agile Essentials
 
MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?
MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?
MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?
 
Flow, the Universe and Everything
Flow, the Universe and EverythingFlow, the Universe and Everything
Flow, the Universe and Everything
 
Application architecture jumpstart
Application architecture jumpstartApplication architecture jumpstart
Application architecture jumpstart
 
Code smells and Other Malodorous Software Odors
Code smells and Other Malodorous Software OdorsCode smells and Other Malodorous Software Odors
Code smells and Other Malodorous Software Odors
 
Lean & Agile DevOps with VSTS and TFS 2015
Lean & Agile DevOps with VSTS and TFS 2015Lean & Agile DevOps with VSTS and TFS 2015
Lean & Agile DevOps with VSTS and TFS 2015
 
Application Architecture Jumpstart
Application Architecture JumpstartApplication Architecture Jumpstart
Application Architecture Jumpstart
 
ADO.NET Entity Framework
ADO.NET Entity FrameworkADO.NET Entity Framework
ADO.NET Entity Framework
 
Windows 8 - The JavaScript Story
Windows 8 - The JavaScript StoryWindows 8 - The JavaScript Story
Windows 8 - The JavaScript Story
 
Windows Azure Jumpstart
Windows Azure JumpstartWindows Azure Jumpstart
Windows Azure Jumpstart
 
Windows Azure Virtual Machines
Windows Azure Virtual MachinesWindows Azure Virtual Machines
Windows Azure Virtual Machines
 
A Force of One - Agile and the Solo Developer
A Force of One - Agile and the Solo DeveloperA Force of One - Agile and the Solo Developer
A Force of One - Agile and the Solo Developer
 
Agile is as Agile Does
Agile is as Agile DoesAgile is as Agile Does
Agile is as Agile Does
 
Visual Studio 2010 Ultimate
Visual Studio 2010 UltimateVisual Studio 2010 Ultimate
Visual Studio 2010 Ultimate
 
Visual Studio 2010 - The Good Stuff
Visual Studio 2010 - The Good StuffVisual Studio 2010 - The Good Stuff
Visual Studio 2010 - The Good Stuff
 
Intro to VS 2010 & .Net 4.0
Intro to VS 2010 & .Net 4.0Intro to VS 2010 & .Net 4.0
Intro to VS 2010 & .Net 4.0
 
Sky High With Azure
Sky High With AzureSky High With Azure
Sky High With Azure
 
Building a Twitter App with Silverlight 3 - Part 2
Building a Twitter App with Silverlight 3 - Part 2Building a Twitter App with Silverlight 3 - Part 2
Building a Twitter App with Silverlight 3 - Part 2
 
Building a Twitter App with Silverlight 3 - Part 1
Building a Twitter App with Silverlight 3 - Part 1Building a Twitter App with Silverlight 3 - Part 1
Building a Twitter App with Silverlight 3 - Part 1
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

Architecting Applications the Microsoft Way

  • 1. Architecting Applications the Microsoft Way Clint Edmonson Developer Evangelist Microsoft Corporation
  • 2. Who the heck needs architecture?
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. Architecture “A unifying or coherent form or structure.” merriam-webster.com
  • 11. Design “Design, at its most fundamental, is about finding solutions.” Garr Reynolds
  • 12. A technique for architecture & design Page 41
  • 13. 1. Identify architecture objectives Goals based on size, scope, time Complete application Prototype Solving a technical risk Exploring potential options Building shared, reference models Target audience Other architects Developers Testers Operations
  • 14. 2. Identify key scenarios Define the solution’s boundaries Identify who will impacted by the solution Discover what valuable activities will be automated Uncover constraints that will limit the solution Highlight those that are most important to the success of your application
  • 15. Brainstorming scope & key scenarios
  • 16. 3. Create an application overview Determine your application type Web Mobile Rich client RIA Web service Some combination of the above Identify your deployment constraints Determine your relevant technologies Identify important architectural styles
  • 17. Architecture styles Layered Client/server Component-based Domain driven design Message bus N-Tier Object-oriented Service-oriented This is our architecture toolbox!
  • 18. 4. Identify key issues Cross-cutting concerns Configuration Security Communication Compression Encryption Logging & instrumentation Validation Error management Quality attributes Run-time performance Scalability Disaster recovery
  • 19. 5. Define candidate solution(s) Choose an architecturally significant scenario Design out a baseline architecture Prove it out
  • 21. Lay(er)ing it all out Describe the application at a high level Identify major components and other functional units of the design and their interdependencies Each layer represents a logical group of projects, namespaces, and/or other artifacts
  • 22. Layered structure design steps Determine layers you require Determine rules for interaction between layers Identify cross-cutting concerns Determine if you need to collapse layers Choose deployment strategy
  • 23. Presentation layer UI Components Presentation Layer Logic Components Navigation Error handling Validation
  • 24. Services layer Authentication Authorization Communication & messaging format Exception handling
  • 25. Business layer Authentication Authorization Exception handling Logging, auditing, & instrumentation Validation
  • 26. Data layer Batching Blobs Connections Data format Exception management O/R mapping Transactions Validation
  • 28. Physical deployment Visualize the physical structure of a system Executables Libraries Services Focus on components of the system, their relationships, interfaces, and ports Highlight the service behavior that they provide and consume through interfaces
  • 30. Grouping layers into assemblies Prefer fewer, larger assemblies Faster load time Reduced working set Better NGEN optimization If several assemblies are always loaded together, consider combining them into one Partition into separate assemblies based on Security control Independent versioning Data access Contributions from disparate sources
  • 33. Key architecture principles Separation of Concerns Single Responsibility Principle Principle of Least Knowledge Don’t Repeat Yourself Minimize Upfront Design
  • 34. Best Practices Minimize upfront design avoid starting more than 1 namespace deep when layering Analyze and refactor at the beginning of each iteration Separate functional areas of concern cleanly Avoid duplicating responsibilities Minimize dependencies between layers Make it obvious where code needs to go!
  • 35. References Microsoft Application Architecture Guide 2nd Edition by Microsoft Patterns & Practices Group Microsoft .NET: Architecting Application for the Enterprise by Dino Esposito & Andrea Salterello Domain Driven Design by Eric Evans Framework Design Guidelines by Krzysztof Cwalina & Brad Abrams
  • 36. Call to action Download the trial Available now on MSDN Team blog: http://blogs.msdn.com/vsarch Stayed tuned to my blog for more… http://www.notsotrivial.net clinted@microsoft.com
  • 37. Q & A
  • 38. © 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. Photo credits: http://www.flickr.com/photos/cogdog/2708223050/Creative Commons Attribution License
  2. Photo credits: http://www.flickr.com/photos/dullhunk/2859826117/Creative Commons Attribution License
  3. Photo credits: http://www.flickr.com/photos/rutlo/4094249840/Creative Commons Attribution License
  4. Photo credits: http://www.flickr.com/photos/annahape-gallery/Creative Commons Attribution License
  5. Photo credits: http://www.flickr.com/photos/wwarby/2460644803/Creative Commons Attribution License
  6. Photo credits: http://www.flickr.com/photos/paalia/3582759194/Creative Commons Attribution License
  7. Photo credits: http://www.flickr.com/photos/emilysoo/3863285545/Creative Commons Attribution License