Assembly vs DLL
Et bibliotek er en samling af ressourcer, der kan bruges til at udvikle applikationer. Et bibliotek består norm alt af underrutiner, funktioner, klasser, værdier og typer. Under sammenkædningsprocessen (norm alt udført af en linker), refererer biblioteker og eksekverbare til hinanden. DLL-filer er de biblioteksfiler, der er linket dynamisk. DLL blev udviklet af Microsoft. Men på grund af nogle problemer med DLL-filer, kom Microsoft med Assembly-filformatet (med. NET frameworket). Assembly-filer minder fysisk meget om DLL'er, men de har mange interne forskelle.
Hvad er DLL?
Dynamic Link Library (mere kendt som DLL) er en delt biblioteksimplementering udviklet af Microsoft. Den bruger.dll-,.ocx- eller.drv-udvidelserne, og de bruges i Microsoft Windows og OS/2-operativsystemer..dll bruges af de almindelige DLL-filer. Og.ocx-udvidelsen bruges af de biblioteker, der indeholder ActiveX-kontroller, og.drv-udvidelsen bruges af ældre systemdriverfiler. DLL-filformatet er det samme som Windows EXE-filerne (bærbare eksekverbare filer på 32-bit/64-bit Windows og New Executable på 16-bit Windows). Derfor kan enhver kombination af kode, data og ressourcer være indeholdt i DLL-filer (ligesom i EXE-filer). Faktisk kaldes datafiler med DLL-filformatet ressource-DLL'er. Ikonbiblioteker (med.icl-udvidelse) og skrifttypefiler (med.fon- og.fot-udvidelser) er eksempler på ressource-DLL'er.
Komponenter kaldet sektioner udgør en DLL og hver sektion har sine egne attributter som skrivebeskyttet/skrivbar og eksekverbar/ikke eksekverbar. Kodesektioner er eksekverbare, mens datasektioner ikke kan eksekveres. Kodesektionerne er delte og datasektioner er private. Det betyder, at alle processer, der bruger DLL'en, vil bruge den samme kopi af koden, mens hver proces vil have sin egen kopi af dataene. Det primære dynamiske bibliotek for Windows er kernel32.dll, som indeholder basisfunktionerne (fil- og hukommelsesrelateret funktionalitet) på Windows. COM (Component Object Model) er udvidelsen af DLL til OOP (Object Oriented Programming). Konventionelle DLL'er er nemmere at bruge end COM-filer.
Hvad er en forsamling?
Assembly-filer blev introduceret af Microsoft for at løse flere problemer med DLL-filer. Assembly filer blev introduceret med Microsoft. NET frameworket. En eksekverbar logisk enhed af funktionalitet kaldes en samling. Samlinger kan eksekveres under. NET CLR (Common Language Runtime). Fysisk eksisterer samlinger som EXE- eller DLL-filer. Men de er meget forskellige fra Microsoft Win32 DLL'er internt. En samlingsfil består af et manifest, metadata, MISL (Microsoft Intermediate Language code) og andre ressourcer. En forsamling er selvbeskrivende. Manifestet indeholder oplysninger som navn, version, kultur, stærkt navn, filliste, typer og afhængigheder. MISL-koden udføres gennem CLR (den kan ikke udføres direkte).
Hvad er forskellen mellem Assembly og DLL?
DLL er et dynamisk linket bibliotek. Selvom samlinger fysisk er lig med DLL'er, er de meget forskellige internt. Det er ikke muligt at opretholde konsistens mellem et sæt af DLL'er, men CLR'en kan opretholde konsistens mellem et sæt af forsamlinger, fordi forsamlinger er selvbeskrivende (de indeholder listen over afhængigheder internt). I modsætning til DLL'er håndhæves versionsinformation for samlinger (af CLR). Udrulning side om side (forskellige applikationer, der bruger forskellige versioner) er mulig med samlinger.