the underlying .NET infrastructure. Its facilities cover all the
goals that we spelled out in Chapter 1. Unlike
software libraries such as MFC or ATL, the CLR is built from a clean
slate. The CLR manages the execution of code in the .NET Framework.
An assembly is the basic unit of deployment and
versioning, consisting of a manifest, a set of one or more modules,
and an optional set of resources.
Figure 2-1 shows the two portions of the .NET
environment, with the bottom portion representing the CLR and the top
portion representing the CLR executables or
Executable (PE) files, which are .NET assemblies or units of
deployment. The CLR is the runtime engine that loads required
classes, performs just-in-time compilation on needed methods,
enforces security checks, and accomplishes a bunch of other runtime
functionalities. The CLR executables shown in Figure 2-1 are either EXE or DLL files that consist
mostly of metadata and code.
Figure 2-1. The CLR environment