I’ll begin by thanking www.mspress.com.au for providing me with a free copy of this book to review.
Programming Microsoft Visual C# 2008: The Language was written by Donis Marshall and is published through Microsoft Press. It is intended as “the definitive language reference for Visual C# 2008” and from reading it, that is a description I’d agree with.
Coming from a strong Java background and being aware of the large similarities between C# and Java, I had often been interested in a book that could describe the C# language from a more experienced point of view without having to reteach the basics of programming or spending large amounts of time describing how to create a Visual Studio project or how to create a drag and drop GUI. This book is exactly what I’ve been looking for and I have quite enjoyed reading through it.
The book begins by covering the core C# language; the basic control structures, the type system and inheritance. It then moves onto more advanced topics with entire chapters devoted to such topics as exceptions, collections, LINQ, generics and enumerators. A single topic is spent covering how to use Visual Studio 2008 and to my enjoyment covers building and deployment alongside other less interesting topics such as setting the syntax highlighting colours. Each chapter is filled with useful examples and descriptions which are both easy to read and informative. The chapter structure allows knowledgable readers to skip ahead to specific parts of the language as they please in order to revise or supplement what they already know.
The last third of the book is perhaps the most interesting, with three chapters covering debugging. Surprisingly one of the chapters covered MSIL programming which is the bytecode format that .NET applications are represented as before execution and was a rather fascinating read. The chapter covering debugging with Visual Studio 2008 was also fascinating to read and is filled with detailed information and useful tips and tricks for debugging .NET applications and interpreting the output of the various debugging tools provided with Visual Studio 2008.
The book spends more time discussing the C# language itself than covering how to use Visual Studio, which for some might be a turnoff. It’s also not the best place to start for those with no or little programming experience as it very much assumes the reader actually has familiarity with computer programming in general.
This book comes highly recommended for those who wish to learn C# and already have computer programming experience. It’s general enough that the contents can be applied not only to Visual Studio but to other C# environments as well such as Mono and it covers all of the latest languages allowing readers to get up to speed with C# and .NET 3.5 as quickly as they need to.