 |
CLR via C#, Second Edition (Pro Developer) by Jeffrey Richter
Book Summary InformationAuthor: Jeffrey Richter Edition: Paperback Audio: English (Unknown); English (Original Language); English (Published) Published: 2006-03-22 ISBN: 0735621632 Number of pages: 736 Publisher: Microsoft Press
Book Reviews of CLR via C#, Second Edition (Pro Developer)Book Review: Are you a .NET developer? What? You haven't read this book? Summary: 5 Stars
Possess a driving license? That probably means you know the mechanics that makes cars work. Thereby the skill necessary to ferry ourselves to and from places in daily life.
Wait, what has this gotta do with reviewing a technical computing book?
Well, you knew incorrect air pressure worsens tyre grip, accelerates wear & tear, and reduces fuel efficient, right? You knew improper engine tuning may lead to unsynchronized valve and spark plug timings, resulting in severe loss of power, right? You knew air bubbles in brake fluid can result in inconsistent application of brakes and uneven deceleration, right? Ah, so many important factors of physics revolving around the science and engineering of motoring. Yet so subtle and unknown by the vast majority of motorists. And ignored. Never realising what performance-leaking sins they commit against their cars.
This very book will expose the fact that you are effectively guilty of the same level of ignorance with the .NET CLR as you go about your daily programming work.
There are tons of titles covering the use of technologies and frameworks that build on top of Microsoft's .NET Framework. By and large they are fine, fulfilling the needs of developers as they work on the real purposes of their jobs - delivering beneficial (or entertaining) value to users and industries. But so few step into that deeper realm to discuss the very thing that makes this all possible. The very heart of the .NET framework, at its core, the mighty execution engine known as the CLR. Jeffery Richter takes a different approach by removing the shroud of magic surrounding the CLR and the C# compiler, exhibiting the internals and explaining all the little crucial activitites it does behind the scenes so that programmers can carelessly forget and not bother.
He organises the book into five parts and twenty four chapters of excrutiating detail:
Part 1 CLR Basics
Chapter 1 The CLR's Execution Model
Chatper 2 Building, Packaging, Deploying, and Administering Applications and Types
Chatper 3 Shared Assemblies and Strongly Named Assemblies
Part 2 Working with Types
Chapter 4 Type Fundamentals
Chapter 5 Primitive, Reference, and Value Types
Part 3 Designing Types
Chaper 6 Type and Member Basics
Chapter 7 Constants and Fields
Chapter 8 Methods: Constructors, Operators, Conversions, and Parameters
Chapter 9 Properties
Chapter 10 Events
Part 4 Essential Types
Chapter 11 Chars, Strings, and Text
Chapter 12 Enumerated Types and Bit Flags
Chapter 13 Arrays
Chapter 14 Interfaces
Chapter 15 Delegates
Chapter 16 Generics
Chapter 17 Custom Attributes
Chapter 18 Nullable Value Types
Part 5 CLR Facilities
Chapter 19 Exceptions
Chapter 20 Automatic Memory Management (Garbage Collection)
Chapter 21 CLR Hosting and AppDomains
Chapter 22 Assembly Loading and Reflection
Chapter 23 Performing Asynchronous Operations
Chapter 24 Thread Synchronization
Take a good look at this list topics, and honestly ask yourself if you know everything about how the CLR facilitates all these? Most approach the CLR as a black box - I knew myself to be one - and in result only knew what was sufficient to work with it, which in turn developed quite a number of misconceptions about it. Jeffery Richter goes through chapter by chapter and puts me through a constant pace of surprises, shocks, and pure enlightenment. He goes as low a level as the CLR can operate, and communicates in terms of memory locations, CPU registers, and gives the repeated impression that many of the CLR automated activities we take for granted has a performance cost. The material he writes about are astounding and sometimes downright shocking. It goes an extremely long way to remove whatever misconceptions you may have about the CLR or compiler, influencing you to rethink about many of the habits and practices you have now.
Challenge some examples. Just a small number of matters. Did you know C# constants are really only good for referencing within its own assembly? Any referencing and use of constants in other assemblies are hardcoded at the MSIL level. Do you know the exact garbage collection sequence the CLR takes to identify generations of orphaned objects and housekeep the memory? What does it take to resurrect an object from the Freachable queue? Why are finalizers generally not recommended? How would you compare strings with the added dimensions of encoding and globalization cultures? How do you construct strings and convert types to and from strings? What are the implications of unboxing a Value-type object from a Reference-type variable and assigning values? Did you know an assembly need not necessarily be just a single .DLL file? How does the metadata for your types turn out in the assemblies as the compiler emits the IL equivalent of your code?
Each chapter brings to light information you never knew you needed to know. As much as possible, Jeffery Richter provides code samples and programs to demonstrate his points and prove the effect. He not only provides the information, but lists many alternative ways to achieving a said effect, along with pros and cons for each method. He is here to explain, not to sell the CLR, and does not hold back on what he honestly thinks are design flaws by Microsoft. At almost every junction, you will feel vulnerable by the knowledge he passes to you. If you ever felt snotty and arrogant over your knowledge of the .NET Framework, this book is the antidode to humble yourself. If you ever positioned yourself to learn more about .NET, you will surely rejoice with gladness.
For all the great depth to be had throughout the book, a topic that I found notably absent is how the CLR actually performs interoperability with unmanaged layers in the OS. There is only a brieft touch on it in the first chapter. The WIN32 and COM platforms are still cornerstones of Windows development; it would have been ideal for developers like myself who began development after the advent of the .NET Framework.
Even then, this is one book you'd repeatedly refer for years to come to double check you don't commit another subtle mistake. By the time you are half way or perhaps even a third way through this rich material, you would have understood the term "managed code" is a literal description and not a marketing buzzword at all.
Overall rating: 10/10
Good: In-depth tour under the hood; shocking revelations; you were wrong, and will rethink;
Bad: No true chapter and detailing of P/Invoke and COM interop mechanics; seriously, why is this not in the SDK?
Summary of CLR via C#, Second Edition (Pro Developer)Dig deep and master the intricacies of the common language runtime (CLR) and the .NET Framework. Written by a highly regarded programming expert and consultant to the Microsoft .NET team, this guide is ideal for developers building any kind of application—including Microsoft ASP.NET, Windows Forms, Microsoft SQL Server, Web services, and console applications. You?ll get hands-on instruction and extensive code C# code samples to help you tackle the tough topics and develop high-performance applications. Discover how to: - Build, deploy, administer, and version applications, components, and shared assemblies
- Design types using constants, fields, constructors, methods, properties, and events
- Work effectively with the CLR?s special types including enumerators, arrays, and strings
- Declare, create, and use delegates to expose callback functions
- Define and employ re-usable algorithms with interfaces and generics
- Define, use, and detect custom attributes
- Use exception handling to build robust, reliable, and security-enhanced components
- Manage memory automatically with the garbage collector and work with native resources
- Apply CLR Hosting, AppDomains, assembly loading, and reflection to build dynamically extensible applications
PLUS—Get code samples on the Web
Networking Books
|
 |
