Diferencia entre ensamblaje y DLL

Diferencia entre ensamblaje y DLL
Diferencia entre ensamblaje y DLL

Video: Diferencia entre ensamblaje y DLL

Video: Diferencia entre ensamblaje y DLL
Video: Ciencia secreta detrás del tren más rápido jamás construido 2024, Mes de julio
Anonim

Ensamblaje frente a DLL

Una biblioteca es una colección de recursos que se pueden utilizar para desarrollar aplicaciones. Una biblioteca generalmente se compone de 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 biblioteca que están vinculados dinámicamente. DLL fue desarrollado por Microsoft. Pero debido a algunos problemas presentes con los archivos DLL, a Microsoft se le ocurrió el formato de archivo de ensamblaje (con el marco. NET). Los archivos ensamblados son muy similares a las DLL físicamente, pero tienen muchas diferencias internas.

¿Qué es DLL?

La biblioteca de vínculos dinámicos (más comúnmente conocida como DLL) es una implementación de biblioteca compartida desarrollada por Microsoft. Utiliza las extensiones.dll,.ocx o.drv y se utilizan en los sistemas operativos Microsoft Windows y OS/2..dll es utilizado por los archivos DLL regulares. Y la extensión.ocx es utilizada por las bibliotecas que contienen controles ActiveX y la extensión.drv es utilizada por los archivos del controlador del sistema heredado. 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 (al igual que en archivos EXE). De hecho, los archivos de datos con el formato de archivo DLL se denominan DLL de recursos. Las bibliotecas de iconos (con extensión.icl) y los archivos de fuentes (con extensiones.fon y.fot) son ejemplos de DLL de recursos.

Los componentes denominados secciones forman una DLL y cada sección tiene sus propios atributos, como 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 usará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 (Modelo de Objetos Componentes) 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.

¿Qué es una asamblea?

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

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

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

Recomendado: