To obtain the benefits provided by the common language runtime, you must use one or more language compilers that
target the runtime.
your source code into Microsoft intermediate language (MSIL) and
generates the required metadata.
At execution time, a just-in-time (JIT) compiler translates the MSIL into
native code. During this compilation, code must pass a verification
process that examines the MSIL and metadata to find out whether the
code can be determined to be type safe.
The common language runtime provides the infrastructure that enables execution to
take place and services that can be used during execution.