Diferencia entre ensamblaje y DLL

Asamblea vs DLL

Una biblioteca es una colección de recursos que se pueden utilizar para desarrollar aplicaciones. Una biblioteca suele estar formada por subrutinas, funciones, clases, valores y tipos. Durante el proceso de vinculación (generalmente realizado por un vinculador), las bibliotecas y los ejecutables hacen referencia entre sí. Los archivos DLL son los archivos de la biblioteca que están vinculados dinámicamente. DLL fue desarrollado por Microsoft. Pero debido a algunos problemas presentes con los archivos DLL, Microsoft creó el formato de archivo de ensamblaje (con el marco .NET). Los archivos de ensamblaje son muy similares a los DLL físicamente, pero tienen muchas diferencias internas.

Que es DLL?

Dynamic Link Library (más conocida como DLL) es una implementación de biblioteca compartida desarrollada por Microsoft. Utiliza las extensiones .dll, .ocx o .drv y se usan en los sistemas operativos Microsoft Windows y OS / 2 ... los archivos DLL normales usan dll. Y la extensión .ocx es utilizada por las bibliotecas que contienen controles ActiveX y la extensión .drv es utilizada por los archivos de controladores del sistema heredados. El formato de archivo DLL es el mismo que el de los archivos EXE de Windows (archivos ejecutables portátiles en Windows de 32 bits / 64 bits y Nuevo ejecutable en Windows de 16 bits). Por lo tanto, cualquier combinación de código, datos y recursos puede estar contenida en archivos DLL (como en los archivos EXE). De hecho, los archivos de datos con el formato de archivo DLL se denominan recursos DLL. Las bibliotecas de iconos (con la extensión .icl) y los archivos de fuentes (con las extensiones .fon y .fot) son ejemplos de DLL de recursos.

Los componentes llamados secciones forman una DLL y cada sección tiene sus propios atributos, como de solo lectura / escritura y ejecutable / no ejecutable. Las secciones de código son ejecutables, mientras que las secciones de datos no son ejecutables. Las secciones de código son compartidas y las secciones de datos son privadas. Eso significa que todos los procesos que usan la DLL utilizarán la misma copia del código, mientras que cada proceso tendrá su propia copia de los datos. La biblioteca dinámica principal para Windows es kernel32.dll, que contiene las funciones básicas (funcionalidad relacionada con archivos y memoria) en Windows. COM (Component Object Model) es la extensión de DLL a OOP (programación orientada a objetos). Las DLL convencionales son más fáciles de usar que los archivos COM.

Que es una asamblea?

Microsoft introdujo los archivos de ensamblaje para resolver varios problemas presentes con los archivos DLL. Los archivos de ensamblaje se introdujeron con Microsoft .NET Framework. Una unidad lógica de funcionalidad ejecutable se denomina ensamblaje. Los ensamblajes son ejecutables bajo .NET CLR (Common Language Runtime). Físicamente, los ensamblajes existen como archivos EXE o DLL. Pero, son muy diferentes a las DLL de Microsoft Win32, internamente. Un archivo de ensamblaje se compone de un manifiesto, metadatos, MISL (código de Microsoft Intermediate Language) y otros recursos. Una asamblea se autodescribe. El manifiesto contiene información como nombre, versión, cultura, nombre seguro, lista de archivos, tipos y dependencias. El código MISL se ejecuta a través de CLR (no se puede ejecutar directamente).

¿Cuál es la diferencia entre ensamblador y DLL??

DLL es una biblioteca enlazada dinámicamente. Aunque los ensamblajes son físicamente iguales a los DLL, son muy diferentes internamente. No es posible mantener la coherencia entre un conjunto de DLL, pero el CLR puede mantener la coherencia entre un conjunto de conjuntos, porque los conjuntos se autodescriben (contienen la lista de dependencias internamente). A diferencia de las DLL, la información de las versiones se impone para los ensamblajes (por el CLR). La implementación en paralelo (diferentes aplicaciones que usan diferentes versiones) es posible con ensamblajes.