Page 1 of 2
If you are looking for a book on C# you are likely to be overwhelmed by the sheer number of titles on offer. In Programmer's Bookshelf we trawl through our reviews, to find ones you might find helpful at specific stages and for different purposes.
I Programmer's book reviewers read over 200 programming titles per year. That's only a fraction of the programming books published, but we try to cover the important ones.
In the case of C# we have around 30 published reviews and the article picks out key points from those that scored at least a 4.
If you want to read more of the original review click in the link in each title. The thumbnails of the book jacket in the side panel provide links to the Amazon website.
If you just want to view the book's product details (without making a purchase) click in the top portion of the thumbnail to open the book's product details page. If you do decide to buy a book via Amazon, accessing it from a link on I Programmer means that we are credited with a few cents - so thanks to all of you who support us in this way.
C# has just turned 10 years old and, with C# 5.0 in prospect, this is a language which can now be considered mature. It isn't without its problems - see Was .NET all a mistake - but if you are in Windows environment then it is a language you can't ignore. So what books are there that will really help?
The top rated book for the beginner who also want to get to grips with OOP (objected -oriented programming) is Beginning C# Object-Oriented Programming (Apress, 2011) by Dan Clark. Nikos Vaggalis, who awarded it the 5-star rating explains:
Most books on teaching programming languages focus too much on the language and syntax rather than the OOP concepts. This book reverses that process by using the language as the medium to teach OOP and design concepts and not the other way around - this is a subtle but very important point.
The first half of the book concerns itself with system analysis and design using UML; identifying requirements, breaking the system down into parts and applying diagrams to imprint the relationships and messaging between those components. After that it goes into more practical territories and after a short intro to the .NET framework and Visual Studio provides a hands-on exploration of C#.
While Essential C# 4.0 (Addison Wesley, 3rd edition, 2010) isn't a book for the complete beginner, reviewer Mike James considered it:
a good choice for any programmer making the transition from another language
and gave it a 5-star rating.
Author Mark Michaelis starts from the very basics - with a Hello world program - and goes through the foundations of the language - data types, flow control, methods, classes, Inheritance, Interfaces - before reaching more advanced topics such as delegates, the effect of LINQ on collection objects, reflection, PLINQ, multi-threading using the Task Parallel Library, interop and the CLI.
His book reads like a cross between a reference work and an informal discussion of C# and focuses on the C# language itself, rather than the whole of the .NET framework. It only strays from its core topic if it illuminates the way the language is used.
Jon Skeet's C# in Depth, 2nd Ed (Manning) is a book that got an enthusiastic recommendation for intermediate-level C# developers. In his review of the second edition which covers C# 4.0 Nikos Vaggalis commented
The author's excitement really shines through the book, making it lively and animated.
Rather than being a run-of-the-mill introduction to a single version of the language, this book looks at its evolution and pointing out the important properties that give the language character such as delegates, generics, lambda expressions, extension methods and more.
The review concludes:
Summing up, I would say that the book does not treat the language as just a tool but as a sophisticated mixture of programming concepts, technological innovations and coding practices. The didactic approach employed, and the looking behind the scene, renders this book not a mere presentation of the language and its syntax but as a classroom encapsulated in a book. You do take concrete knowledge away.
One book you might overlook when shopping for a book on the C# language is Jeffrey Richter's classic CLR via C# 3rd Edition(Microsoft Press, 2010). However, Mike James advises:
In many ways what the book is really all about is illuminating the way C# works via an understanding of how its facilities are implemented by the CLR.Thus the book is primarily about C#.
This is a book in the old style, focused on the mechanics of how things work and how to get things done, and as such it should be on the shelf of every C# programmer.
One highly recommended selection for intermediate to advanced programmers is Bart De Smet's C# 4.0 Unleashed (Sams, 2011). Its main disadvantage is its heavy and unwieldy size but this can be forgiven on account of its good explanations and comprehensive coverage.
The style is friendly, but ideas are introduced in a fairly technical style but without making things more complicated than they need be. There are lots of boxouts that provide background information and comments on exceptions and explanations that fit into a wider context. Don't expect to see any long examples - it isn't that sort of book. What examples there are demonstrate the ideas in the shortest possible code. You also won't find very many accounts of how to use use things in clever ways - this isn't a book of hints, tips and tricks, it's about principles.