Welcome to Enterprise Solution Patterns Using Microsoft .NET. This guide briefly introduces patterns and describes a new organizational approach that categorizes them according to various viewpoints and relationships. The guide then presents 32 patterns that span several of these viewpoints, and explains how they can be integrated into an enterprise solution.
Increasingly, software design professionals are using patterns to efficiently share the important architectural tradeoffs and design decisions they make while architecting and building enterprise solutions. Christopher Alexander first used patterns to describe architecture and design in his book, The Timeless Way of Building; however, his patterns were for towns, buildings, and rooms. Software design professionals soon recognized the value of patterns as a language for sharing design experiences.
Over the past decade, the burgeoning patterns community has discovered patterns in many areas of system architecture and software development. This book embraces the continuing work of the patterns community and extends it by showing how to apply patterns to building software-intensive systems that use Microsoft .NET. Early on, customer, partner, and internal feedback indicated that a single book should revisit established patterns as well as Microsoft-specific patterns. Therefore, that is what this book does.
The book includes established architecture and design patterns that are platform independent, and augments them with implementation patterns that apply specifically to Microsoft .NET. Early feedback from .NET developers and system architects has confirmed that patterns are invaluable tools for sharing expertise in .NET. Patterns give developers and architects a common language to help bridge the gap between their two disciplines. The authors hope they prove useful to you and that you will contribute to the growing patterns community for .NET. There is much more work to be done.
Most readers of this book should fall into one of three categories:
Architects, designers, and developers who are new to patterns
Architects and designers who already use patterns to build enterprise solutions
System architects and system engineers who architect or design systems infrastructure
For those in the first group, the first two chapters are very important to understanding why and how you should use patterns. These chapters are essential in understanding the last four chapters, which collectively form a pattern catalog. You are likely to discover that you have implemented some of these patterns before without knowing that they were patterns.
Readers in the second group are familiar with most of the content in Chapter 1, “Patterns for Building Enterprise Solutions.” Chapter 2, “Organizing Patterns,” introduces new material on how Microsoft is organizing its pattern repository. Most of the patterns in Chapters 3 through 7 will be familiar to you; however, the implementation examples provided should help you apply them to .NET.
The last group should read the first two chapters and pay special attention to Chapter 4, “Deployment Patterns” and Chapter 7, “Performance and Reliability Patterns.” These chapters focus on the patterns that are directly applicable to the infrastructure.