2.1. CLR Environment2.2. CLR Executables2.2.1. Hello, World: Managed C++2.2.2. Hello, World: C#2.2.3. Hello, World: VB.NET2.2.4. Hello, World: J#2.2.5. .NET Portable Executable File2.3. Metadata2.3.1. Type Libraries on Steroids2.3.2. Examining Metadata2.3.3. Inspecting and Emitting Metadata2.3.4. Interoperability Support2.4. Assemblies and Manifests2.4.1. Assemblies Versus Components2.4.2. Unique Identities2.4.3. IL Code2.4.4. Versioning2.4.5. Deployment2.4.6. Security2.4.7. Side-by-Side Execution2.4.8. Sharing and Reuse2.4.9. Manifests: Assembly Metadata2.4.10. Creating Assemblies2.4.11. Using Assemblies2.5. Intermediate Language (IL)2.6. The CTS and CLS2.6.1. The Common Type System (CTS)2.6.1.1. Value types2.6.1.2. Reference types2.6.1.3. Boxing and unboxing2.6.1.4. Classes, properties, indexers2.6.1.5. Interfaces2.6.1.6. Delegates2.6.2. The Common Language Specification (CLS)2.7. CLR Execution2.7.1. Class Loader2.7.2. Verifier2.7.3. JIT Compilers2.7.4. Execution Support and Management2.8. Summary