2010-02-27 15 views

Respuesta

25

Consulte here para obtener información sobre el alojamiento de CLR que era relevante para CLR v2 (.NET 2.0, 3.0 y 3.5). Para obtener información acerca de la nueva API de CLR Hosting en .NET 4.0, see here.

Básicamente, el CLR actúa como una biblioteca que un proceso puede cargar y "alojar". Puede desarrollar una aplicación que cargue y aloje el CLR si lo desea; eso permitiría que su aplicación contenga toda una máquina virtual CLR, cargue ensamblajes y ejecute el código administrado .NET todo dentro de él.

SQL Server 2008, por ejemplo, puede hacerlo. Puede escribir el código .NET que se almacena en una base de datos de SQL Server y ejecutar desde el motor de la base de datos de SQL Server. SQL Server está alojando el CLR para lograr eso.

Un host CLR que no sea el shell de Windows (la interfaz de usuario habitual) puede proporcionar un contexto específico para la ejecución de su código. Esto puede ser útil para aplicaciones especializadas o escenarios muy particulares. MSDN (enlace arriba) tiene algunas pautas sobre estos asuntos.

+1

+1 Gracias por la respuesta. Además: cuando se hace doble clic y se inicia un ejecutable .NET, ¿quién aloja el CLR? ¿Está alojado por Windows Explorer? – Sabuncu

+0

@Sabuncu: Sí. Ese es el shell de Windows que mencioné en mi respuesta. – CesarGon

+0

Gracias. Vi su referencia de "shell de Windows", pero no estaba seguro. En este caso, creo que estás usando "shell" en el sentido genérico, no un programa de shell como el cmd.exe de DOS o la consola de PowerShell. – Sabuncu

11

CLR Hosting está alojando .NET Common Language Runtime en el proceso que elija.

El caso de uso sería situaciones donde los entornos existentes no se ajustan a sus requisitos. Algunos de los entornos existentes son ASP.NET, WinForms, Windows Workflow Foundation, etc. Si estos no se ajustan a sus requisitos, puede alojarlos usted mismo.

2

CLR Hosting is Hosting utiliza la aplicación .NEt. Cuando inicia el tiempo de ejecución de .NET dentro de un proceso nativo, esa aplicación nativa se convierte en un host para el tiempo de ejecución. Esto le permite agregar capacidades de .NET a sus aplicaciones nativas.

Si el tiempo de ejecución se está ejecutando, pero aún no tiene ningún código de usuario cargado. Algunos programadores de subprocesos internos y recolectores de basura seguramente se están ejecutando, porque son parte del tiempo de ejecución de CLR Es muy complicado que otros servicios de hospedaje.