Ejecución simultánea
La ejecución en paralelo es la capacidad de ejecutar múltiples versiones de una aplicación o componente en el mismo equipo. Se pueden tener varias versiones de Common Language Runtime y varias versiones de las aplicaciones y componentes que utilice una versión del motor en tiempo de ejecución, de forma simultánea y en el mismo equipo.
La ilustración siguiente muestra varias aplicaciones que utilizan dos versiones diferentes del motor en tiempo de ejecución en el mismo equipo. Las aplicaciones A, B y C utilizan la versión 1.0 del motor en tiempo de ejecución, mientras que la aplicación D utiliza la versión 1.1.
Ejecución en paralelo de dos versiones del motor en tiempo de ejecución
.NET Framework está formado por Common Language Runtime y por, aproximadamente, dos docenas de ensamblados que contienen los tipos de la API. El motor en tiempo de ejecución y los ensamblados de .NET Framework tienen versiones independientes. Por ejemplo, la versión 1.0 del motor en tiempo de ejecución es en realidad la versión 1.0.3705.0, mientras que la versión 1.0 de los ensamblados de .NET Framework es la versión 1.0.3300.0.
La ilustración siguiente muestra varias aplicaciones que utilizan dos versiones diferentes de un componente en el mismo equipo. Las aplicaciones A y B utilizan la versión 1.0 del componente mientras que la aplicación C utiliza la versión 2.0 del mismo componente.
Ejecución en paralelo de dos versiones de un componente
La ejecución en paralelo ofrece un mayor control sobre las versiones de un componente a las que se enlaza una aplicación, y sobre la versión del motor en tiempo de ejecución que utiliza una aplicación.
Ventajas de la ejecución en paralelo
Antes de Windows XP y de .NET Framework, se producían conflictos en las DLL porque las aplicaciones no podían distinguir las versiones incompatibles del mismo código. La información de los tipos contenida en una DLL se enlazaba únicamente a un nombre de archivo. Una aplicación no podía saber de ninguna manera si los tipos incluidos en una DLL eran los mismos los tipos con los que se había compilado la aplicación. Como consecuencia de esto, una nueva versión de un componente podía sobrescribir la versión antigua e interrumpir las aplicaciones.
La ejecución en paralelo y .NET Framework proporcionan las siguientes características que eliminan los conflictos con las DLL:
Ensamblados con nombre seguro
La ejecución en paralelo utiliza ensamblados con nombre seguro para enlazar la información de los tipos a una versión específica de un ensamblado. De este modo, se impide que una aplicación o componente se enlace a una versión no válida de un ensamblado. Los ensamblados con nombre seguro también permiten múltiples versiones de un archivo en el mismo equipo y que las aplicaciones las utilicen. Para obtener más información, vea Ensamblados con nombre seguro.
Almacenamiento de código con identificación de versión
.NET Framework ofrece un almacenamiento de código con identificación de la versión en la caché global de ensamblados. La caché global de ensamblados es una memoria caché de código que afecta a todo el equipo y que existe en los equipos con .NET Framework. Almacena ensamblados en función de la información de versión, referencia cultural y editor, y admite múltiples versiones de componentes y aplicaciones. Para obtener más información, vea Caché de ensamblados global.
Aislamiento
Con .NET Framework, puede crear aplicaciones y componentes que se ejecutan de forma aislada. El aislamiento es un componente esencial de la ejecución en paralelo. Implica que se reconocen los recursos que se usan y que se comparten con confianza entre varias versiones de una aplicación o un componente. El aislamiento también incluye el almacenamiento de archivos en el modo específico de la versión. Para obtener más información sobre el aislamiento, vea Instrucciones para crear aplicaciones y componentes para la ejecución simultánea.
Compatibilidad de versiones
Las versiones 1.0 y 1.1 de .NET Framework se han diseñado para que sean compatibles entre sí. Una aplicación compilada con la versión 1.0 de .NET Framework debe poder ejecutarse en la versión 1.1 y, viceversa, una aplicación creada con la versión 1.1 de .NET Framework debe poder ejecutarse en la versión 1.0. No obstante, tenga en cuenta que las características de la API agregada a la versión 1.1 de .NET Framework no funcionarán con la versión 1.0 de .NET Framework. Las aplicaciones creadas con la versión 2.0 sólo se ejecutarán en dicha versión. Las aplicaciones creadas con la versión 2.0 no se ejecutarán en la versión 1.1 ni en las anteriores.
Las versiones de .NET Framework se tratan como una sola unidad formada por el motor en tiempo de ejecución y los ensamblados asociados de .NET Framework (que se conoce como unificación de ensamblados). Se puede redirigir el enlace de ensamblados para incluir otras versiones de los ensamblados de .NET Framework, pero reemplazar el enlace de ensamblados predeterminado puede ser peligroso y se debe probar rigurosamente antes de su implementación.
Temas relacionados
Título |
Descripción |
---|---|
Buscar información de versión del motor en tiempo de ejecución |
Describe cómo localiza el motor en tiempo de ejecución la información sobre la versión que es necesario cargar para una aplicación. |
Información general sobre la unificación de ensamblados de .NET Framework |
Describe cómo controla el motor en tiempo de ejecución las referencias a las distintas versiones de ensamblados de .NET Framework. |
Determinar qué versión del motor en tiempo de ejecución debe cargarse |
Describe los pasos que sigue el motor en tiempo de ejecución para determinar la versión que es necesario cargar para una aplicación. |
Describe cómo enlazar una aplicación a una versión específica de un ensamblado. |
|
Referencias de ensamblados parcialmente cualificados y ejecución simultánea |
Describe las implicaciones de utilizar referencias calificadas parcialmente con el nombre de ensamblado en las aplicaciones que se van a ejecutar en paralelo. |
Ofrece información y procedimientos sobre cómo usar los archivos de directiva de publicador para redirigir el enlace de ensamblados. |
|
Describe cómo se controlan los ensamblados satélite en una ejecución en paralelo. |
|
Ofrece información sobre la instalación y el uso de varias versiones de .NET Framework. |
|
Describe cómo crear un archivo de configuración con el fin de que una aplicación utilice una versión específica de Common Language Runtime. |
|
Ofrece información sobre cómo crear e implementar aplicaciones y componentes diseñados para la ejecución en paralelo. |
|
Determinar una estrategia de servicio para aplicaciones y componentes |
Describe cómo crear un modelo de servicio para componentes y aplicaciones que tengan versión. |
Describe cómo se puede utilizar la activación del host en tiempo de ejecución en paralelo y en el mismo proceso para ejecutar varias versiones de CLR en un solo proceso. |
|
Proporciona una introducción general a los conceptos de los ensamblados. |
|
Proporciona una introducción general a los conceptos de los dominios de aplicación. |