Rozdíl mezi sestavením a DLL

Shromáždění vs DLL

Knihovna je kolekce zdrojů, které lze použít k vývoji aplikací. Knihovna se obvykle skládá z podprogramů, funkcí, tříd, hodnot a typů. Během procesu propojení (obvykle prováděného linkerem) si knihovny a spustitelné soubory vzájemně odkazují. Soubory DLL jsou soubory knihovny, které jsou dynamicky propojeny. DLL byla vyvinuta společností Microsoft. Ale kvůli některým problémům se soubory DLL, Microsoft přišel s formátem souboru Assembly (s .NET framework). Soubory sestavení jsou velmi podobné knihovnám DLL fyzicky, ale mají mnoho vnitřních rozdílů.

Co je DLL?

Dynamic Link Library (běžně známá jako DLL) je implementace sdílené knihovny vyvinutá společností Microsoft. Používá přípony .dll, .ocx nebo .drv a používají se v operačních systémech Microsoft Windows a OS / 2 ... dll používají běžné soubory DLL. Příponu .ocx používají knihovny, které obsahují ovládací prvky ActiveX, a příponu .drv používají starší soubory systémových ovladačů. Formát souboru DLL je stejný jako soubory EXE systému Windows (přenosné spustitelné soubory v 32bitovém / 64bitovém systému Windows a nový spustitelný soubor v 16bitovém systému Windows). Proto jakákoli kombinace kódu, dat a zdrojů může být obsažena v souborech DLL (stejně jako v souborech EXE). Ve skutečnosti jsou datové soubory ve formátu souboru DLL nazývány DLL prostředků. Knihovny ikon (s příponou .icl) a soubory písem (s příponami .fon a .fot) jsou příklady knihoven DLL prostředků.

Komponenty nazvané sekce tvoří knihovnu DLL a každá část má své vlastní atributy, jako je pouze pro čtení / zapisovatelné a spustitelné / ne spustitelné. Sekce kódu jsou spustitelné, zatímco oddíly s údaji nejsou spustitelné. Sekce kódu jsou sdílené a datové sekce jsou soukromé. To znamená, že všechny procesy používající DLL budou používat stejnou kopii kódu, zatímco každý proces bude mít svou vlastní kopii dat. Primární dynamická knihovna pro Windows je kernel32.dll, která obsahuje základní funkce (funkce souborů a paměti) ve Windows. COM (Component Object Model) je rozšíření DLL na OOP (Object Oriented Programming). Použití konvenčních DLL je snadnější než u souborů COM.

Co je shromáždění?

Soubory sestav byly zavedeny společností Microsoft s cílem vyřešit několik problémů se soubory DLL. Soubory sestavy byly představeny s rámcem Microsoft .NET. Spustitelná logická jednotka funkčnosti se nazývá Shromáždění. Sestavy jsou spustitelné pod .NET CLR (Common Language Runtime). Fyzicky sestavy existují jako soubory EXE nebo DLL. Interně se však velmi liší od knihoven Microsoft Win32 DLL. Soubor sestavy se skládá z manifestu, metadat, MISL (Microsoft Intermediate Language code) a dalších zdrojů. Sestava se popisuje. Manifest obsahuje informace jako jméno, verze, kultura, silné jméno, seznam souborů, typy a závislosti. MISL kód je prováděn pomocí CLR (nelze jej provést přímo).

Jaký je rozdíl mezi sestavením a DLL?

DLL je dynamicky propojená knihovna. Ačkoli sestavení jsou fyzicky stejné jako dll, interně jsou velmi odlišné. Není možné udržovat konzistenci mezi sadou DLL, ale CLR může udržovat konzistenci mezi sadou sestav, protože sestavy se samy popisují (obsahují interně seznam závislostí). Na rozdíl od knihoven DLL jsou informace o verzích vynucovány u sestav (CLR). Nasazení vedle sebe (různé aplikace používající různé verze) je možné u sestav.