Přehled modulu CLR (Common Language Runtime)
.NET poskytuje běhové prostředí označované jako 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ý je výhodný 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 těží z funkcí, jako je integrace mezi jazyky, zpracování výjimek mezi jazyky, rozšířené zabezpečení, podpora správy verzí a nasazení, zjednodušený model pro interakci komponent a služby ladění a profilace.
Poznámka
Kompilátory a nástroje můžou vytvářet výstupy, které může modul CLR (Common Language Runtime) využívat, protože systém typů, formát metadat a prostředí za běhu (virtuální spouštěcí systém) jsou definovány veřejným standardem, specifikací ECMA Common Language Infrastructure. Další informace najdete v tématech ECMA C# a Common Language Infrastructure Specifications.
Aby modul runtime mohl poskytovat služby spravovanému kódu, musí kompilátory jazyka generovat metadata, která popisují typy, členy a odkazy v kódu. Metadata jsou uložena s kódem; každý načístelný soubor přenosných spustitelných souborů (PE) modulu CLR (Common Language Runtime) obsahuje metadata. Modul runtime používá metadata k vyhledání a načtení tříd, rozložení instancí v paměti, řešení problémů s voláními metod, generování nativního kódu, vynucování zabezpečení a nastavení hranic kontextu za běhu.
Modul runtime automaticky zpracovává rozložení objektů a spravuje odkazy na objekty a vydává je, když se už nepoužívají. Objekty, jejichž životnost je spravována 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 v aplikaci .NET použít spravovaná, nespravovaná nebo spravovaná i nespravovaná data. Vzhledem k tomu, že kompilátory jazyka poskytují své vlastní typy, například primitivní typy, nemusíte vždy vědět, nebo potřebujete 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 spolu mohou komunikovat a jejich chování může být úzce integrováno. 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 také předat metodě třídy napsané v jiném jazyce. Tato integrace mezi jazyky je možná, protože kompilátory jazyka 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í, uchovávání a vytváření vazeb na typy.
Jako součást metadat obsahují všechny spravované komponenty informace o komponentách a prostředcích, se kterým byly vytvořeny. Modul runtime používá tyto informace k zajištění toho, aby vaše komponenta nebo aplikace obsahovala zadané verze všeho, co potřebuje, takže je méně pravděpodobné, že se váš kód z důvodu nesplněné závislosti přeruší. Registrační informace a údaje o stavu se už neukládají do registru, kde může být obtížné je vytvořit 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í komponent méně složitá.
Kompilátory a nástroje jazyka 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 prostředí. Způsob použití modulu 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 objektů 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.
Funkce jazyka, jako je dědičnost, rozhraní a přetížení pro objektově orientované programování.
Podpora explicitního free threadingu, 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ů na funkce pro zvýšení bezpečnosti a zabezpečení typů. Další informace o delegátech najdete 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 však nemusí nutně odpovídat číslu verze modulu CLR, který obsahuje. Seznam verzí rozhraní .NET Framework a jejich odpovídajících verzí CLR najdete v tématu Verze a závislosti rozhraní .NET Framework.
Související články
Nadpis | Popis |
---|---|
Spravovaný proces spouštění | Popisuje kroky potřebné k využití společného jazykového modulu 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í. |
Společný systém typů | Popisuje, jak se typy deklarují, používají a spravují v modulu runtime s podporou integrace mezi jazyky. |
Váš názor
Odeslat a zobrazit názory pro