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 design best practices for the .NET 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 and his team from Microsoft patterns & practices have created a new application architecture guide to provide insightful guidance for designing .NET applications based on the latest practices and technologies. The outcome is Application Architecture Guide 2.0, a guide targeted to help solution architects and developers design effective applications on the .NET platform. The guide gives an overview of the Microsoft .NET platform and the main technologies and capabilities within it. It provides not only principles-based guidance, but also platform-independent, pattern-oriented guidance for designing your application. Even though the guide itself is comprehensive on its own, the team has also provided a Knowledge Base on the Web, which provides informative expansion on the topics and concepts outlined in the guide.
The guide is based on a number of frames that provide structure as it dissects the .NET technology space. The Architecture Frame provides a set of common categories to cover hotspots for key engineering decisions. The Quality Attributes Frame provides cross-cutting qualities and abilities that shape your application architecture, such as performance, security, scalability, manageability, deployment, communication, and more. The Canonical Application 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. Using each of these frames 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, choose the right technologies, and build applications using proven practices and lessons learned.
Corporate Vice President of .NET Developer Platform