John Spano cofounder and CTO of NeoTekSystems, a Greenville, South Carolina technology consulting company. NeoTekSystems offers IT consulting, custom programming, web design and web hosting. We specialize in Microsoft .Net enterprise development and business design.
I have six years of experience in software architecture. My primary focus is on Microsoft technologies, and I have been involved in .NET since beta 1. I currently hold a MCSD certification, 2 MCTS's (Windows, Web) a MCPD in Distributed, 2 MCITP's, a Microsoft MVP, and have won the Helper of the Month contest for July 2002 in the devCity.NET forums.
Corporate URL: www.NeoTekSystems.com
Primary email: JSpano@NeoTekSystems.com
View all articles by John Spano...
Alternate email: Jspano@devcity.net.
Most people have probably heard of "Rotor" by now, but if you haven't it's a working shared source model of the ECMA CLI and the ECMA C# specification. Its official name is the Shared Source Common Language Infrastructure (SSCLI). Microsoft has released a working .NET Framework and C# compiler to the general public to further knowledge about the .NET Framework and give a reference point for people porting the Framework or designing new languages. Along with the CLI and C#, you will find many tools such as a full Java script compiler written in C#.
The SSCLI is HUGE with thousands of files and over three million lines of code. Imagine jumping into that without a map! This book is the "map" for the SSCLI. It was written by David Stutz, Ted Neward and Geoff Shilling. Its ISBN is 059600351X. The book expects you to have a decent knowledge of C++ and C#, which most of the code is written in.
I found this book to be full of information. There isn't a wasted page in the book. The authors have done all of the hard work of parsing through the SSCLI and pulling the relevant code and starting places for you. The book covers how components are packaged into assemblies, the type system and JIT compiler, how managed code works, garbage collection and the Platform Adaptation Layer (PAL) in depth.
I wish I had this book several months ago. It would have saved me hours of browsing the code to figure out where to start and what files went with each technology. Not only does it cover code, it covers the directory structure, which is extensive, and how to build and port the code to other platforms, such as the Mac, also.
This book is an easy 10. It will save you hours and hours of time when examining the SSCLI. I recommend that everyone who wants to know how the .NET Framework works and how to program better against it get a copy of the SSCLI and the book.
Here is a link to download the SSCLI: http://www.microsoft.com/downloads/details.aspx?FamilyId=3A1C...
Table of Contents:
- Introducing the CLI Component Model
- The CLI Virtual Execution Environment
- A CLI Implementation in Shared Source: Rotor
- Getting Started with Rotor
- A Simple Component Assembly
- Observing Managed Execution
- Using Types to Describe Components
- Types and Type Systems
- More on Value Types
- More on Reference Types
- Type Interoperability
- Using Types in Data-Driven Code
- Extracting Types from Assemblies
- Type Packaging
- Application Domains
- Bootstrapping the Assembly Load Process
- Securing Against Harmful Assemblies
- Synthesizing Components
- The Anatomy of a Component
- Verifying and Compiling CIL
- Calling Conventions in Managed Code
- Emitting Components Dynamically
- Regulating the Execution Engine
- Traversing the Execution Engine Stack
- Threading and Concurrency
- Synchronizing Concurrent Access to Components
- Handling Component Exceptions
- Managing Memory Within the Execution Engine
- Memory and Resource Management
- Organizing and Allocating Dynamic Memory
- Reclaiming Memory
- Structuring Metadata for Collection
- Scheduling Collection
- Interlude: Enabling Component Integration with Metadata
- Altering Metadata Representation
- Transforming Metadata in the CLI
- Metadata in Action
- The Platform Adaptation Layer
- PAL Overview
- Common Infrastructure
- Processes and Threads
- Synchronizing Processes and Threads
- Implementing Signaling
- Suspending and Resuming PAL Threads
- Asynchronous Procedure Calls
- Handling Exceptions in the PAL
- Managing Memory with the PAL
- Exploring the Rest of the PAL
- Joining Components to the OS
- A Quick Tour of Rotor
- Building Rotor
- Porting Rotor
- Rotor Macrology
Order your copy of Shared Source CLI Essentials at Amazon.com.