Verschil tussen vergadering en DLL

Assembly vs DLL

Een bibliotheek is een verzameling bronnen die kunnen worden gebruikt om applicaties te ontwikkelen. Een bibliotheek bestaat meestal uit subroutines, functies, klassen, waarden en typen. Tijdens het koppelingsproces (meestal gedaan door een linker), verwijzen bibliotheken en uitvoerbare bestanden naar elkaar. DLL-bestanden zijn de bibliotheekbestanden die dynamisch zijn gekoppeld. DLL is ontwikkeld door Microsoft. Maar vanwege een aantal problemen met DLL-bestanden, kwam Microsoft met het Assembly-bestandsformaat (met het .NET-framework). Assemblagebestanden lijken fysiek sterk op DLL's, maar ze hebben veel interne verschillen.

Wat is DLL?

Dynamic Link Library (beter bekend als DLL) is een gedeelde bibliotheekimplementatie ontwikkeld door Microsoft. Het gebruikt de .dll, .ocx of .drv extensies en ze worden gebruikt in Microsoft Windows en OS / 2 besturingssystemen ... dll wordt gebruikt door de reguliere DLL-bestanden. En .ocx extensie wordt gebruikt door de bibliotheken die ActiveX-besturingselementen bevatten en .drv-extensie wordt gebruikt door oudere systeemstuurprogrammabestanden. Het DLL-bestandsformaat is hetzelfde als de Windows EXE-bestanden (Portable Executable-bestanden op 32-bit / 64-bit Windows en New Executable op 16bit Windows). Daarom kan elke combinatie van code, gegevens en bronnen zich in DLL-bestanden bevinden (net als in EXE-bestanden). Feitelijk worden databestanden met het DLL-bestandsformaat resource DLL's genoemd. Pictogrambibliotheken (met extensie .icl) en lettertypebestanden (met .fon- en .fot-extensies) zijn voorbeelden van resource-DLL's.

Componenten met de naam secties vormen een DLL en elke sectie heeft zijn eigen kenmerken, zoals alleen-lezen / beschrijfbaar en uitvoerbaar / niet-uitvoerbaar. Code secties zijn uitvoerbaar, terwijl datasecties niet uitvoerbaar zijn. De codegedeelten worden gedeeld en gegevenssecties zijn privé. Dat betekent dat alle processen die gebruikmaken van de DLL dezelfde kopie van de code gebruiken, terwijl elk proces een eigen kopie van de gegevens heeft. De primaire dynamische bibliotheek voor Windows is kernel32.dll, die de basisfuncties (bestands- en geheugengerelateerde functionaliteit) op Windows bevat. COM (Component Object Model) is de uitbreiding van DLL naar OOP (Object Oriented Programming). Conventionele DLL's zijn gemakkelijker te gebruiken dan COM-bestanden.

Wat is een vergadering?

Assemblagebestanden werden door Microsoft geïntroduceerd om verschillende problemen met DLL-bestanden op te lossen. Assemblagebestanden werden geïntroduceerd met het Microsoft .NET-framework. Een uitvoerbare logische eenheid van functionaliteit wordt een assembly genoemd. Assemblies zijn uitvoerbaar onder .NET CLR (Common Language Runtime). Fysiek bestaan ​​samenstellingen als EXE- of DLL-bestanden. Maar ze zijn heel verschillend van Microsoft Win32-DLL's, intern. Een assembly-bestand bestaat uit een manifest, metagegevens, MISL (Microsoft Intermediate Language code) en andere bronnen. Een assembly is zelfbeschrijvend. Het manifest bevat de informatie zoals naam, versie, cultuur, sterke naam, bestandslijst, typen en afhankelijkheden. MISL-code wordt uitgevoerd via CLR (deze kan niet rechtstreeks worden uitgevoerd).

Wat is het verschil tussen vergadering en DLL?

DLL is een dynamisch gekoppelde bibliotheek. Hoewel assembly's fysiek gelijk zijn aan DLL's, verschillen ze intern erg van elkaar. Het is niet mogelijk om de consistentie tussen een set DLL's te behouden, maar de CLR kan de consistentie tussen een set assembly's behouden, omdat assembly's zelfbeschrijvend zijn (ze bevatten intern de lijst met afhankelijkheden). In tegenstelling tot DLL's wordt versie-informatie afgedwongen voor assembly's (door de CLR). Zij-aan-zij inzet (verschillende toepassingen met verschillende versies) is mogelijk met samenstellingen.