Unterschied zwischen Assembly und DLL

Assembly vs. DLL

Eine Bibliothek ist eine Sammlung von Ressourcen, die zum Entwickeln von Anwendungen verwendet werden können. Eine Bibliothek besteht normalerweise aus Unterprogrammen, Funktionen, Klassen, Werten und Typen. Während des Verknüpfungsvorgangs (normalerweise durch einen Linker) verweisen Bibliotheken und ausführbare Dateien auf einander. DLL-Dateien sind die Bibliotheksdateien, die dynamisch verknüpft werden. DLL wurde von Microsoft entwickelt. Aufgrund einiger Probleme mit DLL-Dateien hat Microsoft jedoch das Assembly-Dateiformat (mit dem .NET-Framework) entwickelt. Baugruppendateien sind DLLs physisch sehr ähnlich, sie weisen jedoch viele interne Unterschiede auf.

Was ist DLL??

Dynamic Link Library (allgemein als DLL bezeichnet) ist eine von Microsoft entwickelte Implementierung der gemeinsam genutzten Bibliothek. Es verwendet die Erweiterungen .dll, .ocx oder .drv. Sie werden in Microsoft Windows- und OS / 2-Betriebssystemen verwendet… dll wird von den regulären DLL-Dateien verwendet. Die Erweiterung .ocx wird von Bibliotheken verwendet, die ActiveX-Steuerelemente enthalten, und die Erweiterung .drv wird von älteren Systemtreiberdateien verwendet. Das DLL-Dateiformat ist identisch mit den Windows-EXE-Dateien (Portable Executable-Dateien unter 32-Bit / 64-Bit-Windows und New Executable unter 16-Bit-Windows). Daher können beliebige Kombinationen von Code, Daten und Ressourcen in DLL-Dateien enthalten sein (genau wie in EXE-Dateien). Datendateien mit dem DLL-Dateiformat werden als Ressourcen-DLLs bezeichnet. Symbolbibliotheken (mit der Erweiterung .icl) und Schriftartendateien (mit den Erweiterungen .fon und .fot) sind Beispiele für Ressourcen-DLLs.

Komponenten, die als Abschnitte bezeichnet werden, bilden eine DLL, und jeder Abschnitt verfügt über eigene Attribute wie schreibgeschützt / beschreibbar und ausführbar / nicht ausführbar. Codeabschnitte sind ausführbar, während Datenabschnitte nicht ausführbar sind. Die Codeabschnitte sind freigegeben und Datenabschnitte sind privat. Das bedeutet, dass alle Prozesse, die die DLL verwenden, dieselbe Kopie des Codes verwenden, während jeder Prozess über eine eigene Kopie der Daten verfügt. Die primäre dynamische Bibliothek für Windows ist kernel32.dll, die die Basisfunktionen (Datei- und Speicherfunktionen) unter Windows enthält. COM (Component Object Model) ist die Erweiterung von DLL zu OOP (Object Oriented Programming). Herkömmliche DLLs sind einfacher zu verwenden als COM-Dateien.

Was ist eine Versammlung??

Assembly-Dateien wurden von Microsoft eingeführt, um verschiedene Probleme mit DLL-Dateien zu lösen. Assemblydateien wurden mit dem Microsoft .NET-Framework eingeführt. Eine ausführbare logische Funktionseinheit wird Assembly genannt. Baugruppen sind unter .NET CLR (Common Language Runtime) ausführbar. Baugruppen sind physisch als EXE- oder DLL-Dateien vorhanden. Sie unterscheiden sich jedoch intern stark von Microsoft Win32-DLLs. Eine Assemblydatei besteht aus einem Manifest, Metadaten, MISL-Code (Microsoft Intermediate Language Code) und anderen Ressourcen. Eine Assembly ist selbstbeschreibend. Das Manifest enthält Informationen wie Name, Version, Kultur, starker Name, Dateiliste, Typen und Abhängigkeiten. MISL-Code wird über CLR ausgeführt (er kann nicht direkt ausgeführt werden).

Was ist der Unterschied zwischen Assembly und DLL??

DLL ist eine dynamisch verknüpfte Bibliothek. Obwohl Baugruppen physikalisch gleich sind wie DLLs, unterscheiden sie sich intern stark. Es ist nicht möglich, die Konsistenz zwischen einem Satz von DLLs aufrechtzuerhalten, die CLR kann jedoch die Konsistenz zwischen einem Satz von Assemblys aufrechterhalten, da Assemblys selbstbeschreibend sind (sie enthalten intern die Liste der Abhängigkeiten). Im Gegensatz zu DLLs werden Versionsinformationen für Assemblys durch die CLR erzwungen. Side-by-Side-Bereitstellung (verschiedene Anwendungen mit unterschiedlichen Versionen) ist mit Baugruppen möglich.