Rozdíl mezi DLL a EXE v .Net

DLL vs EXE v .Net

Při programování v .NET máte na výběr, zda chcete vytvořit EXE nebo DLL. Tyto dva obsahují spustitelný kód, ale existuje rozdíl mezi DLL a EXE v tom, jak fungují. EXE znamená spustitelný soubor, což znamená, že se jedná o server mimo proces. Pokud spustíte EXE, vytvoří se jeho vlastní vlákno a prostředky pro něj budou přiděleny. Naproti tomu DLL je server v procesu, což znamená, že soubor DLL nelze spustit samostatně. Spuštěná aplikace načte a volá knihovnu DLL, aby mohla použít kód v ní uložený.

Hlavním účelem knihovny DLL je, abyste mohli program rozdělit na několik částí. To snižuje složitost a usnadňuje lokalizaci problémů. Pokud vložíte celý svůj kód do jediného spustitelného souboru, bude to dost velké a načtení bude nějakou dobu trvat. Výhoda opakovaného použití získáte také, pokud používáte knihovny DLL. Řekněme například, že máte kód, který exportuje soubor do nového formátu, pokud jej vložíte do knihovny DLL, můžete tuto funkci použít téměř u jakéhokoli programu, který vytváříte. Pokud jste ji místo toho umístili dovnitř EXE, může ji používat pouze tato aplikace, protože tato funkce nebude ostatním viditelná. Pro úkoly obecného použití je použití DLL velmi výhodné.

Při kódování programu v prostředí .Net musíte mít spustitelný soubor, protože by to byl ten, který bude spuštěn uživatelem. Soubor EXE je nezbytný, protože by sloužil jako vstupní nebo výchozí bod pro váš program. Potom můžete mít tolik dll, kolik chcete. Mít více než jeden EXE není opravdu vhodné, protože jeden by nemohl využít druhého.

DLL jsou velmi užitečné, pokud hodně programujete nebo děláte poměrně komplikované a rozsáhlé aplikace. Ale pokud právě děláte jednoduchý program, použití DLL není nutné. Udržování kódu v jediném EXE je jednodušší a pohodlnější.

Souhrn:

  1. EXE je spustitelný soubor, zatímco DLL je server v procesu
  2. DLL jsou opakovaně použitelné, zatímco EXE nejsou
  3. Měli byste mít pouze jeden EXE, ale můžete mít více DLL
  4. EXE je nezbytný v programování .NET, zatímco DLL nemusí být nezbytně nutná