Microsoft Internet Explorer
·
It enforces strict type safety and other forms of code accuracy that ensure security and
robustness.
·
It is responsible for enabling and facilitating the Common Type System. The
Common Type System allows classes that are written in any .NET language to
interoperate with--even inherit from, with overrides--classes written in any
language. So your COBOL.NET program can interoperate with your C#, VB.NET,
Eiffel.NET and with any other .NET language programs.
·
It offers a mechanism for cross-language exception handling.
·
It provides a more elegant way for resolving the versioning issues (also referred to as
the Dll Hell in our classic COM).
·
It provides a simplified model for component interaction.
Code that targets the runtime is known as managed code, while code that does not target
the runtime is known as unmanaged code. Managed code requires a runtime host to start
it. The responsibility of the runtime host is to load the runtime into a process, create the
application domains (we'll look at this in detail later) within the process, and loads the
user code into the application domains. While we can write our own runtime hosts using
the set of APIs provided by Microsoft, the .NET platform by default ships with runtime
hosts that include the following.
ASP.NET Loads the runtime into the process that is to handle the Web request.
ASP.NET also creates an application domain for each Web application that will run on a
Web server.
Microsoft Internet Explorer Creates application domains in which to run managed
controls. The .NET Framework supports the download and execution of browser-based
controls. The runtime interfaces with the extensibility mechanism of Microsoft Internet
Explorer through a mime filter to create application domains in which to run the managed
controls. By default, one application domain is created for each Web site.
Shell executables Invokes runtime hosting code to transfer control to the runtime each
time an executable is launched from the shell.
Now that you have understood conceptually the key features of the CLR in .NET
framework, you can begin to look into the physical implementation and execution of code
in the CLR.