Přehled modulu CLR (Common Language Runtime)

.NET poskytuje prostředí runtime označované jako modul CLR (Common Language Runtime), který spouští kód a poskytuje služby, které usnadňují proces vývoje.

Kompilátory a nástroje zpřístupňují funkce modulu CLR (Common Language Runtime) a umožňují psát kód, který má prospěch ze spravovaného spouštěcího prostředí. Kód, který vyvíjíte pomocí kompilátoru jazyka, který cílí na modul runtime, se nazývá spravovaný kód. Spravovaný kód přináší výhody funkcí, jako je integrace mezi jazyky, zpracování výjimek mezi jazyky, vylepšená podpora zabezpečení, správy verzí a nasazení, zjednodušený model pro interakci součástí a ladění a profilace služeb.

Poznámka:

Kompilátory a nástroje můžou vytvořit výstup, který může modul CLR (Common Language Runtime) využívat, protože systém typů, formát metadat a prostředí runtime (virtuální spouštěcí systém) jsou definovány veřejným standardem, specifikací ECMA Common Language Infrastructure. Další informace najdete v tématu ECMA C# a specifikace infrastruktury běžných jazyků.

Aby modul runtime mohl poskytovat služby spravovanému kódu, musí kompilátory jazyka generovat metadata popisující typy, členy a odkazy ve vašem kódu. Metadata jsou uložena s kódem; každý načístelný soubor přenosných spustitelných souborů (PE) common language runtime obsahuje metadata. Modul runtime používá metadata k vyhledání a načtení tříd, rozložení instancí v paměti, překlad volání metod, generování nativního kódu, vynucení zabezpečení a nastavení hranic kontextu za běhu.

Modul runtime automaticky zpracovává rozložení objektů a spravuje odkazy na objekty a uvolní je, když se už nepoužívají. Objekty, jejichž životnosti jsou spravovány tímto způsobem, se nazývají spravovaná data. Uvolňování paměti eliminuje nevracení paměti a některé další běžné programovací chyby. Pokud je váš kód spravovaný, můžete ve své aplikaci .NET použít spravovaná, nespravovaná nebo spravovaná i nespravovaná data. Vzhledem k tomu, že kompilátory jazyka poskytují své vlastní typy, jako jsou primitivní typy, nemusíte vždy vědět nebo potřebovat vědět, jestli se vaše data spravují.

Modul CLR (Common Language Runtime) usnadňuje návrh komponent a aplikací, jejichž objekty interagují napříč jazyky. Objekty napsané v různých jazycích můžou vzájemně komunikovat a jejich chování je možné úzce integrovat. Můžete například definovat třídu a pak použít jiný jazyk k odvození třídy z původní třídy nebo volání metody v původní třídě. Instanci třídy můžete předat také metodě třídy napsané v jiném jazyce. Tato integrace mezi jazyky je možná, protože kompilátory jazyků a nástroje, které cílí na modul runtime, používají společný systém typů definovaný modulem runtime. Řídí se pravidly modulu runtime pro definování nových typů a pro vytváření, používání, zachování a vazbu na typy.

V rámci metadat obsahují všechny spravované komponenty informace o součástech a prostředcích, na které byly vytvořeny. Modul runtime tyto informace používá k zajištění toho, aby vaše komponenta nebo aplikace obsahovala zadané verze všeho, co potřebuje, což znamená, že váš kód bude méně pravděpodobné, že se přeruší kvůli nějaké nemetové závislosti. Informace o registraci a stavová data už nejsou uloženy v registru, kde je obtížné navázat a udržovat. Místo toho se informace o typech, které definujete, a jejich závislostech ukládají s kódem jako metadata. Díky tomu je úloha replikace a odebrání součástí méně složitá.

Kompilátory jazyka a nástroje zpřístupňují funkce modulu runtime způsoby, které mají být pro vývojáře užitečné a intuitivní. Některé funkce modulu runtime můžou být v jednom prostředí patrnější než v jiném. Způsob prostředí runtime závisí na tom, které jazykové kompilátory nebo nástroje používáte. Pokud jste například vývojář jazyka Visual Basic, můžete si všimnout, že s modulem CLR (Common Language Runtime) má jazyk Visual Basic více objektově orientovaných funkcí než dříve. Modul runtime poskytuje následující výhody:

  • Byl vylepšen výkon.

  • Schopnost snadno používat komponenty vyvinuté v jiných jazycích.

  • Rozšiřitelné typy poskytované knihovnou tříd.

  • Jazykové funkce, jako je dědičnost, rozhraní a přetížení pro objektově orientované programování.

  • Podpora explicitního bezplatného vlákna, které umožňuje vytváření vícevláknových a škálovatelných aplikací.

  • Podpora strukturovaného zpracování výjimek

  • Podpora vlastních atributů

  • Uvolněné.

  • Použití delegátů místo ukazatelů funkce pro zvýšení bezpečnosti a zabezpečení typů Další informace o delegátech naleznete v tématu Common Type System.

Verze CLR

Verze .NET Core a .NET 5+ mají jednu verzi produktu, to znamená, že neexistuje žádná samostatná verze CLR. Seznam verzí .NET Core najdete v tématu Stažení .NET Core.

Číslo verze rozhraní .NET Framework ale nemusí nutně odpovídat číslu verze modulu CLR, který zahrnuje. Seznam verzí rozhraní .NET Framework a jejich odpovídajících verzí CLR najdete v tématu Verze a závislosti rozhraní .NET Framework.

Titulek Popis
Proces spravovaného spuštění Popisuje kroky potřebné k využití modulu CLR (Common Language Runtime).
Automatická správa paměti Popisuje, jak systém uvolňování paměti přiděluje a uvolní paměť.
Přehled rozhraní .NET Framework Popisuje klíčové koncepty rozhraní .NET Framework, jako je systém běžných typů, interoperabilita mezi jazyky, spravované spouštění, domény aplikací a sestavení.
Obecný systém typů Popisuje, jak se typy deklarují, používají a spravují v modulu runtime s podporou integrace mezi jazyky.