Ensamblados fuertes y débiles en .NET

 C Programming >> Programación C >  >> Tags >> .NET
Ensamblados fuertes y débiles en .NET

Ensamblados fuertes y débiles en .NET Framework

En este artículo, voy a hablar sobre ensamblajes fuertes y débiles en .NET Framework con ejemplos Lea nuestro artículo anterior donde discutimos Dominio de aplicación en .NET Solicitud. En .NET Framework, los ensamblajes se clasifican ampliamente en 2 tipos. Son los siguientes:

  1. Ensamblados con nombre débiles
  2. Ensamblados con nombre fuerte

Primero entendamos qué es el ensamblado, luego hablaremos sobre el ensamblado fuerte y el ensamblado semanal y la diferencia entre ellos.

Comprensión de ensamblado en .NET Framework:

Creemos una aplicación de consola simple con el nombre AssemblyDemo y luego modificar el Programa clase como se muestra a continuación. Este es un programa C# muy simple, simplemente imprime un mensaje "Hola mundo ” a la consola. Para imprimir el mensaje en la Consola, aquí estamos usando la Consola clase. Esa Consola la clase proviene del Sistema espacio de nombres Y el Sistema el espacio de nombres está presente en el Sistema Asamblea. El ensamblado del sistema es un ensamblado de .NET Framework

using System;
namespace AssemblyDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello world");
            Console.ReadKey();
        }
    }
}

Cuando instalamos .NET en la máquina, se instalan dos componentes importantes. Una es la biblioteca de clases base (BCL) de .NET Framework y la otra es CLR, que no es más que el entorno de tiempo de ejecución. En la biblioteca de clases base de .NET Framework, tenemos varios ensamblajes. Todos los ensamblados de .NET Framework se instalan en una ubicación especial llamada GAC ​​(Global Assembly Cache). La ubicación de GAC es “C:\Windows\assembly ”. Una vez que vaya a esta ubicación, encontrará todos los ensamblajes de .NET Framework como se muestra en la imagen a continuación. Hablaremos de GAC en detalle en nuestro próximo artículo.

Todos los ensamblados presentes en GAC están fuertemente tipados. En una parte posterior de este artículo, discutiremos qué es exactamente un ensamblado de tipo fuerte y la diferencia entre una semana y un ensamblado de tipo fuerte en .NET. En .NET, un ensamblaje consta de 4 partes

  1. Nombre textual simple (es decir, el nombre del ensamblado).
  2. El número de versión.
  3. Información cultural (si se proporciona; de lo contrario, el ensamblado es independiente del idioma)
  4. Token de clave pública

Discutamos cada parte de un ensamblaje en detalle.

Nombre del ensamblado (Nombre textual simple):

Esto no es más que el nombre del proyecto. Acabamos de crear una aplicación de consola con el nombre AssemblyDemo . Ahora compila el proyecto y ve a Bin => Depurar carpeta que puede encontrar dentro del proyecto y debe encontrar un ensamblaje con el nombre AssemblyDemo.

Número de versión:

El formato predeterminado del número de versión es 1.0.0.0. Eso significa que el número de versión nuevamente consta de cuatro partes de la siguiente manera:

  1. Versión principal
  2. Versión secundaria
  3. Número de compilación
  4. Número de revisión

Normalmente, cualquier software que desarrollemos sufrirá cambios durante un período de tiempo. Cuando arreglamos errores o agregamos nuevas características, dependiendo de la importancia del cambio, cambiamos el número mayor o el número menor. Si los cambios que estamos haciendo en la aplicación son enormes, entonces probablemente cambiemos el número principal; de lo contrario, cambiaremos el número menor. La mayoría de las veces, el número de compilación y el número de revisión son predeterminados.

Para ver el número de versión de su ensamblado “AssemblyDemo ”, Abra el símbolo del sistema de Visual Studio Developer y use el ILDASM Comando para ver el número de versión como se muestra a continuación.

Una vez que use el comando ILDASM seguido de la ruta física de su ensamblaje y presione la tecla Intro, obtendrá la siguiente ventana de ILDASM y solo mire el número de versión que puede encontrar en la parte inferior de la ventana.

¿Cómo cambiar el número de versión de un ensamblado en .NET?

Si desea cambiar el número de versión de su ensamblado, debe usar AssemblyVersion atributo dentro de AssemblyInfo clase que está presente dentro de las Propiedades carpeta de su proyecto. Puede especificar todos los valores o puede predeterminar los números de revisión y compilación usando el '*'. Supongamos que desea cambiar el número mayor a 3 y el número menor a 2, entonces necesita cambiar la Versión de ensamblaje atributo como se muestra a continuación en AssemblyInfo clase.

