Most helpful positive review
16 of 18 people found the following review helpful
Essential to your understanding of the CLR.......
on December 4, 2002
When Microsoft introduced COM to the development community, many developers became utterly confused. It was not uncommon for developers to say things like "What is COM?". In late 1997, Don Box taught all who read "Essential COM" the intricacies of COM. Don convinced many of us that COM really could be a better C++. Also in "Essential COM", Don distilled the "meat" of COM when he covered Intefaces, IUnkown, QueryInterface, Classes, Objects, and more.
Well, Microsoft released the first version of .NET (place your own definition here) including the Common Language Runtime almost a year ago. In Don's latest book "Essential .NET, Volume 1: The Common Language Runtime", he does it again. Yes, Don, with the help of Chris Sells, has extrapolated the key parts of the Common Language Runtime (CLR) or what Don might call a better COM.
Before I get into the meat of the review, I want to say that, in my opinion, this book is not for a beginning programmer and not necessarily even a beginning .NET programmer. If you are a beginning programmer and want an understandable, but not as deep, technical explanation of the CLR then I recommend you read "Applied Microsoft .NET Framework Programming" by Jeffrey Richter. If you are an experienced COM developer or you have spent some quality time programming in the .NET environment then I think this title ("Essential .NET, Volume 1: The Common Language Runtime") will be a great addition to your library.
As the title ("The CLR as a Better COM") suggests, the first chapter takes a look at the origins of COM and provides the reader with the problem that the CLR is supposed to correct. This chapter is moderately useful to the experienced COM developer as it does set the intent, tone, and style of the chapters that follow. To the development newbie (who I wouldn't recommend read this book), this chapter will be less useful as the newbie is less concerned with where we came from and more concerned with they can live in the environment. I found the first chapter kind of fluffy.
The second chapter, "Components", is where the reading gets good and meaty. When Don and Chris say "Components" they mean every little bit and byte that makes up the component. As a result, chapter two covers Modules, Assemblies, Public Keys, the CLR Loader, Resolving Names to Locations, and Versioning. It is in this chapter that, among other things, I learned that of the four assembly types the Module type is the only one that does not contain an assembly manifest. I loved the graphic illustrations in this chapter and the detailed description of what is *really* in an assembly.
The third chapter, "Type Basics", covers all things type. The Common Type System (CTS) is another of the many acronyms introduced by .NET. The CTS is, essentially, what guarantees us that a String in Visual Basic .NET is a String in C#. Well, the String type can further be defined with all of the technical makeup of a Type in the CLR. Don and Chris bust open the Type shell and describe what's inside. There are lots of little code snippets in this chapter and more great illustrations. I'm a very visual person so the code snippets really put many of the concepts into perspective for me. They also give me a head start when I head to notepad, a compiler, Anakrino, and ildasm to start doing some investigation of my own.