Product Details
CLR via C#, Second Edition (Pro Developer)

CLR via C#, Second Edition (Pro Developer)
By Jeffrey Richter

List Price: $59.99
Price: $37.79 & eligible for FREE Super Saver Shipping on orders over $25. Details

Availability: Usually ships in 24 hours
Ships from and sold by Amazon.com

49 new or used available from $24.68

Average customer review:

Product Description

In this new edition of Jeffrey Richter’s popular APPLIED MICROSOFT .NET FRAMEWORK PROGRAMMING, you get focused, pragmatic guidance on how to exploit the common language runtime (CLR) functionality in .NET Framework 2.0 for applications of all types—from Web Forms, Windows® Forms, and Web services to solutions for Microsoft SQL Server™, Microsoft code names "Avalon" and "Indigo", consoles, NT Service, and more. Targeted to advanced developers and software designers, this book takes you under the covers of .NET for an in-depth understanding of its structure, functions, and operational components, demonstrating the most practical ways to apply this knowledge to your own development efforts. You’ll master fundamental design tenets for .NET, and get hands-on insights for creating high-performance applications more easily and efficiently. The book features extensive code examples in Microsoft Visual C#® 2005.


Product Details

  • Amazon Sales Rank: #18300 in Books
  • Published on: 2006-03-22
  • Original language: English
  • Number of items: 1
  • Binding: Paperback
  • 736 pages

Editorial Reviews

From the Publisher
The author shares insights direct from the Microsoft .NET development team, his own real-world expertise, and hands-on code examples to illustrate how to most effectively use the CLR and the .NET Framework 2.0 for smart client, Web, and mobile applications

Key Book Benefits:

• Delivers a thorough grounding in .NET Framework architecture, the runtime environment, and other key topics

• Provides extensive code examples in Visual C#

• Features authoritative, pragmatic guidance on difficult development concepts such as generics and threading

About the Author
Jeffrey Richter is a cofounder of Wintellect, a training, debugging, and consulting firm dedicated to helping companies build better software, faster. He is the author of APPLIED MICROSOFT .NET FRAMEWORK PROGRAMMING (Microsoft Press, 2002) and several other Windows programming books. Jeffrey is also a contributing editor to MSDN® Magazine where he authors the .NET column. Jeff has been consulting with the Microsoft .NET Framework team since October 1999.


Customer Reviews

If Microsoft .NET Was a Board Game, This Would be the Start Square5
At the heart of Microsoft .NET is the CLR. .NET development is primarily about directing the CLR. But how can you do that if you don't really know what the CLR is or what it can do?

Most .NET programming books are language centric. The capabilities of the CLR are implied based on the description of the language. Jeffery Richter's book is CLR centric. It describes what the CLR can do and how it does it. C# is used to provide practical examples of how to direct the CLR.

The book clearly and efficiently presents vital information that you'd spends days trying to discover by either pouring over MSDN or writing test applications. Highlights include:

* how source code is converted to IL, stored, managed, and executed
* a description of the code metadata available at run time and how it is used
* how data is classified, organized, and managed
* a description of the members that make up a class (fields, methods, etc.)
* how to handle exceptions
* how garbage collection works
* how reflection works
* how to write multi-threaded applications

Throughout the book there are many warnings about pitfalls and gotchas. The execution efficiency of different approaches is explained for many situations.

I urge any .NET developer who doesn't really understand the CLR to read this book.

A must-read5
If you're this kind of .NET developer who understood that the more you know about the CLR the better your code will be, this book is a MUST-READ. You'll find information available nowhere else at almost every page.

I really enjoyed the numerous digressions about reasons why MS engineers designed the CLR and the Framework the way it is. For example you'll find answers to tricky questions such as:


Why the C# compiler uses a callvirt IL instruction (and not a call IL instruction) when calling a non-virtual instance method?

What are the rare cases when you should consider using the Explicit Interface Method Implementation? (EIMI)

How the underlying processor architecture and volatile memory access are related in the CLR sphere?

How .NET framework classes with many events such as System.Windows.Forms.Control are designed to save memory at runtime?

And many many many more.


I also liked the fact that J.Richter is one of the very few who has enough knowledge on the subject to criticize some design choices made by MS. Often some alternatives for future .NET releases are proposed.

Clearly, if you are a beginner this is not the first .NET book you should read. But if your goal is to become a.NET expert, then know that you'll end up by reading this book.

Good book with caveats5
This is a good book, considering it is primarily a reference/internals book. Those are notoriously hard to write and also be easily consumed. A bit dry at times, but for the most part is readable. The book also has minimal errors and is logically structured.

A couple of observations:

1. An experienced developer will benefit more from the content that someone with less experience or someone that is new to .NET. This book covers a lot of fundamentals, but you will learn more if you have time writing code in C#/.NET 2.0.

2. The factual content is quite useful, and most other books don't even come close to this. In addition to the facts, Jeff injects some of his opinion. An experienced developer will recognize these segments as opinion and reconcile that with the realities of their own work environment.

For example, Jeff prefers using the formal CLR syntax for primitive types over the C# shorthand (e.g., "Int32" instead of "int"). This of course is a matter of preference, and will most likely be determined by the coding styles and practices at your workplace.

Jeff also does not like Properties, and wishes that Microsoft had not included them as part of the framework. Again, an experienced developer will probably not read this and immediately stop using properties. It is not inconceivable however, that an inexperienced developer may read it and develop a bias against properties, something that may not be advisable.