2009-03-23 20 views
32

¿Cuál es la diferencia entre Assembly y una DLL? Al enviar el código a un cliente remoto, ¿se debe enviar un archivo DLL o se debe enviar un ensamblado (cuando la conexión TCP directa está disponible entre dos)?Diferencia entre ensamblado y DLL

Respuesta

36

Un ensamblaje es la "unidad mínima de despliegue" de .NET. Por lo general, un ensamblaje corresponde a un solo archivo, pero no tiene que serlo; puede tener múltiples archivos, siendo uno de ellos el maestro que sabe dónde están todos los otros bits.

Los ensambles de un solo archivo suelen ser archivos DLL o EXE. Si tiene una biblioteca de clases normal y solo desea enviarla al otro lado, la DLL es lo que desea. Solo me preocuparía por escenarios más complicados cuando los encuentre :)

+0

@ John- Por favor, consulte mi otra pregunta http://stackoverflow.com/questions/674194/transfering-assembly-over-tcp – Pushkar

+1

@Jon Skeet, lo siento si mis preguntas es muy ingenuo, pero desde ensamblajes de un solo archivo te refieres a un solo archivo como class1.cs. o si eso no parece bueno, ¿podría explicar el término un poco? –

+1

@khalidkhan: No, un ensamblaje de un solo archivo es simplemente un ensamblado que consiste en un solo archivo (generalmente un archivo .dll o .exe). Todavía podría proceder de múltiples archivos * fuente *. Es muy raro que termine con un ensamblaje de varios archivos ... No recuerdo haberlo usado nunca. –

11

Bueno, un .NET dll es un ensamblado, pero los .NET exe también pueden ser ensamblados, por lo que todos los .NET dlls son ensamblados, pero lo contrario no es cierto.

No debe estar enviando el código real a un cliente. Por el contrario, debe tener las definiciones de tipo en ambos lados (cliente y servidor) y enviar instancias serializadas entre las dos.

+0

Excepto las DLL nativas; No sé si consideraría esas "asambleas" ya que el término aquí parece ser más un uso de .NET. – BobbyShaftoe

+0

@BobbyShaftoe: actualicé la respuesta para especificar ensamblajes .NET. – casperOne

+0

@capserOne - ¿Puede explicar detalladamente las "instancias serializadas"? – Pushkar

0

Bien, "ensamblado" es un término usado para un recurso .NET. Esto no necesariamente es una DLL. Una DLL puede ser un recurso .NET pero también puede ser un recurso "nativo". Un ensamblaje puede empaquetarse en una DLL o en un EXE. Solo depende del ensamble particular.

Si esta es como su otra pregunta, debe enviar el archivo que contiene el conjunto. Es posible que puedas hacer algo más complicado, pero será solo eso.

1

Un ensamblado es el código precompilado que se pasará al .NET JIT Runtime.

Es un formato independiente de la máquina para el código que puede ejecutar cualquier .NET Command Lanuage Runtime.

Las DLL y EXEs son los formatos comunes para los ensamblados.

+2

Es.Net Common Language Runtime no comando tiempo de ejecución ... –

1

. Ej 1.Estos son archivos salientes. 2. Solo existe un archivo .exe por aplicación. 3.. Exe no se puede compartir con otras aplicaciones.

.dll 1.Están en archivo inbund. 2.Many archivos .dll pueden existir en una aplicación. 3. .dll se puede compartir con otras aplicaciones.

0

Cualquier DLL construida a partir de un proyecto .NET es un ensamblado, como es un ejecutable. Los ensamblados no solo contienen el código CLI para ejecutarse en Common Language Runtime, sino que también contienen información completa sobre las clases y la estructura del código en el ensamblado.

Las DLL nativas son diferentes, ya que contienen casi ninguna metainformación sobre el código y los recursos contenidos en la DLL. Un ejecutable nativo es casi idéntico a un archivo DLL.

Los ensambles son maravillosos debido a su modularidad y los metadatos API integrados.

0

Asambleas pueden ser organizados en un solo archivo, donde toda esta información se incorpora en un solo archivo de biblioteca de vínculos dinámicos (DLL) o un archivo ejecutable (EXE), o múltiples archivos donde la información se incorpora a los archivos DLL separados principales funciones de un ensamblaje es formar un límite para tipos, referencias y seguridad. Otra función importante del ensamblaje es formar una unidad para el despliegue.

De forma predeterminada, cuando se crea un ensamblaje, se marca como privado. Si el ensamblaje se debe compartir entre varios ensamblados de cliente, se coloca en el GAC, una carpeta especial de Windows. Para convertir un ensamblado privado en un ensamblado compartido, debe ejecutar un programa de utilidad para crear claves de cifrado, y debe firmar el ensamblaje con las claves. Después de firmar el ensamblaje, debe usar otra utilidad para agregar el ensamblado compartido al GAC.

5

Un ensamblaje es básicamente un archivo que contiene el código MSIL y los metadatos. Es la unidad más pequeña de implementación de aplicaciones .NET. Un ensamblado en .NET tiene 2 extensiones (.exe y .dll)

dll: biblioteca de vínculos dinámicos. Así, podemos decir que un archivo DLL es un montaje, sino una asamblea no siempre puede haber una DLL

En otras palabras, DLL es un tipo de una asamblea

1

1: proyecto DLL independiente.

2: el montaje es específico del proyecto.

3: Un ensamblado es una colección de uno o más archivos y uno de ellos es DLL o EXE.

4: DLL contiene código de biblioteca para ser utilizado por cualquier programa que se ejecute en Windows. Una DLL puede contener bibliotecas estructuradas u orientadas a objetos.

5: Un archivo DLL puede tener una cantidad casi infinita de puntos de entrada posibles.

6: El conjunto presente en el contenedor puede tener nombre fuerte/débil y ensamblaje en GAC Debe tener un nombre seguro.

1

Esta pregunta no parece válida. Ambos .dll y .exe son ensamblados. Esto es solo extensión del ensamblaje. Ambas pueden contener código MSIL, pero .exe tiene un solo punto de entrada, es decir, función principal. Pero .dll puede tener muchos puntos de entrada.

El ensamblaje es la unidad más pequeña de implementación y puede ser una DLL o EXE. Este conjunto son dos tipos estáticos y dinámicos. Tenemos otro tipo de ensamblaje estático, conocido como ensamblaje de satélite que contiene recursos (imágenes, archivos de recursos, etc.). Puede usar nombres fuertes para el ensamblaje para que esté disponible para su uso en el mundo mediante el registro en GAC.

+0

existe una diferencia entre un ensamblado y una biblioteca (DLL) y un archivo DLL no es ejecutable. –

1

Un ensamblaje es un archivo que contiene el código compilado. Hay dos tipos de asambleas. Cuando compila su programa C#, está creando un ensamblaje. Los ejecutables (ocasionalmente llamados "ensamblados de proceso") tienen la extensión de archivo EXE. Todos los programas en nuestro libro están compilados como ejecutables. Esas son las asambleas que puedes ejecutar; Ya sabes, los archivos EXE puedes hacer doble clic y ejecutar. También hay conjuntos de bibliotecas, que tienen la extensión de archivo DLL. Soporte DLL para la biblioteca de enlace dinámico. A menudo se los conoce como bibliotecas de clases porque contienen clases que puedes usar en tus programas.

Cuestiones relacionadas