Ero kokoonpanon ja DLL n välillä

Assembly vs DLL

Kirjasto on kokoelma resursseja, joita voidaan käyttää sovellusten kehittämiseen. Kirjasto koostuu yleensä aliohjelmista, toiminnoista, luokista, arvoista ja tyypeistä. Yhdistämisprosessin aikana (jonka yleensä tekee linkkeri) kirjastot ja suoritettavat tiedostot viittaavat toisiinsa. DLL-tiedostot ovat kirjastotiedostoja, jotka on linkitetty dynaamisesti. Microsoft on kehittänyt DLL. Mutta DLL-tiedostojen ongelmien vuoksi Microsoft keksi Assembly-tiedostomuodon (.NET-kehyksen kanssa). Kokoonpanotiedostot ovat fyysisesti hyvin samanlaisia ​​kuin DLL-tiedostot, mutta niillä on monia sisäisiä eroja.

Mikä on DLL?

Dynaaminen linkkikirjasto (tunnetaan yleisemmin nimellä DLL) on Microsoftin kehittämä jaettu kirjastototeutus. Se käyttää .dll-, .ocx- tai .drv-laajennuksia, ja niitä käytetään Microsoft Windows- ja OS / 2-käyttöjärjestelmissä ... dll-ohjelmaa käyttävät tavalliset DLL-tiedostot. Ja .ocx-laajennusta käyttävät kirjastot, jotka sisältävät ActiveX-ohjaimet, ja .drv-laajennusta käyttävät vanhat järjestelmäajuritiedostot. DLL-tiedostomuoto on sama kuin Windows EXE-tiedostot (kannettavat suoritettavat tiedostot 32-bittisillä / 64-bittisillä Windowsilla ja Uusi suoritettavat tiedostot 16-bittisillä Windowsilla). Siksi mikä tahansa koodin, datan ja resurssien yhdistelmä voi sisältyä DLL-tiedostoihin (aivan kuten EXE-tiedostoihin). Tosiasiallisesti DLL-tiedostomuotoisia datatiedostoja kutsutaan resurssien DLL-tiedostoiksi. Kuvakekirjastot (.icl-laajennuksella) ja fonttitiedostot (.fon- ja .fot-tunnisteilla) ovat esimerkkejä resurssien DLL-tiedostoista.

Komponentit, joita kutsutaan osioiksi, muodostavat DLL: n ja jokaisella osiolla on omat määritteensä, kuten vain luku / kirjoitettava ja suoritettava / ei suoritettava. Koodiosat ovat suoritettavia, kun taas tietoosat eivät ole suoritettavia. Koodiosat ovat jaettuja ja tietoosat ovat yksityisiä. Tämä tarkoittaa, että kaikki prosessit, jotka käyttävät DLL: ää, käyttävät samaa koodin kopiota, kun taas jokaisella prosessilla on oma kopio tiedoista. Ensisijainen dynaaminen Windows-kirjasto on kernel32.dll, joka sisältää Windowsin perustoiminnot (tiedosto- ja muistiominaisuudet). COM (Component Object Model) on DLL: n laajennus OOP: iin (Object Oriented Programming). Tavanomaisia ​​DLL-tiedostoja on helpompi käyttää kuin COM-tiedostoja.

Mikä on edustajakokous?

Microsoft esitteli kokoontumistiedostot ratkaisemaan useita DLL-tiedostoihin liittyviä ongelmia. Kokoonpanotiedostot esiteltiin Microsoft .NET-kehyksen avulla. Suoritettavaa loogista toiminnallisuusyksikköä kutsutaan kokoonpanoksi. Kokoonpanot voidaan suorittaa .NET CLR -sivustolla (Common Language Runtime). Fyysisesti kokoonpanot ovat olemassa EXE- tai DLL-tiedostoina. Mutta ne eroavat sisäisesti huomattavasti Microsoft Win32 DLL-tiedostoista. Kokoonpanotiedosto koostuu manifestista, metatiedoista, MISL: stä (Microsoft Intermediate Language code) ja muista resursseista. Kokoonpano kuvaa itse. Luettelossa on tietoja, kuten nimi, versio, kulttuuri, vahva nimi, tiedostoluettelo, tyypit ja riippuvuudet. MISL-koodi suoritetaan CLR: n kautta (sitä ei voida suorittaa suoraan).

Mikä on ero Assembly- ja DLL-tiedostojen välillä?

DLL on dynaamisesti linkitetty kirjasto. Vaikka kokoonpanot ovat fyysisesti samoja kuin DLL, ne ovat sisäisesti hyvin erilaisia. Ei ole mahdollista ylläpitää johdonmukaisuutta DLL-joukkojen välillä, mutta CLR voi ylläpitää johdonmukaisuutta kokoonpanoryhmien välillä, koska kokoonpanot kuvaavat itseään (ne sisältävät luettelon riippuvuuksista sisäisesti). Toisin kuin DLL-tiedostot, versiointitiedot pannaan täytäntöön kokoonpanoille (CLR: llä). Side-by-side-käyttöönotto (eri sovellukset eri versioilla) on mahdollista kokoonpanoilla.