Pattern recognition just might be the fundamental operation of human intelligence. Once Christopher Alexander recognized that patterns exist in good buildings , it wasn't long before software developers began talking explicitly about the patterns that exist in good code. What took us so long? Reusing not just code, but also the way we create that code, makes good sense.
One of the most important bodies of reusable code today is the class library that's part of the .NET Framework. This very large set of software provides standard ways to manipulate XML documents, create GUIs, communicate with other systems, and much more. Learning to use at least some parts of this library is a fundamental task for any Windows software developer.
Yet learning this technology alone isn't enough. Understanding how a particular .NET namespace works doesn't automatically give you the intellectual tools necessary to apply this understanding effectively. Figuring out which patterns work best in a given .NET context is a critical part of creating a good solution.
That's where .NET Patterns: Architecture, Design, and Process comes in. In this book, Christian Thilmany combines the abstractions of the design patterns world with the concrete development approach embodied in .NET. The result is a collection of ideas ”guiding practices as well as more formal patterns ”that will be useful for a large set of .NET developers. Some of them are generic enough to be used by anybody working in any software environment. Others depend specifically on some aspect of .NET, which is exactly what you'd expect from a book with this focus. In either case, software professionals working in the .NET world can gain from the experience of those who've gone before.
The design patterns movement has long been a fixture of the Java community. I'm happy to see that with the arrival of .NET, the Microsoft world is also explicitly embracing these ideas. This book is a valuable step down that road.