Monday, June 20, 2005
Book Review: Wagner's Effective C#
Here's a review I posted on Amazon.com regarding Bill Wagner's Effective C# from Addison-Wesley. The review's been slightly edited from what I posted on Amazon. Disclaimers: 1) I got this book for free from Addison-Wesley as a regular giveaway for our .NET Developers Group (www.DaytonDevGroup.net). 2) I attempted to get SRT Solutions, the author's consulting company, involved in a software development project several years ago. The project tanked due to customer constraints and other business issues not related in any way to Wagner or his company. End Disclaimers. Wagner's book is a terrific companion to books like McConnell's Code Complete, 2nd ed., or Kernhigan and Pike's The Practice of Programming because it's specific to C# and hits hard the implementation details of working in that language. I also think this book speaks to a wide range of readers. Certainly, seasoned developers will blow through this content, fine-tuning their coding methods or starting new ones. Wagner specifically points out how practices experienced C++ developers may use aren't good practices in C#. New developers also can greatly benefit from this book by using it to properly form development habits early in their careers. There are a large number of typos which really stinks because it needlessly detracts from an otherwise terrific work. A-W obviously had lousy proofreaders for this task. Wagner's writing is clear, concise, and targeted to helping developers understand the ramifications of various choices when working in the .NET Framework and C# specifically. Which brings me to a point: Don't skip this book as Just Another C# Reference. It most certainly ain't that. It's a terrific book on specifics for implementation. I also think it's got content which spans the gap from C# to other .NET languages. Not everything's applicable to VB.NET or COBOL.NET (Ick!), but there are still some sound general .NET principles. Good developers need to understand the ramifications of choices they make designing and implementing a system. Wagner's book is invaluable for this, and it certainly belongs on any C# developer's bookshelf.