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 applying best practices for application architecture and design patterns and principles using our technologies. This guidance is valuable to both the developer and to the solution architect. We have built the Microsoft Application Architecture Guide to consolidate guidance that we have gathered from our internal practices, external experts, customers, and others in the community in order to share it with you.

The purpose of the guide is to help solution architects and developers to design and build applications on the Microsoft platform that are more effective, to support key decision making at the early stages of a new project, as well as providing topic-specific content to help architects and developers improve their existing solutions. This guidance incorporates the contributions and reviews from more than 25 external experts and customers.

By thinking about solutions in terms of architectural patterns and principles, quality attributes, and crosscutting concerns, you can very quickly determine a baseline application architecture and the relevant technologies, patterns, and guidance assets that will help you build your solution. You can then use the guide to identify key areas of your application architecture so you can refine them for your scenario.

The guide includes reference application architectures for common application types, such as Web, rich client, RIA, mobile, and services applications; guidelines for quality attributes and crosscutting concerns; and guidelines on design approaches that can help you to design and refine your solution architecture.

We are confident that the Microsoft Application Architecture Guide 2nd Edition will help you choose the right architecture, the right technologies, and the relevant patterns that will help you make more effective design decisions.

Sincerely,

S. Somasegar

Senior Vice President of Developer Division

Microsoft