Visual C# 2005, A A Developer’s Notebook by author Jesse Liberty is part of a new type of series from O’Reilly. I have to say I really like this new series format. It’s quite a departure from the “animal” cover books that IT folks are familiar with, which tend to be more of a complete programmer’s reference to a technology. They tend to read more like a textbook, but the Developer’s Notebook series have a number of nice features that make them easy to check for quick reference on how to do particular tasks. Each topic starts with how to do a particular task, a “What Just Happened” section that explains what the code does and how it does it, a “What About” section that talks about related topics or sticky areas of the technology being discussed and finally a place to learn more.
The “learn more” areas tend to be links to MSDN or other Microsoft properties, which I guess is fine as the links tend to stay good for awhile and the content is generally top notch. Including this type of information may shorten the book’s shelf-life, but I’m not sure that’s a bad thing, as this is very timely information on new technology. In this situation it is extra helpful to have any additional resources where you can learn more.
Jesse Liberty is no stranger to writing, and is a good choice to author this book, having written 6 other books on .NET for O’Reilly. This book is very clearly geared to existing C# programmers who want to get up to speed on the new features of the language in the 2.0 version. I’ve worked a lot with C# and I’ve also been exposed quite a bit to various betas of the .NET 2.0 Framework and Visual Studio 2005. I think Jesse does a pretty good job at hitting the important topics developers need to know, and his writing style makes for an interesting read.
The book wastes no time in jumping right into generics, one of the most interesting new features coming in .NET 2.0 and one of the most useful. The book gives some good examples and a well-written overview of the technology, although those developers unfamiliar with the concept would probably do well to read a bit more elsewhere. Most of the other new language feature is covered, such as partial classes, nullable types and anonymous methods. I think the book does a pretty good job at getting across the point of these features with some clear examples and highlighting the most important concepts developers need to grasp to use them.
In general, Jesse does a great job at hitting the high points for the various topics covered. Writing a technology book that tries to cover a wide variety of topics can easily become a book not specific enough for anyone, but this book really cuts to the meat of what you need to know to hit the ground running on the new Framework. For instance, the chapter on Windows Forms discusses new features that will really help make developers more productive, like Toolstrips, Click-Once Deployment, the BackgroundWorker object and new layout options. The Web Applications chapter hits Master Pages, personalization, the new login controls and themes. In both these areas, there are enough new things going on that there will likely be whole books devoted to particular features.
But this book will give you a good idea of what to look into, what to learn more about and where to get started. I found many of the “What About” sections especially useful. They tend to target the kinds of questions many developers are likely to ask about a feature or they drill down into a subset of the feature of particular interest.
If you are looking for a quick way to figure out all the new stuff coming in the C# language, this book is jam packed with useful tips and the type of real information that will help you become productive on the new framework.