When introducing anyone to a new technology, there are always reference standards with which to begin. These reference standards usually come in the form of "defacto" standard learning materials and those who profess them. If you were learning COM, I would point you to Don Box and the book Essential COM . If you were learning object orientation and the Unified Modeling Language (UML), I would surely point to the "three amigos" of Rational Software and their books. The same goes for learning patterns. The founding fathers of design patterns are Gamma, Helm, Johnson, and Vlissides. These gentlemen are affectionately referred to as the "gang of four" (GoF; pronounced "gauf," as a Scot would articulate the word "golf"). The GoF have become the "three amigos" of design patterns and the pattern movement overall. No, I'm not talking about Steve Martin, Martin Short, and Chevy Chase (apologies for those who haven't seen that movie). I'm referring to Booch, Rambaugh, and Jacobsen. With the help of both the "three amigos" and the GoF, there is now a standard set of practices from which those new to object-orientation can build a foundation.
The GoF manifested the idea of software design patterns but the overall idea of patterns came from another source. Christopher Alexander first spoke of design patterns when referring to the actual architecture of buildings . But we are building software, not sky scrapers.
Unlike many other books, I will not be repeating the patterns in the GoF book. There is already enough material out there to provide you with an .NET implementation of preexisting GoF patterns. What is provided, however, are new twists to familiar patterns from not only the design perspective but the architecture and implementation perspective, as well. In their book, Design Patterns: Elements of Reusable Object-Oriented Software from Addison Wesley 1995, the GoF uses C++ and Smalltalk. However, the book is geared to the patterns themselves and not the language used to implement them. This general applicability to all languages is what makes patterns so powerful. In this book, you will be leveraging technology to a greater extent than that of the GoF. This is especially true when get into the implementation and architecture patterns. This is another reason I provide you with technology backgrounders along the way to better acquaint you with those .NET elements required to grasp the technology-specific material in this book. If you are very new to OO, please read Craig Larman's Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design from Prentice Hall 1997 . His General Responsibility Assignment Software Patterns (GRASP) provide some of the more basic object-oriented principles as applied to design patterns, such as low coupling, high cohesion, expert, etc.