Friday, November 03, 2006

Book Review: Accelerated C# 2005

I'm almost done with Trey Nash's Accelerated C# 2005 and I've got to say it's one of the best books I've read in some time.  The chart on the book's back cover bills it as something to read before Troellson's Pro C# 2005 and the .NET 2.0 Platform, but I think it's actually more advanced and much more readable than that book.

Trey's work is extremely well-written and comes in at a concise 400 pages.  He covers a wide range of topics in those pages, hitting everything from syntax to CLR underpinnings to generics to multi-threading.  His coverage on the workings of how assemblies get loaded and behave in the CLR is perhaps the best I've read on the topic.

The book is a great balance of small, fundamental details and more complex issues.  Examples of the first would include his clear explanation of the difference between using constants and readonly variables -- particularly since he clearly shows the impacts of making a decision for either kind.  Examples of the more complex issues would include his very clear, very understandable treatment of threading in C#. 

His discussion of the more complex topics are aided by solid examples which often start out showing how not to do things (highly useful) and moving to better ways of doing things.  (I should note I found one or two errors in the examples, but the general gist was always clear.)  He also scatters a number of good practices or solid design idioms throughout the book such as why Bridge patterns can be helpful in various situations.

Trey also makes occasional, pertinent examples with IL to discuss particular issues, such as how coding things two different ways might end up generating the same IL.

Additionally, there's some good design-level items in the book.  There's a lot of pro/con discussion on a number of issues such the drawbacks to inheritance, and there's a VERY good discussion of implementing contract-based design via interfaces as compared to abstract classes.

Overall this is one of the best C# books I've read.  I'd put it at a level close to Bill Wagner's Effective C#: 50, which is pretty much the pinnacle of C# books as far as I'm concerned.

No comments:

Subscribe (RSS)

The Leadership Journey