Erinevus assamblee ja DLL-i vahel

Assamblee vs DLL

Raamatukogu on ressursside kogum, mida saab kasutada rakenduste arendamiseks. Raamatukogu koosneb tavaliselt alamprogrammidest, funktsioonidest, klassidest, väärtustest ja tüüpidest. Lingimisprotsessi ajal (mida tavaliselt teeb linker) viitavad teegid ja käivitatavad failid üksteisele. DLL-failid on dünaamiliselt lingitud raamatukogufailid. DLL töötas välja Microsoft. Kuid mõnede DLL-failidega seotud probleemide tõttu tuli Microsoft välja Assembly-vormingus (koos .NET-raamistikuga). Assambleefailid on füüsiliselt väga sarnased DLL-iga, kuid neil on palju sisemisi erinevusi.

Mis on DLL?

Dünaamiliste linkide kogu (üldisemalt tuntud kui DLL) on Microsofti välja töötatud ühiskasutatava raamatukogu teostus. See kasutab laiendusi .dll, .ocx või .drv ning neid kasutatakse Microsoft Windows ja OS / 2 opsüsteemides ... dll on tavaliste DLL-failide jaoks. Ja .ocx-laiendit kasutavad teegid, mis sisaldavad ActiveX-i juhtelemente, ja .drv-laiendit kasutavad pärandsüsteemi draiverifailid. DLL-failivorming on sama mis Windows EXE-failidega (32-bitise / 64-bitise Windowsi kaasaskantavad täitmisfailid ja 16-bitise Windowsi puhul uus käivitatavad failid). Seetõttu võivad kõik failide, koodide ja andmete kombinatsioonid sisalduda DLL-failides (nagu ka EXE-failides). Tegelikult nimetatakse DLL-vormingus andmefaile ressursside DLL-ideks. Ikooniteegid (laiendiga .icl) ja fondifailid (laienditega .fon ja .fot) on ressursside DLL-ide näited.

Komponendid, mida nimetatakse sektsioonideks, moodustavad DLL-i ja igal sektsioonil on oma atribuudid nagu kirjutuskaitstud / kirjutatav ja käivitatav / mitte käivitatav. Koodilõigud on käivitatavad, samas kui andmejaotised pole käivitatavad. Koodilõigud on jagatud ja andmejaod on privaatsed. See tähendab, et kõik DLL-i kasutavad protsessid kasutavad sama koodi koopiat, samal ajal kui igal protsessil on oma andmete koopia. Esmane Windowsi dünaamiline teek on kernel32.dll, mis sisaldab Windowsi põhifunktsioone (faili ja mäluga seotud funktsioonid). COM (Component Object Model) on DLL-i laiendamine OOP-le (objektorienteeritud programmeerimine). Tavalisi DLL-e on lihtsam kasutada kui COM-faile.

Mis on assamblee?

Assambleefaile tutvustas Microsoft, et lahendada mitmeid DLL-failidega seotud probleeme. Assambleefaile tutvustati Microsofti .NET raamistikuga. Täidetavat loogilist funktsionaalsuse ühikut nimetatakse assambleeks. Assambleed on käivitatavad .NET CLR (Common Language Runtime) alusel. Füüsiliselt eksisteerivad agregaadid EXE- või DLL-failidena. Kuid nad erinevad sisemiselt Microsoft Win32 DLL-idest. Koondamisfail koosneb manifestist, metaandmetest, MISL-ist (Microsofti vahekeele kood) ja muudest ressurssidest. Assamblee kirjeldab ennast. Manifest sisaldab teavet, nagu nimi, versioon, kultuur, tugev nimi, faililoend, tüübid ja sõltuvused. MISL-koodi täidetakse CLR-i kaudu (seda ei saa otse käivitada).

Mis vahe on montaažil ja DLL-il??

DLL on dünaamiliselt ühendatud teek. Kuigi assambleed on füüsiliselt võrdsed DLL-iga, on nad sisemiselt väga erinevad. DLL-i komplektide vahelist järjepidevust pole võimalik säilitada, kuid CLR võib säilitada järjepidevust komplektide komplekti vahel, kuna sõlmed on ise kirjeldavad (sisaldavad sisemiselt sõltuvuste loendit). Erinevalt DLL-idest jõustatakse versioonide koostamise teave sõlmede jaoks (CLR). Side-by-side juurutamine (erinevad rakendused, kasutades erinevaid versioone) on koostudega võimalik.