The guide helps you to:
- Understand the underlying architecture and design principles and patterns for developing successful solutions on the Microsoft platform and the .NET Framework.
- Identify appropriate strategies and design patterns that will help you design your solution’s layers, components, and services.
- Identify and address the key engineering decision points for your solution.
- Identify and address the key quality attributes and crosscutting concerns for your solution.
- Create a candidate baseline architecture for your solution.
- Choose the right technologies for your solution.
- Identify patterns & practices solution assets and further guidance that will help you to implement your solution.
It is based on several useful architectural principles (p.7-8) :
- Build to change instead of building to last. Consider how the application may need to change over time to address new requirements and challenges, and build in the flexibility to support this.
- Model to analyze and reduce risk. Use design tools, modeling systems such as Unified Modeling Language (UML), and visualizations where appropriate to help you capture requirements and architectural and design decisions, and to analyze their impact. However, do not formalize the model to the extent that it suppresses the capability to iterate and adapt the design easily.
- Use models and visualizations as a communication and collaboration tool. Efficient communication of the design, the decisions you make, and ongoingchanges to the design, is critical to good architecture. Use models, views, and other visualizations of the architecture to communicate and share your design efficiently with all the stakeholders, and to enable rapid communication of changes to the design
- Identify key engineering decisions. Use the information in this guide to understand the key engineering decisions and the areas where mistakes are most often
made. Invest in getting these key decisions right the first time so that the design is
more flexible and less likely to be broken by changes
It covers guidelines for layered applications, presentation layer, business layer, data layer, service layer, and component design guidelines (presentation, business, business entities, workflow, data) as well as specific guidance for specific application archetypes (web applications, rich client applications, rich internet applications, mobile applications, service applications, hosted and cloud services, officce business applications, sharepoint LOB applications). This guidance should be read in the context of later guidance issued by Microsoft Corporation.