Assembly vs DLL
A könyvtár olyan erőforrások gyűjteménye, amely alkalmazások fejlesztésére használható. A könyvtár általában szubrutinokból, függvényekből, osztályokból, értékekből és típusokból áll. A csatolási folyamat során (amelyet általában egy linker végez) a könyvtárak és a végrehajtható fájlok hivatkoznak egymásra. A DLL fájlok azok a könyvtárfájlok, amelyek dinamikusan kapcsolódnak egymáshoz. A DLL-t a Microsoft fejlesztette ki. De a DLL fájlokkal kapcsolatos problémák miatt a Microsoft előállt az Assembly fájlformátummal (a. NET keretrendszerrel). Az összeállítási fájlok fizikailag nagyon hasonlóak a DLL-ekhez, de sok belső különbségük van.
Mi az a DLL?
Dynamic Link Library (közismertebb nevén DLL) a Microsoft által kifejlesztett megosztott könyvtári megvalósítás. A.dll,.ocx vagy.drv kiterjesztést használja, és Microsoft Windows és OS/2 operációs rendszerekben használják. A.dll fájlt a szokásos DLL-fájlok használják. Az.ocx kiterjesztést pedig az ActiveX-vezérlőket tartalmazó könyvtárak, a.drv kiterjesztést pedig a régebbi rendszer-illesztőprogram-fájlok használják. A DLL-fájl formátuma megegyezik a Windows EXE-fájlokéval (32-bites/64-bites Windows-on hordozható végrehajtható fájlok, 16 bites Windows-on pedig új végrehajtható fájlok). Ezért a kód, az adatok és az erőforrások bármilyen kombinációja megtalálható a DLL-fájlokban (akárcsak az EXE-fájlokban). Valójában a DLL fájlformátumú adatfájlokat erőforrás-DLL-nek nevezzük. Az ikonkönyvtárak (.icl kiterjesztéssel) és a fontfájlok (.fon és.fot kiterjesztéssel) példák az erőforrás-DLL-ekre.
A szekcióknak nevezett komponensek egy DLL-t alkotnak, és minden szakasznak saját attribútumai vannak, például csak olvasható/írható és végrehajtható/nem futtatható. A kódszakaszok végrehajthatók, míg az adatszakaszok nem futtathatók. A kódszakaszok megosztottak, az adatszakaszok pedig privátak. Ez azt jelenti, hogy a DLL-t használó összes folyamat ugyanazt a kódmásolatot fogja használni, míg minden folyamatnak saját másolata lesz az adatokról. A Windows elsődleges dinamikus könyvtára a kernel32.dll, amely tartalmazza az alapfunkciókat (a fájlokkal és memóriával kapcsolatos funkciókat) a Windows rendszeren. A COM (Component Object Model) a DLL kiterjesztése OOP-ra (Object Oriented Programming). A hagyományos DLL-ek könnyebben használhatók, mint a COM-fájlok.
Mi az a szerelvény?
Az összeállítási fájlokat a Microsoft vezette be a DLL fájlokkal kapcsolatos számos probléma megoldása érdekében. Az összeállítási fájlok a Microsoft. NET keretrendszerrel kerültek bevezetésre. A funkcionalitás végrehajtható logikai egységét összeállításnak nevezzük. Az összeállítások. NET CLR (Common Language Runtime) alatt futtathatók. Fizikailag az összeállítások EXE vagy DLL fájlokként léteznek. De belsőleg nagyon különböznek a Microsoft Win32 DLL-ektől. Az összeállítási fájl jegyzékből, metaadatokból, MISL-ből (Microsoft Intermediate Language Code) és egyéb erőforrásokból áll. Egy összeállítás önmagát írja le. A jegyzék olyan információkat tartalmaz, mint a név, verzió, kultúra, erős név, fájllista, típusok és függőségek. A MISL kód végrehajtása CLR-en keresztül történik (közvetlenül nem hajtható végre).
Mi a különbség az Assembly és a DLL között?
A DLL egy dinamikusan összekapcsolt könyvtár. Bár az összeállítások fizikailag megegyeznek a DLL-ekkel, belül nagyon különböznek egymástól. A DLL-ek halmaza között nem lehet konzisztenciát fenntartani, de a CLR képes konzisztenciát fenntartani az összeállítások halmaza között, mivel az összeállítások önleíróak (belül tartalmazzák a függőségek listáját). Ellentétben a DLL-ekkel, a verziókezelési információkat a rendszer kényszeríti az összeállításokra (a CLR által). Egymás melletti telepítés (különböző alkalmazások különböző verzióit használva) összeállításokkal lehetséges.