Zhromaždenie verzus DLL
Knižnica je zbierka zdrojov, ktoré možno použiť na vývoj aplikácií. Knižnica sa zvyčajne skladá z podprogramov, funkcií, tried, hodnôt a typov. Počas procesu prepájania (zvyčajne pomocou linkera) si knižnice a spustiteľné súbory navzájom odkazujú. Súbory DLL sú súbory knižníc, ktoré sú dynamicky spojené. DLL bola vyvinutá spoločnosťou Microsoft. Ale kvôli problémom, ktoré sa vyskytujú v súboroch DLL, Microsoft prišiel s formátom súboru Assembly (s .NET framework). Súbory zhromaždenia sú fyzicky veľmi podobné dll, ale majú mnoho vnútorných rozdielov.
Čo je to DLL?
Knižnica Dynamic Link Library (častejšie známa ako DLL) je implementácia zdieľanej knižnice vyvinutá spoločnosťou Microsoft. Používa prípony .dll, .ocx alebo .drv a používajú sa v operačných systémoch Microsoft Windows a OS / 2 ... dll používajú bežné súbory DLL. Príponu .ocx používajú knižnice, ktoré obsahujú ovládacie prvky ActiveX, a príponu .drv používajú staršie súbory systémových ovládačov. Formát súboru DLL je rovnaký ako súbor Windows EXE (prenosné spustiteľné súbory v 32-bitovom / 64-bitovom systéme Windows a nový spustiteľný súbor v 16-bitovom systéme Windows). Preto akákoľvek kombinácia kódu, údajov a zdrojov môže byť obsiahnutá v súboroch DLL (rovnako ako v súboroch EXE). Dátové súbory vo formáte súboru DLL sa v skutočnosti nazývajú zdrojové dll. Knižnice ikon (s príponou .icl) a súbory fontov (s príponami .fon a .fot) sú príklady knižníc DLL zdrojov.
Komponenty nazývané sekcie tvoria knižnicu DLL a každá sekcia má svoje vlastné atribúty, ako je iba na čítanie / zapisovanie a spustiteľné / nevykonateľné. Časti kódu sú spustiteľné, zatiaľ čo oddiely údajov nie sú spustiteľné. Úseky kódu sú zdieľané a oddiely údajov sú súkromné. To znamená, že všetky procesy používajúce knižnicu DLL budú používať rovnakú kópiu kódu, zatiaľ čo každý proces bude mať svoju vlastnú kópiu údajov. Primárna dynamická knižnica pre Windows je kernel32.dll, ktorá obsahuje základné funkcie (funkcie týkajúce sa súborov a pamäte) vo Windows. COM (Component Object Model) je rozšírenie DLL na OOP (Object Oriented Programming). Bežné knižnice DLL sa používajú ľahšie ako súbory COM.
Čo je Zhromaždenie?
Súbory zhromaždenia boli zavedené spoločnosťou Microsoft s cieľom vyriešiť niekoľko problémov so súbormi DLL. Súbory zhromaždenia boli predstavené s rámcom Microsoft .NET. Spustiteľná logická jednotka funkčnosti sa nazýva Zhromaždenie. Zostavy sú spustiteľné pod .NET CLR (Common Language Runtime). Zostavy fyzicky existujú ako súbory EXE alebo DLL. Interne sa však veľmi líšia od knižníc DLL systému Microsoft Win32. Súbor zostavy sa skladá z manifestu, metadát, MISL (Microsoft Intermediate Language code) a ďalších zdrojov. Zhromaždenie sa opisuje. Manifest obsahuje informácie ako meno, verzia, kultúra, silné meno, zoznam súborov, typy a závislosti. MISL kód sa vykonáva prostredníctvom CLR (nedá sa vykonať priamo).
Aký je rozdiel medzi zhromaždením a knižnicou DLL?
DLL je dynamicky prepojená knižnica. Aj keď sú zhromaždenia fyzicky rovnaké ako dll, interne sa veľmi líšia. Nie je možné zachovať konzistenciu medzi súborom DLL, ale CLR môže udržiavať konzistenciu medzi súborom zostáv, pretože zostavy sa opisujú samy (obsahujú interne zoznam závislostí). Na rozdiel od knižníc DLL sa informácie o verzovaní vynucujú pre zhromaždenia (CLR). Nasadenie vedľa seba (rôzne aplikácie pomocou rôznych verzií) je možné so zostavami.