Foreword by Scott Guthrie
Application architecture is a challenging topic, as evidenced by the wide variety of books, articles, and white papers on the subject. It is still too hard for developers and architects to understand architecture and best practice design for the Microsoft platform. The original Application Architecture for .NET: Designing Applications and Services guide did a great job of covering this topic, but it was written in 2002.
To deal with the many technology additions since then, J. D. Meier, David Hill, and their team from Microsoft patterns & practices have created a new application architecture guide to provide insightful guidance for designing applications and services that run on the Microsoft platform based on the latest best practices and technologies. The outcome is Microsoft Application Architecture Guide 2nd Edition, a guide targeted to help solution architects and developers design effective applications on the Microsoft platform. While the guide provides an overview of the .NET Framework, the Microsoft platform, and the main technologies and capabilities within them, it also provides platform-independent, pattern-oriented, principles-based guidance that will help you design your applications on a solid foundation.
The guide is based on a number of key architecture and design principles that provide structure. It includes guidelines for identifying and dealing with key engineering decisions, and an explanation of the quality attributes, crosscutting concerns, and capabilities that shape your application architecture; such as performance, security, scalability, manageability, deployment, communication, and more.
The guide also describes, at a meta-level, the tiers and layers that a solution architect should consider. Each tier/layer is described in terms of its focus, function, capabilities, common design patterns, and technologies. Using these as a backdrop, the guide then overlays relevant principles, patterns, and practices. Finally, the guide provides canonical application archetypes to illustrate common application types. Each archetype is described in terms of the target scenarios, technologies, patterns, and infrastructure it contains.
The guidance as a whole is based on the combined experience and knowledge of Microsoft experts, Microsoft partners, customers, and others in the community. It will help you understand our platform, choose the right architecture and the right technologies, and build applications using proven practices and lessons learned.
Corporate Vice President of .NET Developer Platform