At Boise Code Camp last month, I was able to get a free copy of O’Reilly’s C# 3.0 Pocket Guide, Second Edition, written by Joseph Albahari and Ben Albahari. Though O’Reilley publish the book in it’s “Pocket Guides” series, at 230 pages, it hardly counts. Still, the book has been a staple in my briefcase ever sense.
The book doesn’t only focus on C# 3.0 features, serving more as a comprehensive guide to C# language features, from the standard issues like Properties, to the fairly large number of pre-processor directives available. The 3.0 features might receive a bit more coverage than the older features, but even if you’d never touched C# before today, this book will serve as an excellent desktop companion to the language.
Unfortunately, since it is a general overview, it may not contain all the information you require to solve a problem. For instance, it’s section on Language Integrated Query (LINQ) is pretty short, which pretty much begs you as the reader to find a more in depth reference if you’re trying to get all you can out of LINQ (and if you’re a web-developer you really should be). Incidentally, the authors of this reference, wrote another Pocket Guide on just LINQ, which weighs in at 161 pages, which I suppose indicates I should be glad LINQ got the quality of coverage it did in this more general guide.
I’ve been a fan of C# since I first started looking at the language (which wasn’t until the Mono was well under way). It makes some excellent compromises between C/C++ and Java, and is fairly powerful. These days I’m tending more and more toward dynamic languages like Perl and Python, but C# is still generally a pleasure to program in, except for the ever expanding and increasingly obtuse .NET Framework Microsoft keeps churning out extensions to. To be fair to Microsoft, the .NET programming I’ve been doing lately has been against SQL Server and SharePoint, but those APIs could have been much better designed than they are.
If you do anything in C#, this reference would be an excellent one to keep on your desk. It’s clear, concise, with clean code examples. The authors do an excellent job of organizing the information and presenting it in a manner that any experienced programmer can easily follow what’s going on, and depending on your level of programming experience, this book can even serve to teach you the language.
.NET is a solid technology, and C# is the flagship language for the technology. If you’re doing any work in .NET, or simply want to learn the language for your own enrichment, the C# 3.0 Pocket Reference will be excellent to keep around.