- Save 10% on selected children’s books, compliments of Amazon Family Promotion exclusive for Prime members .
CLR via C# Paperback – 14 Feb 2010
Special offers and product promotions
Customers who viewed this item also viewed
What other items do customers buy after viewing this item?
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
If you are a seller for this product, would you like to suggest updates through seller support?
About the Author
Jeffrey Richter is a cofounder of Wintellect (www.wintellect.com)-a training, debugging, and consulting firm dedicated to helping companies build better software faster. He is the author of the previous editions of this book, Windows via C/C++, and several other Windows-related programming books. Jeffrey has been consulting with the Microsoft .NET Framework team since October 1999.
Top customer reviews
There are two key camps in professional development: those who use the tools and those who understand the tools and the tooling concepts. CLR via C# succeeds in the latter by helping developers understand the code they write, the consequences that will occur and how to mitigate their current coding habits.
With topics wide ranging from how the execution of .NET applications is achieved through to AppDomains and assembly loading, anybody producing quality performant applications needs to read this book.
The book is split into five main areas: CLR Basics, Designing Types, Essential Types, CLR Facilities, and Threading.
Especially good is the section on threading, in my experience most developers do not understand threading sufficiently to produce solid reliable applications and Jeffery's book will help them avoid making key mistakes with threading.
As with any developer text, there are some personal preferences of the author which shine through, some of which you will agree with and some not, but all the advice is good.
CLR via C# is solid and well written as you could wish for from such an expert in their field.
.NET makes it far too easy to start developing applications without real in-depth knowledge, the entry barrier is much much lower than C++ (and dare I say Java), this comes with a drawback. The average programmer - like me - knows much less than the average programmer in those other languages. This book helps you take a step to separate yourself from the average knowledge. It goes into deep details of what goes in the CLR, the IL produced when you write code, performance issues, new constructs in C#4 etc... The result is a huge mindset shift, you don't simply write code that works but you actually think about how is it compiled and JITed, and you start thinking of using tools like the disassembler for the first time! Highly recommended.
There isn't a single book I have read on the subject of .NET that comes close to explaining how it really-really! does work.
When working with C# for a couple of years, having no C or C++ background, you start asking questions like
- What is the CLR?
- How does the Garbage Collector work?
- Why should I declare classes as virtual?
- Whats the actual difference between declaring something static, and assigning it in a static constructor?
- What are the best practices for locking and multi-threading?
- Is an array of value types (like int) a value type, or a reference type?
Ok - you may have not asked these questions, but I certainly had! With the vastness of material on the internet, conflicting opinions on Google vs the wealth of information on MSDN, I certainly found it very difficult to nail down an exact explanation in sufficient detail to keep me happy. Whats more, it left me asking more questions, doing more research and again, finding that the detail on the Internet is overwhelming.
What CLR via C# does do is give you an in-depth explanation of why C# is the way it is. It takes you through the components of the language and explains the semantics around why it is implemented in a particular way. But it isn't just a regurgitation of the CLS (Common Language Specification). This book explains WHY it is that way.
Since reading this book, I have become extremely confident in my approach to development practices. Naively, I always assigned variables to null, just to "free up space more quickly" - that doesn't happen. I pre-maturely optimised code - no need. I called GC.Collect() when I wanted more memory, because I wanted it! Bad idea. But I also learned about correct usage of constructs, which is something I was still unsure about.
I also want to emphasise JR isn't bowing at Microsoft's knees and praising every single features implemented. He does have his reservations on certain features of the language and has good reasoning behind doing it a different way.
Finally, although this book does go into the depths of the C# language, it isn't inaccessible as a general read. Each chapter covers a completely different feature of the language, so it has been easy to skip back and forward between chapters. The book is well cross-referenced should you need to revisit a chapter to improve your understanding.
I would like to also convey that this book has changed my understanding of C#, cleared up bad assumptions made and also gave a central resource for me to go back to again and again.
I have also e-mailed the author a few times and he has been extremely helpful and thorough in answering my questions.
The book was recommended to me after I read C# in Depth and I congratulate James Lanng as this is a perfect next stage in your C# reading list!
Would you like to see more reviews about this item?
Most recent customer reviews
As an experienced developer I was expecting little more on performance improvement and practical examples.