Assemblée vs DLL
Une bibliothèque est un ensemble de ressources pouvant être utilisées pour développer des applications. Une bibliothèque est généralement composée de sous-routines, fonctions, classes, valeurs et types. Au cours du 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 avec les fichiers DLL, Microsoft a proposé le format de fichier Assembly (avec le framework .NET). Les fichiers d'assemblage ressemblent beaucoup aux DLL, mais ils présentent de nombreuses différences internes.
Quelle est la 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 elles sont utilisées dans les systèmes d’exploitation Microsoft Windows et OS / 2… La dll est utilisée par les fichiers DLL classiques. 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 identique à celui des fichiers EXE Windows (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 des fichiers DLL (comme dans les fichiers EXE). En réalité, 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 DLL de ressources..
Les composants appelés sections constituent une DLL et chaque section a ses propres attributs tels que lecture seule / écriture 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 disposera de sa propre copie des données. La bibliothèque dynamique principale pour Windows est kernel32.dll, qui contient les fonctions de base (fonctionnalité relative aux fichiers et à la mémoire) sous Windows. COM (Component Object Model) est l'extension de DLL vers OOP (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 liés aux fichiers DLL. Les fichiers d'assemblage ont été introduits avec le framework Microsoft .NET. Une unité logique de fonctionnalité exécutable est appelée un assemblage. Les assemblys sont exécutables sous .NET CLR (Common Language Runtime). Physiquement, les assemblys existent en tant que fichiers EXE ou DLL. Mais, elles sont très différentes des DLL Microsoft Win32, en interne. Un fichier d'assembly est constitué 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 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 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 ceux-ci se décrivent automatiquement (ils contiennent la liste des dépendances en interne). Contrairement aux DLL, les informations de version sont appliquées aux assemblys (par le CLR). Le déploiement côte à côte (différentes applications utilisant différentes versions) est possible avec les assemblages..