Foreword by S. Somasegar
In using our own technologies to build Microsoft products, and working with customers and partners every day, we have developed practical guidance on how to use our technologies and application architecture that is valuable to the Developer and IT Professional
community. We have built the Application Architecture Guide 2.0 to consolidate guidance that we have gathered from our internal practices, external experts, customers, and others in the community to share with you.
This guide is a consolidated set of principles, patterns, and practices for designing application architecture. The purpose of the guide is to help solution architects and developers design and build more effective applications on the .NET platform and support
top-level decision-making at the early stages of a new project, as well as provide topic-specific content to help architects and developers improve their existing solutions. This guidance incorporates the contributions and reviews of over fifteen external
experts and customers.
The Architecture Meta Frame is a conceptual framework used throughout the guide. By thinking about applications in terms of scenarios, application types, architecture styles, and requirements, you can very quickly determine relevant technologies, patterns,
and solution assets. You can then use the Architecture Frame as an additional lens to identify potential hotspots in your application architecture. For example, by focusing on data access or validation, you can prototype and test potential solutions to figure
out the best approach for your scenario.
The guide includes a reference application architecture; common canonical application archetypes for Web, rich client, RIA, mobile, and services applications; architecture frames; quality attributes; and a design approach to help you design your architecture.
To summarize, we are confident that Application Architecture Guide 2.0 will help you choose the right architecture, choose the right technologies, make more effective design decisions, and choose relevant patterns.
Senior Vice President of Developer Division