In the old-fashioned variety of architecture -- the kind that applies to buildings, houses and other physical structures -- Christoper Alexander's famous books The Timeless Way of Building (1979) and A Pattern Language (1977) helped to revolutionize that field. Their fundamental insight was that certain kinds of structural usages or arrangement recur repeatedly in the most workable and successful structural designs. These are known as "design patterns" and represent a compressed type of best design practice that all wise architects incorporate into their own work.
Erich Gamma, Richard Helm, Ralph Johnson, and John Vissides took this idea and ran it deep into the software realm with the publication of their own seminal work Design Patterns: Elements of Reusable Object-Oriented Software in 1995. In the intervening 11 years since its publication, design patterns books for programs have proliferated wildly -- a quick search at Amazon on software titles that include "Design Patterns" in their names produces 61 hits, of which more than 40 are unique.
Suffice it to say that design patterns is an idea whose time has come, and whose application serves developers well in all kinds of object-oriented environments, including .NET and its related programming languages. That probably explains why six titles from the aforementioned list target .NET specifically (visit Amazon and search on ".NET design patterns" to see them for yourself). It's probably no accident that three of these books tackle VB.NET, two deal with general .NET design patterns, and the last with C#.
There's another online resource that fits into this picture as well. It's the Code Project's Commonly Used .NET Coding Patterns pages. Free to anyone who cares to stop by and inspect its contents, this site makes an interesting and convincing demonstration of the power and utility of the design pattern concept. It works with the .NET Code Document Object Model, aka CodeDom, which is of particular interest to those working with C# and ASP.NET.
There, you'll find the following patterns described and exemplified (with links to each one for easy reference or access):
Those interested in learning more about design patterns are advised to check out the general Design Patterns software book cited earlier here, or perhaps to dig into the general or C# .NET books that are easy to find on Amazon. Those ready to dig in will find useful ammunition at the Code Project's Web site.
Ed Tittel is a writer and trainer whose interests include XML and development topics, along with IT Certification and information security. E-mail email@example.com with comments, questions, or suggested topics or tools to review. Cool tools rule!