Co je spravovaný kód?
„Spravovaný kód“ je termín vytvořený společností Microsoft® Coproration. Tento termín se týká programového kódu, který vyžaduje použití virtuálního počítače Common Language Runtime (CLR). Termín „nespravovaný kód“ se používá k označení programového kódu, který nevyžaduje tento virtuální počítač.
Common Language Runtime byl vyvinut ve snaze umožnit programům běžet na různých počítačích a operačních systémech bez nutnosti jakýchkoli změn v programovém kódu. Za tímto účelem je kód počítačového programu převeden na bytecode virtuálního stroje. Tento bytecode je potom interpretován virtuálním strojem CLR a převeden na bytecode pro konkrétní počítač, na kterém je spuštěn.
Spravovaný kód je možné spustit na jakémkoli počítači, který je vybaven virtuálním strojem CLR. Tento vysoký stupeň přenositelnosti mu dává jednoznačnou výhodu oproti nespravovanému kódu. Nespravovaný kód vyžaduje, aby programátoři změnili programový kód pro použití na různých strojích. Tento proces může být nejen pomalý, ale také může vést k mnoha aplikačním chybám.
Další výhodou spravovaného kódu je jeho zvýšené zabezpečení. Zabezpečení programu vytvořeného pomocí nespravovaného kódu silně závisí na implementaci, kterou programátoři provedli. Použití virtuálního počítače CLR pomáhá zbavit velkou část bezpečnostních problémů z ramen programátorů. Většina bezpečnostních problémů, které mohou nastat, se přímo soustředí na samotný virtuální stroj. To samo o sobě pomáhá centralizovat problémy, což zrychluje implementaci bezpečnostních oprav.
Otázka, zda je určitá sada kódu spravovaným kódem nebo nespravovaným kódem, je pro počítačové programátory nesmírně důležitá. Spravovaný kód má vyšší stupeň přenositelnosti, ale tato přenositelnost vyžaduje, aby byl v cílovém počítači nainstalován modul Common Language Runtime. Nespravovaný kód lze naopak spustit bez přidání CLR.
Použití spravovaného kódu má mnoho výhod, existuje však několik nevýhod. Hlavní nevýhodou je režijní náklady, které vyžaduje použití virtuálního stroje CLR. Rozdíl mezi rychlostí, kterou běží spravovaný kód, a rychlostí nespravovaného kódu je často zanedbatelný, ale v některých případech to vytváří velmi patrný rozdíl v době odezvy aplikace. Výsledkem je, že nespravovaný kód hraje klíčovou roli ve většině aplikací, které vyžadují vysokou rychlost přenosu přes přenositelnost.