.NET Book Recommendations

Last updated Mar 14, 2003.

When I wrote my book recommendations last year, .NET 3.5 had only been out for a few months and the new books hadn't caught up. With the many changes and additions to the .NET Framework as well as the .NET languages, there was a real need for books that describe the new features. The books were in production, just not quite ready.

That's changed now. There have been lots of new .NET books in the last year. Something really interesting to me is that many of these books are also available in Adobe PDF versions at a somewhat lower price.

Here are my recommendations for .NET books in several different categories.

Programming in C#

It's been a really long time since I needed a beginning programmer's text. There are many available, and from what I've seen any one of them will get you started. I particularly liked James Foxall's Sams Teach Yourself Visual C# 2008 in 24 Hours: Complete Starter Kit, which covers what you need to know to get started and also includes the free Microsoft Visual C# 2008 Express Edition on DVD.

If you're a programmer coming from another language, the selection of introductory C# texts is maddening. You don't want a "how to program" book, but rather a "how do I do that in C#" book. Those kinds of books are few and far between. I'm not the best judge of these things, considering that I already know C#, but from my perspective C# 2008 for Programmers, 3rd Edition by Paul J. Deitel and Harvey M. Deitel looks like the kind of book I would have wanted to learn C# from.

The definitive C# reference is The C# Programming Language, 3rd Edition, by Anders Hejlsberg, Mads Torgersen, Scott Wiltamuth, and Peter Golde. You can't get better information than from the language designers and implementers themselves. If you're writing C#, you should have this book.

The major new technology in .NET 3.5 and C# 3.0 is LINQ: language integrated query. And, boy, is it a mouthful. Paul Kimmel's LINQ Unleashed: For C# will tell you everything you need in order to get started using LINQ in C# 3.0. No, more than just to get started. This book covers LINQ in great detail. If there's something you need to know about LINQ, it's probably in this book.

Bill Wagner's More Effective C#: 50 Specific Ways to Improve Your C# Code is essential if you're serious about writing effective C# programs. The difference between a working program and a robust, high performance application is often found in language or Framework details that aren't covered well in the product documentation, but which Bill Wagner covers in detail.

Programming in Visual Basic

There are many beginning Visual Basic programming books, most of which I haven't even flipped through. I kind of like Sams Teach Yourself Visual Basic 2008 in 24 Hours: Complete Starter Kit. It looks to be comprehensive in its coverage of the basics, and the DVD includes Microsoft Visual Basic 2008 Express Edition--the free Visual Basic development environment.

Surprisingly, although there are many beginning Visual Basic books, I see very little in the way of advanced texts. It seems that Visual Basic programmers are left having to read C# texts and translate. If there are advanced Visual Basic texts out there, somebody please let me know.

General .NET

I still recommend David Chappel's Understanding .NET, 2nd Edition. Although written for .NET 2.0, it's still very relevant to the current version of .NET. The details of the underlying framework implementation have changed considerably since this book was written, but the basic concepts remain unchanged.

If you want to know everything about what Visual Studio can do, you probably want to read Microsoft Visual Studio 2008 Unleashed. I haven't read this book in detail, but the few parts I've read and the rest I've skimmed makes me think it's a comprehensive and very worthwhile book if you need to use Visual Studio's more advanced features.

If you're developing reusable libraries for .NET, then you need to adhere to the Framework design guidelines so that your libraries' APIs will be consistent with what clients using your libraries are familiar with. As a user of libraries, there's little as frustrating as an API that's just wrong--does things totally different from the way that the .NET Framework APIs do things. The best description of the .NET Framework conventions I've seen is in Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition, by Krzysztof Cwalina, and Brad Abrams. These two members of the .NET team explain not only what the conventions are, but why those conventions exist. Reading and understanding the information in this book will improve your code, reusable library or not.