[ensamblaje: Versión de ensamblaje ("3.2.*")] 

Con los cambios anteriores en su lugar, ahora, si crea la solución y verifica el número de versión con la herramienta ILDASM, entonces debería obtener el número de versión actualizado. Lea nuestros artículos de ILDASM e ILASM para obtener más información sobre ILDASM e ILLASM.

Cultura de asamblea:

El atributo AssemblyCulture se usa para especificar la cultura del ensamblado. De forma predeterminada, los ensamblados de .NET son independientes del idioma, lo que significa que el atributo AssemblyCulture contiene una cadena vacía. Si va al GAC, encontrará que la mayoría de las asambleas son culturalmente neutrales. Pero podría haber algunas asambleas que sean específicas de la cultura. Para una mejor comprensión, mire la siguiente imagen que también puede encontrar en su GAC. Los siguientes ensamblados son específicos del idioma especificado en el atributo Cultura.

Cuando especifica la referencia cultural, ese ensamblaje se convierte en un ensamblaje satélite. Discutiremos los ensamblajes de satélites en detalle en nuestro próximo artículo. Si desea especificar la referencia cultural, debe usar el atributo AssemblyCulture con el archivo de clase AssemblyInfo.cs. Por ejemplo, si desea especificar el inglés como cultura, debe usar el atributo AssemblyCulture como se muestra a continuación.

[ensamblado:AssemblyCulture(“en”)]

Token de clave pública:

Si va al GAC, verá que a cada ensamblado se le asigna un token de clave pública. Para obtener el token de clave pública, debe firmar su ensamblado con un par de claves pública y privada. Ahora la pregunta es cómo obtengo la clave privada-pública. En .NET Framework, tenemos una herramienta llamada herramienta de nomenclatura fuerte y puede usar esta herramienta para generar el par de claves. Nuevamente, para usar esta herramienta, debe usar el Símbolo del sistema para desarrolladores para Visual Studio. Entonces, abra el Símbolo del sistema para desarrolladores de Visual Studio en modo administrador y luego escriba sn.exe -k c:\MyKeyFile.snk y presione enter como se muestra en la imagen de abajo.

Una vez que escribe el comando requerido y presiona enter, el archivo clave con el nombre MyKeyFile.snk debe generarse en la unidad C:. En SN.exe, SN significa nombre seguro.

Una vez que generó el archivo de clave, debe usar el atributo AssemblyKeyFile de la clase AssemblyInfo para firmar el ensamblaje con un nombre seguro. Al constructor del atributo AssemblyKeyFile, debe pasar la ruta del archivo de clave que contiene la clave pública y privada como se muestra a continuación.

[ensamblado: AssemblyKeyFile(“C:\\MyKeyFile.snk”)]

Una vez que agregue el atributo AssemblyKeyFile anterior, cree la solución. Una vez que construya la solución, ahora su ensamblado firma con un par de claves público-privado. Ahora, nuestro ensamblaje tiene los cuatro componentes, como Nombre, Número de versión, Cultura y Token de clave pública.

Conjunto de nombres fuertes en .NET Framework:

Se dice que un ensamblado tiene un nombre fuerte de ensamblado cuando tiene las siguientes propiedades

  1. El nombre del ensamblado.
  2. Número de versión.
  3. La asamblea debería haber sido firmada con el par de claves pública/privada.
¿Cuál es la diferencia entre ensamblados fuertes y débiles en .NET Framework?

Si un ensamblado no está firmado con el par de claves pública/privada, se dice que el ensamblado es un ensamblado con nombre débil y no se garantiza que sea único y puede causar la DLL maldito problema. Se garantiza que los ensamblajes con nombre de Strong son únicos y resuelven el problema infernal de DLL. Nuevamente, no puede instalar un ensamblado en GAC a menos que el ensamblado tenga un nombre seguro.

En el próximo artículo, voy a hablar sobre GAC en detalle así como también discutiremos cómo instalar un ensamblado de nombre seguro en GAC . Aquí, en este artículo, intento explicar qué son los ensamblajes fuertes y débiles en .NET Framework. así como las diferentes propiedades de un conjunto en detalle. Espero que disfrutes de este ensamblaje de puntos fuertes y débiles en el artículo de .NET.