Ventajas de los ensamblados

Actualización: noviembre 2007

Los ensamblados están diseñados para simplificar la implementación de las aplicaciones y para solucionar los posibles problemas de versiones de las aplicaciones basadas en componentes.

El usuario final y los programadores conocen perfectamente los problemas de versiones e implementación que surgen hoy en día con los sistemas basados en componentes. Algunos usuarios finales se han visto frustrados al instalar una nueva aplicación en su equipo y ver cómo deja de funcionar otra aplicación que ya tenían instalada. Muchos programadores han estado horas y horas intentando mantener la coherencia de todas las entradas del Registro necesarias para activar una clase COM.

Con el uso de ensamblados en .NET Framework se han resuelto muchos problemas de implementación. Debido a que son componentes autodescriptivos que no dependen de las entradas del Registro, los ensamblados permiten instalar las aplicaciones sin problemas. También simplifican la desinstalación y replicación de las aplicaciones.

Problemas de versiones

Actualmente existen dos problemas de versiones con las aplicaciones de Win32:

  • No se pueden expresar las reglas de las versiones entre las partes de una aplicación y que las imponga el sistema operativo. El planteamiento actual se basa en la compatibilidad con versiones anteriores, que a menudo es difícil de garantizar. Las definiciones de interfaz deben ser estáticas, una vez publicadas, y un solo fragmento de código debe mantener la compatibilidad con las versiones anteriores. Además, el código normalmente se diseña de manera que en cualquier momento pueda existir y ejecutarse una sola versión del mismo en un equipo.

  • No hay ninguna forma de mantener la coherencia entre conjuntos de componentes integrados y el conjunto que está presente en tiempo de ejecución.

Cuando estos dos problemas de versiones se combinan, generan conflictos de DLL que consisten en que, al instalar una aplicación, se puede interrumpir accidentalmente otra aplicación existente porque un componente de software o una DLL instalados no eran totalmente compatibles con la versión anterior. Cuando se llega a esta situación, el sistema no tiene forma de diagnosticar y reparar el problema.

El fin de los conflictos de DLL

En Microsoft® Windows® 2000 se dieron los primeros pasos para erradicar estos problemas. Incluye dos funciones que permiten solucionar parcialmente los conflictos de DLL:

  • Windows 2000 permite crear aplicaciones cliente donde los archivos .dll dependientes se sitúan en el mismo directorio que el archivo .exe de la aplicación. Windows 2000 se puede configurar para buscar un componente en el directorio donde se encuentra el archivo .exe antes de comprobar la ruta de acceso completa o buscar la ruta de acceso normal. De esta manera, los componentes pueden ser independientes de los componentes ya instalados y utilizados por otras aplicaciones.

  • Windows 2000 bloquea los archivos que se incluyen en el sistema operativo en el directorio System32 de manera que no se puedan reemplazar accidentalmente al instalar aplicaciones.

El uso de los ensamblados de Common Language Runtime es un paso más hacia la solución completa de los conflictos de DLL.

La solución de los ensamblados

Con el objetivo de solucionar los problemas de las versiones, así como los problemas restantes que desembocan en conflictos de DLL, el motor en tiempo de ejecución utiliza ensamblados para los siguientes fines:

  • Permitir a los programadores especificar reglas de versiones entre distintos componentes de software.

  • Proporcionar la infraestructura para que se cumplan las reglas de versiones.

  • Proporcionar la infraestructura que permita que varias versiones de un componente se puedan ejecutar simultáneamente, lo que se conoce como ejecución simultánea.

Vea también

Conceptos

Versiones de los ensamblados

Ensamblados y ejecución simultánea

Otros recursos

Ensamblados en Common Language Runtime