The Book
We're still waiting for "Shared Source CLI
Essentials" to become the bestseller cult classic that we know it is. It was published by O'Reilly and Associates in March, and
documents the Rotor source code. (Rotor was my last project at Microsoft before I pulled the ripcord.)
Anyone who wants to learn about the details of CLR internals might want to read this book. It has a lot of information that will help technical people to understand the dynamics of managed code.
If you live and breathe for virtual machine specifications such as the JVM spec or the Smalltalk blue book, this book is definitely for you. If you have implemented a Scheme or a Forth compiler for fun, or if you find yourself defending a favorite "misunderstood" programming language from philistines who don't properly understand its boutique feature set or the intrinsic value of its totally hackable runtime and compiler, then this book is for you.
The book includes the Rotor sources and documentation on CD.
The following is from the preface:
The target audience for this book falls mainly into four categories:
The research community
There has long been tremendous interest in virtual machines, and Rotor's implementation of the CLI should provide many traditional research opportunities in areas such as security, memory management, and code generation, as well as less traditional opportunities centered on the industrial, "real world," character of the heavily instrumented code.
The teaching community
Many curricula already include managed execution and its capabilities among their subjects, and Rotor should provide a bountiful experimental testbed within which to explore this topic. Compiler, systems, and architectural courses should all find teaching material in Rotor's codebase.
The professional community
Hordes of programmers, familiar with COM and C++, are moving to the .NET Framework with little or no familiarity with managed environments. Architects and team leads will be asked hard questions, and Rotor's behind-the-scenes look at the .NET execution engine should provide them with excellent resources from which they can extract answers.
The community of CLI implementers
Rotor is intended to serve as a useful baseline when bringing the CLI to other platforms. While this group will undoubtedly be smaller than the other three, it will be this community that provides the most leveraged contribution, whether porting it to new platforms or using it as learning material for their own new implementations.