C# 5.0 Unleashed Book Review
|In this version of the book the author still starts off by answering the question, "Why do we need another C# book?". I was asking myself that very question when I turned to the introduction of C# 4.0 Unleased which was the first version of this book I read. He says "In short, what sets this book apart from many others is its in-depth coverage of how things work."|
As far as C# 5.0 books go, I have read C# 5.0 in a Nutshell: The Definitive Reference, Pro C# 2012 and the .NET 4.5 Platform, Essential C# 5.0, and CLR via C# (Dev-Pro) . All very good books, very good!!! C# 5.0 Unleashed belongs on the shelf with them. The author does indeed break down the C# language in a unique and very enjoyable way.
The book starts out with a great overview of the .NET Framework and history of C#. The author breaks the history down by versions. The first two chapters will catch all those new to C# development up with the C# progression a lot of us lived through.
After that the author has two detailed chapters on .NET development and the C# language essentials. He then continues the rest of the book digging into all of the details of the C# language. I have listed the chapters below to give you an idea of how much is covered.
Chapter 1. Introducing the .NET Platform
Chapter 2. Introducing the C# Programming Language
Chapter 3. Getting Started with .NET Development Using C#
Chapter 4. Language Essentials
Chapter 5. Expressions and Operators
Chapter 6. A Primer on Types and Objects
Chapter 7. Simple Control Flow
Chapter 8. Basics of Exceptions and Resource Management
Chapter 9. Introducing Types
Chapter 10. Methods
Chapter 11. Fields, Properties, and Indexers
Chapter 12. Constructors and Finalizers
Chapter 13. Operator Overloading and Conversions
Chapter 14. Object-Oriented Programming
Chapter 15. Generic Types and Methods
Chapter 16. Collection Types
Chapter 17. Delegates
Chapter 18. Events
Chapter 19. Language Integrated Query Essentials
Chapter 20. Language Integrated Query Internals
Chapter 21. Reflection
Chapter 22. Dynamic Programming
Chapter 23. Exceptions
Chapter 24. Namespaces
Chapter 25. Assemblies and Application Domains
Chapter 26. Base Class Library Essentials
Chapter 27. Diagnostics and Instrumentation
Chapter 28. Working with I/O
Chapter 29. Threading and Synchronization
Chapter 30. Task Parallelism and Data Parallelism
Chapter 31. Asynchronous Programming
Chapter 32. Introduction to Windows Runtime
He has included a ton of diagrams that provide a visualization of the topic he is covering. The diagrams really help to speed up the learning process. They really help with the chapters on LINQ.
The author also includes tons of sidebars that are interesting and helpful. A few examples include "No PIA", "The Origin of the Name C#", "The Story of a Guy Called Jim... Or How the Dynamic Language Runtime was Born", "On Backward Compatibility and Keyword Reuse", "Functions are Data!", "Functional Techniques in C#: Currying", "Where does the Name Lambda Come From?", and "Don't Repeat Mistakes".
Some of my favorite sections of the book are ""The Evolution of C#", "Life Without LINQ", "Query Expression Syntax", "Co- and Contravariance", "DLR Internals", "The Holy System Root Namespaces", and "Classes Versus Structs".
The downloadable code for the previous versions of the book were in one solution. There was one project per chapter which makes it very easy to find the sample and use it while reading the book. At the time I am writing this review there is no download available. I pinged the author through his blog site, but the email came back as undeliverable. I am assuming it will be posted in the near future in the same easy to use format.
One bummer about this version of the book is that it no longer continues the theme of marking things by .NET version. In previous versions the author included an icon indicating which version of C# included the feature he is going to cover. This helped in an environment that ranges from 1.1 to 4.0. When I find myself in 2.0 code, and I am trying to use a feature I am used to having available since 3.0, I could take a quick look to see if I am nuts, or it is just missing because of the version I am using.
The bummer is cancelled out by the fact that when you buy the book you also get a code that allows you to download the .pdf, .epub, and .mobi versions of the book. It is nice to have access to the book everywhere I go without having to lug the 5lb tome around.
Pure is the one word I would use to describe this book. It is purely about the C# language. It briefly covers the Framework libraries that are available in the beginning of the book during the introduction, but then it is all about C# 5.0. 1700 pages of C# nirvana!!!
All in all I highly recommend this book. It is good for both the beginner and the advanced developers.
C# 5.0 Unleashed