Directrices para crear ensamblados en paralelo
En las instrucciones siguientes se describe cómo crear sus propios ensamblados COM o Win32 en paralelo. Es posible que no tenga que crear sus propios ensamblados en paralelo si uno de los ensamblados en paralelo admitidos proporciona la funcionalidad necesaria. En este caso, use los ensamblados proporcionados por Microsoft y siga los procedimientos para usar ensamblados en paralelo en Uso de aplicaciones aisladas y ensamblados en paralelo.
En primer lugar, considere si el componente hace un candidato adecuado para un ensamblado en paralelo. Para obtener más información, consulte ¿Debe proporcionar un componente compartido como un ensamblado en paralelo?
Para crear un ensamblado en paralelo, siga estas instrucciones:
- Decida qué recursos se van a incluir en el ensamblado. Tenga en cuenta que un ensamblado consta de uno o varios archivos que siempre se proporcionan a aplicaciones y clientes juntos. El ensamblado actúa como la unidad fundamental que se usa para asignar nombres, enlaces, control de versiones, implementación y configuración predeterminada. Como regla general, cuando no se sabe si dos recursos pertenecen al mismo ensamblado, se recomienda que se creen para entrar en ensamblados independientes. Normalmente, un ensamblado en paralelo consta de un único archivo DLL.
- Cree un manifiesto de ensamblado para el ensamblado. El manifiesto debe describir el objeto COM o las bibliotecas de tipos en el ensamblado. Para obtener más información sobre lo que se debe crear en un manifiesto de ensamblado, vea manifiestos de ensamblado.
- Evalúe el uso de objetos cuando se ejecuta más de una versión del ensamblado en el sistema. Determine si diferentes versiones del ensamblado requieren estructuras de datos independientes, como archivos asignados a memoria, canalizaciones con nombre, mensajes y clases registrados de Windows, memoria compartida, semáforos, exclusión mutua y controladores de hardware. Las estructuras de datos usadas en las versiones de ensamblado deben ser versiones compatibles con versiones anteriores. Decida qué estructuras de datos se pueden usar en las versiones y qué estructuras de datos deben ser privadas para una versión. Determine si las estructuras de datos compartidas requieren objetos de sincronización independientes, como semáforos y exclusión mutua.
- Cree el archivo DLL para que funcione bien como un ensamblado en paralelo siguiendo las instrucciones de Creación de un archivo DLL para un ensamblado en paralelo.
- Cree un conjunto de archivos de encabezado y funciones auxiliares para proporcionar una manera sencilla de versionar las claves del Registro que contienen el estado del ensamblado. Los ensamblados suelen guardar su configuración de estado en las claves del Registro. La configuración del Registro debe escribirse en una versión individual para aislar varias versiones de ensamblado que se pueden ejecutar al mismo tiempo. Diseñe el ensamblado en paralelo y el archivo DLL para almacenar y controlar correctamente el estado del ensamblado durante escenarios de uso compartido en paralelo. Siga las instrucciones de Creación de Almacenamiento de estado para ensamblados en paralelo.
- Los desarrolladores de aplicaciones que usan ensamblados privados deben proteger el directorio de la aplicación. Si la aplicación se instala mediante Windows Installer, el directorio de la aplicación se puede proteger mediante la tabla LockPermissions. Normalmente, el sistema recibe acceso de lectura, escritura y ejecución a ensamblados privados; todos los demás procesos solo reciben acceso de ejecución y lectura.
- Pruebe el ensamblado mediante escenarios con uso compartido en paralelo para asegurarse de que es un ensamblado en paralelo válido. La instalación correcta del ensamblado no es suficiente para garantizar que funcionará según lo previsto.
- Adopte un método para numerar las actualizaciones del ensamblado. Cada ensamblado está asociado a un número de versión de cuatro partes. De izquierda a derecha, las partes principal, secundaria, compilación y revisión están separadas por puntos. Cambie el número principal o secundario de un ensamblado para una versión que no sea compatible con versiones anteriores. Cambie solo los elementos de compilación y revisión para los cambios compatibles con versiones anteriores en el ensamblado. Por ejemplo, un desarrollador podría adoptar un método de numeración en el que todos los números de versión 1.0.0.* hacen referencia a las versiones de actualización a la versión del ensamblado 1.0.0.0.