Assemblée vs DLL
Une bibliothèque est un ensemble 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 liés aux 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 que DLL?
Dynamic Link Library (plus communément appelé 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 les fichiers EXE Windows (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 (comme dans les fichiers EXE). En fait, les fichiers de données au format 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 DLL de ressources.
Les composants appelés sections constituent une DLL et chaque section a ses propres attributs tels que 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 bibliothèque dynamique principale 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 à OOP (Object Oriented Programming). 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 liés aux 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 assemblys sont exécutables sous. NET CLR (Common Language Runtime). Physiquement, les assemblys existent sous forme de fichiers EXE ou DLL. Mais, ils sont très différents des DLL Microsoft Win32, en interne. Un fichier d'assembly est composé d'un manifeste, de métadonnées, de MISL (code Microsoft Intermediate Language) et d'autres ressources. Un assemblage se décrit lui-même. 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'assemblys, car les assemblys sont auto-descriptifs (ils contiennent la liste des dépendances en interne). Contrairement aux DLL, les informations de contrôle de version sont appliquées pour les assemblys (par le CLR). Le déploiement côte à côte (différentes applications utilisant différentes versions) est possible avec les assemblys.