Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have been a C++ programmer for last several years with a bit of C# here and there. In my latest job, I work heavily on C#. I picked most of my C# by following the code-base or random google searches on what I wanted to do at that point (like threading in C#).

I feel a time has come to invest some time into understanding the language internals and also understanding the .NET framework from an architectural point of view.

Can someone recommend the "gold standard" text/resource for accomplishing these? What about that resource makes it the best? What were your experiences with it?

share|improve this question

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

closed as off-topic by Snowman, Ixrec, durron597, gnat, ratchet freak Apr 28 '15 at 14:08

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking us to recommend a tool, library or favorite off-site resource are off-topic for Programmers as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." – Snowman, Ixrec, durron597, gnat, ratchet freak
If this question can be reworded to fit the rules in the help center, please edit the question.

From the FAQ at stackoverflow...… – jmq Mar 3 '11 at 3:02
I gave a link below to the stackoverflow FAQ on this question... funny. They should have directed you to their own FAQ. – jmq Mar 3 '11 at 3:26
See also answers to… – Eric Lippert Mar 3 '11 at 19:01
I would be hard pressed to call anything "canonical" but Pro C# and the .NET 4 Platform is my favorite reference for all things C#. – Gene Temple Dec 24 '11 at 4:55

CLR via C#.

The book cover topic regarding various aspect of the CLR and how the MSIL works. It is a great book if you want to understand code generation, how the GC works and using reflection in .NET.

share|improve this answer

You might have heard of Jon Skeet. I'd highly recommend his book, C# in Depth 2nd edition, as a great place to start with, well, getting into the depth of C#.

Some reasons why it is a great book worth the time reading:

  • Jon Skeet is a brilliant mind and a brilliant writer -- he takes some very nuanced technical material and distills it into readable and digestible text.
  • The book provides great context -- the 2nd edition is targeted at .NET 4.0 but it walks you through 1.0 and 2.0 to get there. You can't really understand today without understanding where the stack came from.
  • Manning is a great technical publisher. DRM-free PDF ebooks are better than sliced bread.
share|improve this answer

I second @TJ Bakre's suggestion of Jeffrey Richter's fine book for really getting into the CLR. But, if you're looking for a wide-coverage book that also goes into some significant depth I can recommend C# 4.0 Unleashed as a way to get from basic familiarity with C# to prepare for the dive into the deeper levels treated by Richter and Skeet.

Note: While I understand the general prejudice against the Unleashed series that prompted @IAbstract (and now another) to punish me for my initial response, I do not believe he has fully examined this particular volume in the series. Bart De Smet frequently takes a feature of the most recent version of C# down to the CLR and gives a reader a way to move from an outer layer to the inner without requiring them to make the jump wholesale. Note that I did second the recommendation of Richter's book for the truly serious learner. As I read the OP's phrasing of the question, I formed a picture of someone who is trying to get to the point where Richter and Skeet can take over and lead them through the rest of the long journey towards a really deep understanding. Personally, I'm pretty deep in .NET and I still find some of De Smet's somewhat shallower dives to be useful to my understanding. I stand by my recommendation when taken as a connector to the other two recommendations.

Actually, though, I deserve to be "dissed" because the OP was asking for a single "canonical" source and I recommended something this side of that and did not actually answer the question as stated. My bad!

share|improve this answer
I consider any of the Unleashed books to be beginner overviews - just enough to whet your appetite, not anything that gets to the internals ...certainly not like the other referenced works by Skeet and Richter. – IAbstract Aug 24 '11 at 23:22

You want to look at C# In Depth Second Edition and the C# 4.0 Specification. In opinion, these are all that you need.

I've also read CLR via C# both (second and third editions). It's a good book too, but I would definitely go with Jon Skeet's book before this one if you have to pick. It's more about the CLR, where the others will tell you about C#.

You'll also want to check out Eric Lippert's blog: Fabulous Adventures in Coding.

share|improve this answer
Lord Skeet himself wrote that book. The guy who found compiler bugs. That is a good book no doubt. – Sergio Mar 2 '11 at 19:16

protected by gnat Apr 26 '15 at 18:12

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.