views:

149

answers:

2

What is the exactly definition of Runtime Host?

From MSDN:

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.

So is it a process which loads the runtime into another process?
How do I check it in Task Manager?

+2  A: 

No, it's a process that loads the runtime DLLs ( e.g. mscoree.dll, etc ) into its process space.

So there is only 1 process space.

The runtime that is referred to is really the .Net runtime or CLR. And from a simplified traditional OS point of view, the CLR is really just a set of DLLs. So, you need a OS process to load and execute the entry point of that DLL. This hosting executable is your runtime host. In reality the .Net runtime host does a lot of things for the CLR ( See Hosting Overview )

You mentioned MSDN, so I guess you've looked at Runtime Hosts on there. You can see the examples they give are all executables that host the CLR ( DLLs ).

Hope that helps.

kervin
so is it the OS loader which spawns the host process?
Southsouth
Yes, The hosting process is started like any other process. Basically, what makes it a .Net runtime host is that it loads the CLR.
kervin
+1  A: 

This article might help: Implementing a custom runtime host. It discusses the various aspects of the host and when/why you might want to implement your own.

Lifted directly from the article: wxamples of hosts that ship with the .NET Framework include:

  • ASP.NET An ISAPI filter that ships with ASP.NET is responsible for starting the CLR and initializing the plumbing needed to route Web requests to the ASP.NET processes. Internet Explorer The .NET Framework ships with a MIME filter that hooks into Internet Explorer 5.01 or later to execute managed code controls that are referenced from HTML pages.
  • Shell Executables Each time an executable is launched from the shell, a small piece of unmanaged code gets invoked that transitions control to the CLR.

Other hosts could include:

  • Database Engines A future version of Microsoft SQL Server will allow stored procedures to be written in languages that support the .NET Framework and are executed with the CLR.
  • Personal Organizers Several e-mail/calendar/contact programs allow users to write scripts to customize the processing of e-mail messages, appointments, and so on. It's easy to imagine these scripts running on the CLR. The security system provided by the CLR is especially important in this scenario because of the proliferation of viruses spread by e-mail systems.
GrayWizardx
The article (from 2001) is a bit dated; for example the "future version of ... SQL Server" now exists: you no longer have to write T-SQL code to do database development.
Dan
Agreed. I just grabbed it quickly off of google. :)
GrayWizardx