Patterns & Practices
A design pattern is a general reusable solution to a commonly occurring problem in software design
-Wikipedia
 

Developing software in the .NET Framework 2.0, 3.5, and SharePoint.