Today we released our patterns & practices App Arch Guide 2.0 Beta 1. This is our guide to help solution architects and developers make the most of the Microsoft platform. It's a distillation of many lessons learned. It’s principle-based and pattern-oriented to provide a durable, evolvable backdrop for application architecture. It's a collaborative effort among product team members, field, industry experts, MVPs, and customers. Keep in mind it’s Beta so there’s still moving parts and we’re processing quite a bit of feedback across the guide. Now’s the time to bang on it.
5 Parts
Part I, “Fundamentals”
Part II, “Design”
Part III, “Layers”
Part IV, “Quality Attributes”
Part V, “Archetypes – Design and Patterns”
Chapters
Chapter 1 - Fundamentals of Application Architecture
Chapter 2 - .NET Platform Overview
Chapter 3 - Application Archetypes
Chapter 4 - Deployment Patterns
Chapter 5 - Arch Styles
Chapter 6 - Quality Attributes
Chapter 7 - Layers and Tiers
Chapter 8 - Designing Your Architecture
Chapter 9 - Architecture and Design Guidelines
Chapter 10 - Designing Services
Chapter 11 - Communication Guidelines
Chapter 12 - Presentation Layer Guidelines
Chapter 13 - Business Layer Guidelines
Chapter 14 - Data Access Layer Guidelines
Chapter 15 - Service Layer Guidelines
Chapter 16 - Performance Engineering
Chapter 17 - Security Engineering
Chapter 18 - Mobile Application
Chapter 19 - Office Business Application (OBA)
Chapter 20 - Rich Client Application
Chapter 21 - Rich Internet Application (RIA)
Chapter 22 - Service Archetype
Chapter 23 - SharePoint LOB Application
Chapter 24 - Web Application
Key Scenarios
The guide helps you address the following scenarios:
Choose the right architecture for your application.
Choose the right technologies
Make more effective choices for key engineering decisions.
Canonical app frame - describes at a meta-level, the tiers and layers that an architect should consider. Each tier/layer is described in terms of its focus, function, capabilities, common design patterns and technologies.
App Types. Canonical application archetypes to illustrate common application types. Each archetype is described in terms of the target scenarios, technologies, patterns and infrastructure it contains. Each archetype will be mapped to the canonical app frame. They are illustrative of common app types and not comprehensive or definitive.
Arch Frame - a common set of categories for hot spots for key engineering decisions.
Quality Attributes - a set of qualities/abilities that shape your application architecture: performance, security, scalability, manageability, deployment, communication, etc.
Principles, patterns and practices - Using the frames as backdrops, the guide overlays relevant principles, patterns, and practices.
Technologies and capabilities - a description/overview of the Microsoft custom app dev platform and the main technologies and capabilities within it.
Conceptual Framework
At a high level, the guide is based on the following conceptual framework for application architecture:
Reference Application Architecture
We used the following reference application architecture as a backdrop for explaining how to design effective layers and components:
J.D. Meier , Alex Homer, David Hill, Jason Taylor, Prashant Bansode , Lonnie Wall, Rob Boucher, Akshay Bogawat
Contributors / Reviewers
Test team: Rohit Sharma, Praveen Rangarajan
Edit team: Dennis Rea.
External Contributors/Reviewers. Adwait Ullal; Andy Eunson; Christian Weyer; David Guimbellot; David Weller; Derek Greer; Eduardo Jezierski; Evan Hoff; Gajapathi Kannan; Jeremy D. Miller; Kent Corley; Mark Baker; Paul Ballard; Norman Headlam; Ryan Plant; Sam Gentile; Udi Dahan
Microsoft Contributors / Reviewers. Ade Miller; Anoop Gupta; Bob Brumfield; Brad Abrams; Brian Cawelti; Bhushan Nene; Burley Kawasaki; Carl Perry; Chris Keyser; Chris Tavares; Clint Edmonson; David Hill; Denny Dayton; Diego Dagum; Dmitri Martynov; Dmitri Ossipov; Don Smith; Dragos Manolescu; Elisa Flasko; Eric Fleck; Erwin van der Valk; Faisal Mohamood; Francis Cheung; Gary Lewis; Glenn Block; Gregory Leake; Ilia Fortunov; J.R. Arredondo; John deVadoss; Joseph Hofstader; Koby Avital; Loke Uei Tan; Mehran Nikoo; Michael Puleio; Mike Walker; Mubarak Elamin; Nick Malik; Nobuyuki Akama; Ofer Ashkenazi; Pablo Castro; Pat Helland; Phil Haack; Reed Robison; Rob Tiffany; Ryno Rijnsburger; Scott Hanselman; Serena Yeoh; Srinath Vasireddy; Tom Hollander; Wojtek Kozaczynski