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.
Cloud management is difficult to do manually, especially if you work with multiple cloud…
Azure’s scalable infrastructure is often cited as one of the primary reasons why it's the…
https://www.youtube.com/watch?v=wDzCN0d8SeA Watch our "Unlocking the Power of AI in your Software Development Life Cycle (SDLC)"…
FinOps is a strategic approach to managing cloud costs. It combines financial management best practices…
Using Kubernetes with Azure combines the power of Kubernetes container orchestration and the cloud capabilities…
In the intricate landscape of modern business, compliance is both a cornerstone of operational integrity…
View Comments
Thanks very much for the full explanation instead of just saying No. Look forward to a future edition should the CLR be updated.
Jeff,
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?
Thanks.
Thanks for the update Jeff.
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.
What LINQ book you can recommend as expert ?
Hey Jeff,
I m reading CLR via C# book right now and i found it excellent.
Regards,
Hardik Joshi
tech2hard@gmail.com
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 ..
Cheers!!
Yours eternal fan
Srivatsa
srivatsahg@gmail.com
Jeff,
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?
Thanks
John
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!?
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.