Programs written for the .NET Framework execute in a software environment that
manages the program's runtime requirements. This runtime environment,
which is also a part of the .NET Framework, is known as the Common Language Runtime (CLR).
The CLR provides the appearance of an application virtual machine,
so that programmers need not consider the capabilities of the specific CPU that
will execute the program. The CLR also provides other important
services such as security guarantees, memory management, and exception handling.