Author: Joseph and Ben Albahari
Publisher: O'Reilly, 2010
Aimed at: All C# developers
Pros: A great reference to C#
Cons: Daunting for beginners
Reviewed by: Mike James
Despite being part of the “in a Nutshell series” this is a seriously thick book and the latest edition covering C# 4.0 adds some 200 pages to an already overstuffed volume.
The reason it is so big for a reference work is that it doesn't constrain its coverage to what you might consider the core of C#. Indeed the basics of C# are covered in the first three chapters and Chapter Four is entitled Advanced C# - less than 200 pages in total.
From this point the book moves into increasingly general territory focused mainly on the framework. Subjects covered include - collections, three chapters on LINQ, Garbage collection, diagnostics, streams and I/O, networking, serialization, assemblies, reflection, dynamic types, security, threading, parallel programming, asynchronous methods, application domains, interop and regular expressions. One big and obvious omission is any discussion of the UI - either Windows Forms or WPF.
You can see that the order and topics are something of a mess. Given that one of the problems in reading this book is its huge size it might have been better to write a more focused book on C# and a couple of other books on additional topics.There is a very real problem in reading this book caused by its size. You either have to decide to fold the thick brick open and put something on it to hold it open or break its spine so that in time pages are almost certain to fall out.
There is also the small matter that some of the new C# 4.0 topics - dynamic variables in particular - are set in their own chapters away from material that they naturally integrate with, i.e. variable typing.
Each of the short sections on a particular topic is very terse and the examples are very short. In most cases if you don't already know something about the topic then this isn't going to help. However, if you are trying to use some feature then it does form a sufficient reference for you to make a start. The book isn’t aimed at complete beginners and readers are expected to have some general programming experience.
This is a book C# programmers will find an useful addition to their bookshelves if they require a reference work on C# and the wider framework.