Différence entre l'assemblage et la DLL

Différence entre l'assemblage et la DLL

Assemblage vs dll

Une bibliothèque est une collection de ressources qui peuvent être utilisées pour développer des applications. Une bibliothèque est généralement composée de sous-programmes, fonctions, classes, valeurs et types. Pendant le processus de liaison (généralement effectué par un linker), les bibliothèques et les exécutables se font référence les uns aux autres. Les fichiers DLL sont les fichiers de bibliothèque qui sont liés dynamiquement. DLL a été développé par Microsoft. Mais en raison de certains problèmes présents avec les fichiers DLL, Microsoft a proposé le format de fichier d'assemblage (avec le .Net Framework). Les fichiers d'assemblage sont très similaires aux DLL physiquement, mais ils ont de nombreuses différences internes.

Qu'est-ce que la DLL?

La bibliothèque de liens dynamiques (plus communément connue sous le nom de DLL) est une implémentation de bibliothèque partagée développée par Microsoft. Il utilise le .dll, .OCX ou .Extensions DRV et elles sont utilisées dans les systèmes d'exploitation Microsoft Windows et OS / 2… la DLL est utilisée par les fichiers DLL réguliers. Et .L'extension OCX est utilisée par les bibliothèques contenant des contrôles ActiveX et .L'extension DRV est utilisée par les fichiers du pilote du système hérité. Le format de fichier DLL est le même que les fichiers Windows EXE (fichiers exécutables portables sous Windows 32 bits / 64 bits et nouvel exécutable sous Windows 16 bits). Par conséquent, toute combinaison de code, de données et de ressources peut être contenue dans les fichiers DLL (comme dans les fichiers EXE). En tant que mater de fait, les fichiers de données avec le format de fichier DLL sont appelés DLL Resource. Bibliothèques d'icônes (avec .Extension ICL) et fichiers de police (avec .Fon et .extensions fot) sont des exemples de DLL de ressources.

Les composants appelés sections constituent une DLL et chaque section a ses propres attributs comme en lecture seule / scénarisable et exécutable / non exécutable. Les sections de code sont exécutables, tandis que les sections de données ne sont pas exécutables. Les sections de code sont partagées et les sections de données sont privées. Cela signifie que tous les processus utilisant la DLL utiliseront la même copie du code, tandis que chaque processus aura sa propre copie des données. La bibliothèque dynamique principale pour Windows est Kernel32.DLL, qui contient les fonctions de base (fonctionnalité liée au fichier et à la mémoire) sur Windows. Com (Modèle d'objet composant) est l'extension de DLL à OOP (programmation orientée objet). Les DLL conventionnelles sont plus faciles à utiliser que les fichiers com.

Qu'est-ce qu'un assemblage?

Microsoft a été introduit par Microsoft afin de résoudre plusieurs problèmes présents avec les fichiers DLL. Des fichiers d'assemblage ont été introduits avec le Microsoft .Cadre net. Une unité logique exécutable de fonctionnalité est appelée un assemblage. Les assemblées sont exécutables sous .Net CLR (Runtime de langue commune). Physiquement, les assemblages existent sous forme de fichiers EXE ou DLL. Mais, ils sont très différents des DLL Microsoft Win32, en interne. Un fichier d'assemblage est composé d'un manifeste, de métadonnées, de MISL (Code de langue intermédiaire Microsoft) et d'autres ressources. Une assemblée se décrit. Le manifeste contient les informations telles que le nom, la version, la culture, le nom fort, la liste des fichiers, les types et les dépendances. Le code MISL est exécuté via CLR (il ne peut pas être directement exécuté).

Quelle est la différence entre l'assemblage et la DLL?

La DLL est une bibliothèque liée dynamiquement. Bien que les assemblages soient physiquement égaux aux DLL, ils sont très différents en interne. Il n'est pas possible de maintenir la cohérence entre un ensemble de DLL, mais le CLR peut maintenir la cohérence entre un ensemble d'assemblages, car les assemblages se décrivent (ils contiennent la liste des dépendances en interne). Contrairement aux DLL, les informations de versioning sont appliquées pour les assemblages (par le CLR). Un déploiement côte à côte (différentes applications utilisant différentes versions) est possible avec les assemblages.