Business Applications Software: For the IBM Personal Computerby Lon Ingalsbe Maxwell Macmillan International; Published: 1991-05; Paperback; Book
Sams Teach Yourself Networking in 24 Hoursby Macmillan Publishing, MacMillan General Reference MacMillan Publishing Company; Published: 1998-07-01; Hardcover; BookPrice in other shops: $19.98
Glencoe Computer Applications and Keyboardingby Rice Glencoe/Mcgraw-Hill; Published: 1998-01; Hardcover; BookBest price: $4.73
ISDN and Broadband ISDNby William Stallings MacMillan Publishing Company.; Published: 1991-12; Hardcover; BookBest price: $8.00Price in other shops: $62.00
Networking Using Novell Netware Release 3.11by Emilio Ramos, Al Schroeder, Ann Beheler Macmillan Pub Co; Published: 1993-09-29; Spiral-bound; BookBest price: $156.00
Mastering Microsoft Windows Server 2008 R2by Mark Minasi, Darril Gibson, Aidan Finn, Wendy Henry, Byron Hynes Sybex; Published: 2010-02-02; Paperback; BookBest price: $33.24Price in other shops: $59.99
Storage Area Networks For Dummiesby Christopher Poelker, Alex Nikitin For Dummies; Published: 2009-01-09; Paperback; BookBest price: $16.30Price in other shops: $29.99
Smart Homes For Dummiesby Danny Briere, Pat Hurley John Wiley & Sons; For Dummies; Published: 2007-07-23; Paperback; BookBest price: $3.32Price in other shops: $21.99
Essential JavaScript for Web Professionalsby Dan Barrett, Dan Livingston, Micah Brown Prentice Hall Ptr; Published: 1999-08-03; Paperback; BookBest price: $2.25Price in other shops: $29.99
Cisco CCNP Test Yourself Practice Examsby Syngress Media Computing Mcgraw-Hill; Published: 1999-10-11; Paperback; BookBest price: $17.83Price in other shops: $39.99
|
|