Skirtumas tarp asamblėjos ir DLL

Asamblėja vs DLL

Biblioteka yra išteklių, kuriuos galima naudoti kuriant programas, rinkinys. Biblioteka paprastai sudaroma iš paprogramių, funkcijų, klasių, reikšmių ir tipų. Susiejimo proceso metu (dažniausiai tai daro siejamasis ryšys) bibliotekos ir vykdomieji failai daro nuorodą vienas į kitą. DLL failai yra bibliotekos failai, kurie yra dinamiškai susieti. DLL sukūrė „Microsoft“. Bet dėl ​​tam tikrų problemų, susijusių su DLL failais, „Microsoft“ sugalvojo „Assembly“ failo formatą (su .NET sistema). Asamblėjos failai fiziškai yra labai panašūs į DLL, tačiau jie turi daug vidinių skirtumų.

Kas yra DLL?

Dinaminių nuorodų biblioteka (plačiau žinoma kaip DLL) yra bendro naudojimo biblioteka, kurią sukūrė „Microsoft“. Jis naudoja .dll, .ocx arba .drv plėtinius ir yra naudojamas „Microsoft Windows“ ir OS / 2 operacinėse sistemose. Dll yra naudojami įprasti DLL failai. O .ocx plėtinį naudoja bibliotekos, kuriose yra „ActiveX“ valdikliai, o .drv plėtinį naudoja senosios sistemos tvarkyklės failai. DLL failo formatas yra toks pat kaip „Windows EXE“ failų (32 bitų / 64 bitų „Windows“ nešiojamieji vykdomieji failai ir 16 bitų „Windows“ naujieji vykdomieji failai). Todėl bet koks kodo, duomenų ir išteklių derinys gali būti pateiktas DLL failuose (kaip ir EXE failuose). Faktiškai duomenų failai su DLL failo formatu yra vadinami išteklių DLL. Piktogramų bibliotekos (su .icl plėtiniu) ir šriftų failai (su .fon ir .fot plėtiniais) yra išteklių DLL pavyzdžiai.

Komponentai, vadinami sekcijomis, sudaro DLL ir kiekvienas skyrius turi savo atributus, tokius kaip tik skaitomas / rašomas ir vykdomasis / nevykdomas. Kodo sekcijos yra vykdomosios, o duomenų sekcijos - nevykdomos. Kodo skyriai yra bendrinami, o duomenų skyriai yra privatūs. Tai reiškia, kad visi procesai, naudojantys DLL, naudos tą pačią kodo kopiją, o kiekvienas procesas turės savo duomenų kopiją. Pirminė „Windows“ dinaminė biblioteka yra kernel32.dll, kurioje yra pagrindinės „Windows“ funkcijos (failo ir atminties funkcijos). COM (Component Object Model) yra DLL išplėtimas iki OOP (Object Oriented Programming). Įprastinius DLL yra lengviau naudoti nei COM failus.

Kas yra asamblėja?

Asamblėjos failus pristatė „Microsoft“, norėdama išspręsti keletą problemų, susijusių su DLL failais. Surinkimo failai buvo supažindinti su „Microsoft .NET“ sistema. Vykdomas loginis funkcinis vienetas vadinamas asamblėja. Asamblėjos yra vykdomos naudojant .NET CLR (Common Language Runtime). Fiziškai agregatai egzistuoja kaip EXE arba DLL failai. Tačiau jie labai skiriasi nuo „Microsoft Win32“ DLL. Surinkimo failą sudaro manifestas, metaduomenys, MISL („Microsoft“ tarpinės kalbos kodas) ir kiti šaltiniai. Asamblėja save apibūdina. Apraše pateikiama tokia informacija kaip vardas, versija, kultūra, stiprus vardas, failų sąrašas, tipai ir priklausomybės. MISL kodas vykdomas per CLR (jo negalima tiesiogiai vykdyti).

Kuo skiriasi asamblėja ir DLL?

DLL yra dinamiškai susieta biblioteka. Nors rinkiniai fiziškai yra lygūs DLL, jie labai skiriasi. Neįmanoma išlaikyti nuoseklumo tarp DLL rinkinio, tačiau CLR gali išlaikyti nuoseklumą tarp rinkinių, nes rinkiniai yra patys aprašomi (juose pateiktas priklausomybių sąrašas iš vidaus). Skirtingai nei DLL, versijų informacijos pateikimo tvarka vykdoma agregatuose (CLR). Dviejų pusių diegimas (skirtingos programos, naudojant skirtingas versijas) yra įmanomas naudojant agregatus.