Written by: Jeffrey Richter
Pages: 694
Publisher: Microsoft Press
ISBN: 0735621632
Some words about the author
In case you haven't heard of Jeffrey Richter before; he's the author of great books about Windows programming. His most
famous book, "Programming Applications for Microsoft Windows," has 4 editions and is considered the bible of Windows system
programming. In the book I'm going to review, Richter goes deep into the CLR (the Common Language Runtime), the new
programming model that is leveraged by .NET applications. This book addresses version 2.0 of the CLR.
CLR dissected
The CLR is the portion of the .NET framework that provides a programming and an object-oriented model for developing
applications that run on Microsoft Windows. The .NET framework API and various programming languages (like C# or VB.NET) take
advantage of the features provided by the CLR.
Typically, .NET developers program using one of the many programming languages that leverage the CLR. Richter decided to
demonstrate the features of the CLR by using C#, but keep in mind that this book is not about the C# programming language.
For example, he could have used CLR assembler; though in this case I would probably drop two or three stars from my final
rating.
In fact a high level, object-oriented language like C# is an optimal choice to explain how the CLR works and what has to
offer. Let's see if the book structure, the contents and the writing style let this book meet its goals.
The book
The book is divided in five parts. In the first part we take a look at how the CLR executes a program, what an assembly is
and the various options for deploying an application. Here we find nearly everything we need to know about sharing and
signing assemblies, as well as versioning and deployment issues. Part II, III and IV dive into types. The author shows the
nuts and bolts of primitive, reference and value types. Entire chapters are dedicated to events, interfaces, delegates,
generics and nullables. Part V explains how to take advantage of features such as exception handling, garbage collection,
Reflection, asynchronous programming and thread synchronization.
I'm impressed by the amount of information this book provides. The writing style is concise yet clear and not boring at
all. Richter is great at explaining how things work. He also does a great job of highlighting issues and pathological cases.
There is a lot of code; examples are cleverly built to focus on a particular concept and to clearly demonstrate what
explained in the previous paragraphs. The book is full of suggestions, guidelines, annotations and sidebars. Sometimes,
Richter's point of view and his personal opinions are clearly stated; but they're enjoyable and never interfere with the
contents.
I've particularly enjoyed part V of the book. The chapters dedicated to exceptions, garbage collection, AppDomains,
Reflection, asynchronous programming and thread synchronization are by themselves worth the price of the book. In these
chapters you'll find plenty of information about CLR internals and how to leverage modern programming techniques.
Conclusions
This book is a must-have for a .NET developer. It's great both as a learning resource and as a core reference. If you
already have basic understandings of object-oriented programming and C#, you can't miss this book. Five stars out of five.
About Alessandro Gallo
 |
Alessandro "Garbin" Gallo is a Microsoft MVP in the Visual ASP/ASP.NET category and a .NET developer/consultant. He is a contributor for the Ajax Control Toolkit project, owned by Microsoft. Alessandro won the Grand Prize at the "Mash-it-up with ASP.NET AJAX" contest held by Micr...
This author has published 23 articles on DotNetSlackers. View other articles or the complete profile here.
|
You might also be interested in the following related blog posts
October's Toolbox Column Now Online
read more
September's Toolbox Column Now Online
read more
August's Toolbox Column Now Online
read more
Create custom LINQ providers fluently
read more
Converting LINQ queries from query syntax to method/operator syntax
read more
The Joy of Code Reviews
read more
Troubleshooting a Spooler Crash
read more
There's No Laughing in the Bookstore!
read more
Looking for Setup and Deployment Project Templates? (Mary Lee)
read more
FxCop for Ajax Code
read more
|
|
Please login to rate or to leave a comment.