Différence entre Assembly et DLL

Différence entre Assembly et DLL
Différence entre Assembly et DLL

Vidéo: Différence entre Assembly et DLL

Vidéo: Différence entre Assembly et DLL
Vidéo: What is difference between Dynamic and Static library(Static and Dynamic linking) 2024, Novembre
Anonim

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, de fonctions, de classes, de valeurs et de types. Pendant le processus de liaison (généralement effectué par un éditeur de liens), les bibliothèques et les exécutables font référence les uns aux autres. Les fichiers DLL sont les fichiers de bibliothèque 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 Assembly (avec le framework. NET). Les fichiers d'assemblage sont physiquement très similaires aux DLL, mais ils présentent de nombreuses différences internes.

Qu'est-ce qu'une DLL ?

Dynamic Link Library (plus communément appelée DLL) est une implémentation de bibliothèque partagée développée par Microsoft. Il utilise les extensions.dll,.ocx ou.drv et ils sont utilisés dans les systèmes d'exploitation Microsoft Windows et OS/2..dll est utilisé par les fichiers DLL normaux. Et l'extension.ocx est utilisée par les bibliothèques qui contiennent des contrôles ActiveX et l'extension.drv est utilisée par les fichiers de pilote système hérités. Le format de fichier DLL est le même que celui des fichiers Windows EXE (fichiers exécutables portables sur Windows 32 bits/64 bits et nouvel exécutable sur Windows 16 bits). Par conséquent, toute combinaison de code, de données et de ressources peut être contenue dans des fichiers DLL (tout comme dans les fichiers EXE). En fait, les fichiers de données au format de fichier DLL sont appelés DLL de ressources. Les bibliothèques d'icônes (avec l'extension.icl) et les fichiers de polices (avec les extensions.fon et.fot) sont des exemples de ressources DLL.

Les composants appelés sections constituent une DLL et chaque section a ses propres attributs comme lecture seule/inscriptible 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 principale bibliothèque dynamique pour Windows est kernel32.dll, qui contient les fonctions de base (fonctionnalités liées aux fichiers et à la mémoire) sous Windows. COM (Component Object Model) est l'extension de DLL à la POO (Programmation Orientée Objet). Les DLL conventionnelles sont plus faciles à utiliser que les fichiers COM.

Qu'est-ce qu'une assemblée ?

Les fichiers d'assemblage ont été introduits par Microsoft afin de résoudre plusieurs problèmes présents avec les fichiers DLL. Les fichiers d'assemblage ont été introduits avec le framework Microsoft. NET. Une unité logique exécutable de fonctionnalité est appelée un assemblage. Les assemblages sont exécutables sous. NET CLR (Common Language Runtime). 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 (Microsoft Intermediate Language code) et d'autres ressources. Un assembly est auto-descriptif. Le manifeste contient des 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 exécuté directement).

Quelle est la différence entre Assembly et DLL ?

DLL est une bibliothèque liée dynamiquement. Bien que les assemblys 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 sont auto-descriptifs (ils contiennent la liste des dépendances en interne). Contrairement aux DLL, les informations de version sont appliquées pour les assemblys (par le CLR). Un déploiement côte à côte (différentes applications utilisant différentes versions) est possible avec les assemblages.

Conseillé: