This chapter provided a brief overview of the framework under which managed code runs. If you keep in mind that at the lowest level, the CLR is an engine that allows the execution of IL instructions, you will have an easier time understanding both IL and how your code runs with the CLR.
This chapter detailed the rules for loading an assembly and starting execution of a method. It also supplied detailed information about control flow from within a method call. It explored in depth the built-in mechanisms for handling errors and exceptions from within this runtime environment. In addition, it discussed the runtime support for remoting that is built into the CLR. Finally, it revealed how the code that is running under the CLR accesses memory and synchronizes access to methods when multiple threads could potentially have access to the memory store.