Společný jazykový modul runtime (CLR )

Rozhraní .NET Framework poskytuje běhové prostředí, nazvané modul CLR (Common Language Runtime). Toto běhové prostředí spouští kód a poskytuje služby, které usnadňují proces vývoje.

Kompilátory a nástroje poskytují funkcionalitu modulu CLR (Common Language Runtime) a umožňují vám zapisovat kód, který z tohoto spravovaného prostředí pro spouštění získává výhody. Kód, který vyvíjíte s kompilátorem jazyka, a který se zaměřuje na modul runtime se nazývá spravovaný kód. Jeho výhody plynou z vlastností, jako jsou integrace mezi jazyky, mezi jazykové zpracování vyjímek, vylepšené zabezpečení, podpora pro správu verzí a nasazení, zjednodušený model pro interakci komponent, ladění a profilovací služby.

Chcete-li v modulu runtime povolit poskytování služeb pro spravovaný kód, tak je nutné, aby kompilátor jazyka poskytl metadata popisující typy, členy a odkazy ve vašem kódu. Metadata jsou uložena s kódem; každý zaveditelný modul CLR (Common Language Runtime) přenosného spustitelného souboru (PE) obsahuje metadata. Modul runtime používá metadata k nalezení a načtení tříd, rozmístění instancí v paměti, vyřešení vyvolává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. Uvolňuje je, když již nejsou déle používány. Objekty, jejichž existence jsou spravovány tímto způsobem se nazývají spravovaná data. Uvolňování paměti eliminuje nevracení paměti stejně jako některé jiné běžné programovací chyby. Pokud je váš kód řízen, můžete ve vaší aplikaci rozhraní .NET Frameworku použít spravovaná data, nespravovaná data nebo obojí. Protože kompilátory jazyka poskytují jejich vlastní typy, například primitivní typy pravděpodobně ne vždy víte (nebo potřebujete vědět), zda jsou vaše data spravována.

modul CLR (Common Language Runtime) usnadňuje návrh komponent a aplikací, jejichž objekty vzájemně komunikují napříč jazyky. Objekty, které jsou napsány v různých jazycích, mohou vzájemně komunikovat a jejich chování může být pevně integrováno. Můžete například definovat třídu a potom použít jiný jazyk k odvození nové třídy z té původní nebo zavolat metodu ve zdrojové třídě. Můžete také předat instanci třídy metodě třídy napsané v jiném jazyce. Mezi jazyková integrace je možná, protože kompilátory a nástroje jazyka, které se zaměřují na modul runtime používají specifikaci CTS (Common Type System), která je definována tímto modulem. Řídí se pravidly modulu runtime pro definování nových typů, stejně jako pro vytváření, používání, uchovávání a vázání typů.

Všechny spravované komponenty jako součást svých metadat nesou informaci o součástech a zdrojích, oproti kterým byly vybudovány. Modul runtime používá tuto informaci, aby zajistil, že vaše komponenta nebo aplikace má specifikovány verze všeho potřebného. Toto snižuje pravděpodobnost zhroucení vašeho kódu z důvodu nesplnění nějaké závislosti. Registrační informace a stavová data nejsou již uloženy v registru, kde je složité jejich zavedení a správa. Místo toho je informace o vámi definovaných typech (a jejich závislostech) uložena s kódem jako metadata. Toto činí úkoly spojené s replikací a odebráním komponent mnohem méně komplikované.

Kompilátory a nástroje jazyka předkládají funkcionalitu modulu runtime takovým způsobem, který je užitečný a intuitivní pro vývojáře. To znamená, že některé vlastnosti tohoto modulu mohou být více patrné v jednom prostředí než v jiném. Možnosti modulu runtime závisí na tom, jaké kompilátory a nástroje jazyka použijete. Například pokud jste vývojář Visual Basic aplikací, můžete si všimnout, že modul CLR (Common Language Runtime) jazyka Visual Basic má více objektově-orientovaných vlastností než dříve. Modul runtime poskytuje následující výhody:

  • Zlepšení výkonu.

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

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

  • Jazykové vlastnosti zahrnující například dědičnost, rozhraní a přetížení pro objektově orientované programování.

  • Podporu pro explicitní volné zřetězení umožňující vytváření vícevláknových a škálovatelných aplikací.

  • Podporu pro strukturované zpracování výjimek.

  • Podporu pro vlastní atributy.

  • Uvolňování paměti.

  • Použití delegátů namísto ukazatelů funkcí pro zvýšení typové bezpečnosti a zabezpečení. Další informace o delegátech naleznete v části Specifikace CTS (Common Type System).

Příbuzná témata

Title

Popis

Proces spravovaného spouš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 uvolňuje paměť.

Přehled rozhraní .NET Framework

Popisuje klíčové pojmy rozhraní .NET Frameworku jako je specifikace CTS (Common Type System), vzájemná funkční spolupráce mezi jazyky, spravované spouštění, domény aplikace a sestavení.

Hosting Overview

Popisuje hostitelská prostředí modulu runtime, což jsou částí kódu, které runtime modul načítá do procesu, vytváří domény aplikace uvnitř procesu, načítá a spouští uživatelský kód uvnitř těchto domén aplikace.

Specifikace CTS (Common Type System)

Popisuje, jak jsou v modulu runtime kvůli podpoře mezi jazykové integrace typy deklarovány, používány a spravovány.