List of Figures List of Tables Foreword Preface 1 The CLR as a Better COM COM Revisited The Common Language Runtime The Evolution of the Programming Model Where Are we? 2 components Modules Defined Assemblies Defined Assembly Names Public Keys and Assemblies The CLR Loader Resolving Names to Locations Versioning Hazards Where Are We? 3 Type Basics Type Fundamentals Types and Initialization Types and Interfaces Types and BAse Types Where Are We? 4 Programming with Type Types at Runtime Programming with Metadata Special Methods Metadata and Extensibility Where Are We? 5 Instances Objects and Values Compared Variables, Parameters, and Fields Equivalence Versus Identity Cloning Boxing Arrays Object Life Cycle Finalization Where Are We? 6 Methods Methods and JIT Compilation Method Invocation and Type Interfaces, Virtual Methods, and Abstract Methods Explicit Method Invocation Indirect Method Invocation and Delegates Asynchronous Method Invocation Method Termination Where Are We? 7 Advanced Methods Motivation Messages as Method Calls Stack and Message Transitions Proxiable Types Message Processing(Revisited) Objects and Context Contexts and Interception Where Are We? 8 Domains Execution Scope and the CLR Programming with AppDomains AppDomain Events AppDomains and the Assembly Resolver AppDomains and Code Management AppDomains and Objects (Revisited) Where Are We? 9 Security Components and Security Evidence Policy Permissions Enforcement Where Are We? 10 CLR Externals Memory Modes of Execution Unmanaged Modules Loading the CLR The CLR as a COM Component Where Are We? Glossary Index