C# programs run on the .NET Framework, an integral
component of Windows that includes a virtual execution system called the Common Language runtime (CLR) and a unified set of class libraries. The CLR is the
commercial implementation by Microsoft of the Common Language Infrastructure (CLI), an international standard that is the basis for creating
execution and development environments in which languages and libraries work
together seamlessly.
Source code written in C# is
compiled into an intermediate language (IL) that conforms to the CLI
specification. The IL code and resources, such as bitmaps and strings, are
stored on disk in an executable file called an assembly, typically with an
extension of .exe or .dll. An assembly contains a manifest that provides
information about the assembly's types, version, culture, and security
requirements.
When the C# program is executed,
the assembly is loaded into the CLR, which might take various actions based on
the information in the manifest. Then, if the security requirements are met,
the CLR performs Just in time (JIT) compilation to convert the IL code to
native machine instructions. The CLR also provides other services related to
automatic garbage collection, exception handling, and resource management.
Code that is executed by the CLR is sometimes
referred to as "managed code," in contrast to "unmanaged
code" which is compiled into native machine language that targets a
specific system. The following diagram illustrates the compile-time and
run-time relationships of C# source code files, the .NET Framework class
libraries, assemblies, and the CLR.
In
addition to the run time services, the .NET Framework also includes an
extensive library of over 4000 classes organized into namespaces that provide a
wide variety of useful functionality for everything from file input and output
to string manipulation to XML parsing, to Windows Forms controls.
No comments:
Post a Comment