The common language runtime has been designed to support a variety of different types of applications, from Web server applications to applications with a traditional rich Windows user interface. Each type of application requires a runtime host to start it. The runtime host loads the runtime into a process, creates the application domains within the process, and loads user code into the application domains.
The .NET Framework ships with a number of different runtime hosts, including the hosts listed in the following table.
|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.|
Microsoft provides a set of APIs for writing your own runtime hosts.