CLR via C# will NOT be updated for .NET 3.5

21 Comments February 18, 2008

I get a lot of e-mails asking me if I will be updating my CLR via C# book for .NET 3.5. This blog entry will asnwer this question.

Here is the short answer: NO, I am not updating the book.

Here is the long answer: My CLR via C# book was last updated for .NET 2.0 and I have no intention of updating the book for .NET 3.0 or .NET 3.5. The reason is because my book is really about the CLR and .NET 3.0 and 3.5 still run on top of CLR 2.0.

.NET 3.0 and 3.5 is really CLR 2.0 plus some new DLLs that contain new class libraries for WPF, WCF, WF, Addin support and Linq support. My book has never covered any ancillary class libraries; it has always focused on the CLR itself and the small subset of class library types that talk directly to the runtime engine. 

In addition, .NET 3.0 shipped with C# 2.0 and so no changes were made to the C# language/compiler either. Of course, .NET 3.5 does ship with C# 3.0 which does offer many new features (automatically-implemented properties, implicitly typed local variables, extension methods, lambda expressions, object initializers, anonymous types, implicitly typed arrays, partial methods, query expressions, and expression tress). However, all of these features are just compiler syntactic sugar to make syntax easier for programmers. Many of these features are very simple to understand and grasp so I feel that it is not worth updating my book just to cover the new syntax offered by C# to accomplish things you already could do.


While many of the C# 3.0 features are needed to fully leverage the various set of LINQ technologies (Linq to Object, Linq to XML, Linq to Sql, Linq to DataSet, and Linq to Entities). And, while I will address the new C# language features in some future edition of my book (to coincide with the release of a new CLR version), I will never cover LINQ itself; just the architecture that makes LINQ possible.

Also, I just recently completed updating my Windows book (Windows via C/C++, 5th Edition, Microsoft Press) for Windows Vista and Windows Server 2008. 


  • Gravatar Image
    Justin_H February 18, 2008 8:59 PM

    Thanks very much for the full explanation instead of just saying No. Look forward to a future edition should the CLR be updated.

  • Gravatar Image
    Rene February 22, 2008 1:53 PM


    I use your book *a lot* for reference, so much so that at this point pages are coming apart.

    I would like to know if is possible to get your book as an electronic book (eBook), not only because this way I won’t have to worry about the book coming apart but also because it would make searching for a particular subject *so much* easier.

    Is this available now, if not, are you planning to make something like that available?


  • Gravatar Image
    Gaurav Sharma March 10, 2008 2:26 PM

    Thanks for the update Jeff.

  • Gravatar Image
    Nishanth Nair April 10, 2008 10:48 PM

    Good stuff. I dont think lot of people realize that .NET 3.0 and .NET 3.5 uses CLR2.0 and the only difference is the new Libraries added to the framework.
    Thanks Jeff.

  • Gravatar Image
    dc April 15, 2008 4:55 AM

    What LINQ book you can recommend as expert ?

  • Gravatar Image
    hardik joshi May 6, 2008 11:55 AM

    Hey Jeff,

    I m reading CLR via C# book right now and i found it excellent.

    Hardik Joshi

  • Gravatar Image
    Srivatsa May 22, 2008 12:32 AM

    Hi Jeff

    There is no better book that shows the magical world of C#.NET than "CLR via C#".... Programmers like us are very lucky enough to get mentors like you... Keep up this spirit of helping our programming folks ..


    Yours eternal fan

  • Gravatar Image
    John Meek June 13, 2008 10:16 PM


    Even though I have your CLR via c# in paper I would really like to have it on my Amazon Kindle it would be so much easier to read. So how about it?


  • Gravatar Image
    Lukas July 3, 2008 8:26 AM

    hi jeff!

    you did a very good job writing clr via c#!

    however i asked myself the question ....

    how could it be possible that a struct e.g DateTime is derived from the class ValueType.

    if i try to derive a struct from a class the compiler tells me that the given type is not an interface
    normally it is not possible to derive a struct from anything even not a struct itself!?

  • Gravatar Image
    JeffreyR July 3, 2008 11:57 AM

    All .NET languages and the clr itself treat ValueType very special. They are always implicitly derived from System.ValueType but langauges never let you specify this explicitly. ValueType overrides some virtual methods that Object has like Equals & GetHashCode.

  • Gravatar Image
    Falaque Shadab Dani November 23, 2008 1:19 AM

    Thanx for such a nice book, and also thanx for giving complete answer instead of saying just no.

  • Gravatar Image
    Sharon February 25, 2009 2:16 PM

    Thanks for this post. I'm about to buy the book, and I wondered if I should hold off in case an updated edition was coming out, or if the info had become stale, but here you've explained that it's still just as relevant. Exactly what I needed to know! Off to Amazon I go...

  • Gravatar Image
    Andy White March 10, 2009 1:39 AM

    Thanks for the comment, I was wondering if there would be a new edition coming out, but it makes complete sense. I'll look into getting the 2nd edition!

  • Gravatar Image
    Himanshu Singh May 4, 2009 4:34 PM

    Thanks for this post. Your answer had actually made my opinion about how to keep in pace with Microsoft rapidly chanding .NET versions is by keeping your base fundamentals clear and take abstractions/additional advantageous stuff as add ons. I always believed and conveyed to my friends that please stick to CLR 2.0 until there are no major updates. But getting answer from CLR guru itself makes my point more stronger. Waiting for new updates on CLR, whenever to come.

  • Gravatar Image
    Syed Tayyab Ali June 20, 2009 3:43 AM

    Yes, CLR via C# deal with basic concept of CLR. It is true for all latest version of .net.

  • Gravatar Image
    Karan Sharma October 18, 2009 7:44 AM

    Hello jeff,, thnks for the update... i just finished up reading a chapter on Delegates from CLR via C#........there i found something which confused me... most of the books and articles i have read say that execution sequence of methods in multicast delegates is not fixed and we should not rely on that... but according to your's explanation on Invoke method and _invocationList... i feel it will always be executed in whatever sequence you are chaining them... is this correct or Am i missing some hidden point

  • Gravatar Image
    JeffreyR October 18, 2009 11:16 AM

    Officially, MS has never guaranteed the order in which delegates will be invoked. And so, they could change the implementation of delegates and break the existing order. However, MS owuld have to have a very good reasn for doing this because it is potentially a breaking change. So, I don't think they'll ever change the callback order as I can't imagine some extremely important new scenario where breaking the order would be necessary.

  • Gravatar Image
    Joel Lister November 11, 2009 6:28 AM

    Hi Jeff,

    Great book , I spent 4 months reading it cover to cover and now frequently dive into it to help my understanding of the CLR.

    I can see why you did not update the book for .net 3.5, however what about the up coming release of .net 4.0?

    Will you be releasing a book update for this?

  • Gravatar Image
    Joel Lister November 24, 2009 4:21 PM

    Ah, I guess I should have searched your blog before asking that question.

    Only problem now is that we have to wait til next March!

  • Gravatar Image May 10, 2010 7:46 AM

    i like this

  • Gravatar Image
    Manjur Alam February 19, 2013 11:20 PM

    CLR via C#, it's awesome.

Have a Comment?