Assembly vs DLL
A könyvtár olyan erőforrások gyűjteménye, amelyek felhasználhatók alkalmazások fejlesztésére. A könyvtár általában alprogramokból, függvényekből, osztályokból, értékekből és típusokból áll. Az összekapcsolási folyamat során (általában összekötő végzi) a könyvtárak és a futtatható fájlok hivatkoznak egymásra. A DLL fájlok a dinamikusan összekapcsolt könyvtárfájlok. 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 (. NET keretrendszerrel). Az összeállítási fájlok fizikailag nagyon hasonlítanak a DLL-ekhez, de sok belső különbség van bennük.
Mi a DLL?
A Dynamic Link Library (közismertebb nevén DLL) egy megosztott könyvtár-megvalósítás, amelyet a Microsoft fejlesztett ki. A.dll,.ocx vagy.drv kiterjesztéseket használja, és ezeket a Microsoft Windows és az 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égi rendszerillesztő-fájlok használják. A DLL fájlformátum megegyezik a Windows EXE fájlokkal (hordozható futtatható fájlok 32 bites / 64 bites Windows rendszeren és új futtatható fájlok 16 bites Windows rendszeren). Ezért a kód, az adatok és az erőforrások bármilyen kombinációja megtalálható a DLL fájlokban (csakúgy, mint az EXE fájlokban). Valójában a DLL fájlformátumú adatfájlokat erőforrás DLL-eknek nevezzük. Az ikonkönyvtárak (.icl kiterjesztéssel) és a betűtípusfájlok (.fon és.fot kiterjesztésekkel) példák az erőforrás-DLL-ekre.
A szakaszoknak nevezett komponensek egy DLL-t alkotnak, és minden szakasznak megvan a saját attribútuma, például írásvédett / írható és futtatható / nem futtatható. A kódrészek futtathatóak, míg az adatrészek nem futtathatók. A kódrészek megosztottak, az adatrészek 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 megvan a maga saját adatmásolata. Az elsődleges dinamikus könyvtár a Windows számára a kernel32.dll, amely tartalmazza az alapfunkciókat (a fájlokkal és a 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-eket könnyebb használni, mint a COM fájlokat.
Mi az a közgyűlés?
Az összeállítási fájlokat a Microsoft vezette be a DLL fájlokkal kapcsolatos problémák megoldása érdekében. Az összeállítási fájlokat a Microsoft. NET keretrendszerrel vezették be. A funkcionalitás futtatható logikai egységét Assembly-nek nevezzük. Az összeállítások a. NET CLR (Common Language Runtime) alatt futtathatóak. Fizikailag az összeállítások EXE vagy DLL fájlként léteznek. De belsőleg nagyon különböznek a Microsoft Win32 DLL-től. Az összeállítási fájl egy jegyzékből, metaadatokból, MISL-ből (Microsoft Intermediate Language kód) és más erőforrásokból áll. Egy szerelvény önmagát írja le. A jegyzék olyan információkat tartalmaz, mint név, verzió, kultúra, erős név, fájllista, típusok és függőségek. A MISL kódot a CLR-en keresztül hajtják végre (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 fenntartani a konzisztenciát a készletek halmaza között, mert az összeállítások önmagukban írják le (magukban tartalmazzák a függőségek listáját). A DLL-ekkel ellentétben a verziókra vonatkozó információk kényszerülnek az összeállításokra (a CLR által). Egymás mellett történő telepítés (különböző alkalmazások különböző verziókat használva) szerelvényekkel lehetséges.