Obsah

CLR (Common Language Runtime)

CLR (Common Language Runtime) je běhové prostředí a virtuální stroj, který tvoří základ .NET Frameworku. Jedná se o klíčovou komponentu, která zajišťuje provádění kódu napsaného v libovolném .NET jazyce.

Základní funkce

CLR je zodpovědný za několik zásadních funkcí během běhu aplikace:

Jak CLR funguje

Proces provádění .NET aplikace probíhá v těchto krocích:

  1. Zdrojový kód v C#, VB.NET nebo jiném jazyce se zkompiluje do MSIL (Intermediate Language)
  2. MSIL je uložen v assemblies (soubory .exe nebo .dll) spolu s metadaty
  3. Při spuštění aplikace CLR načte assembly
  4. JIT kompilátor (Just-In-Time) převádí MSIL na nativní strojový kód pro konkrétní procesor
  5. Nativní kód je vykonán procesorem

Garbage Collection

Jednou z nejvýznamnějších funkcí CLR je automatická správa paměti:

JIT kompilátor

Just-In-Time (JIT) kompilátor převádí MSIL na nativní kód:

Kompilovaný kód je uložen v cache, taktakže každá metoda se kompiluje pouze jednou během běhu aplikace.

Výhody CLR

Použití CLR přináší několik významných výhod:

CTS a CLS

CLR definuje dva důležité standardy:

Managed vs Unmanaged Code

CLR umožňuje interoperabilitu mezi managed a unmanaged kódem pomocí:

Assemblies

CLR pracuje s jednotkami nazývanými assemblies:

Application Domains

CLR podporuje izolaci aplikací pomocí Application Domains (AppDomains):

Verze CLR

CLR měl několik hlavních verzí odpovídajících verzím .NET Frameworku:

Verze CLR Verze .NET Framework
CLR 1.0 .NET Framework 1.0
CLR 1.1 .NET Framework 1.1
CLR 2.0 .NET Framework 2.0, 3.0, 3.5
CLR 4 .NET Framework 4.x

CoreCLR

Pro .NET Core byl vyvinut CoreCLR – open-source verze CLR:

Příklad

// Jednoduchý C# program
using System;
 
class Program 
{
    static void Main() 
    {
        Console.WriteLine("Hello from CLR!");
    }
}

Tento kód:

  1. Se zkompiluje do MSIL
  2. CLR ho načte při spuštění
  3. JIT kompilátor ho převede na nativní kód
  4. CLR zajistí garbage collection pro objekty
  5. CLR zpracuje případné výjimky

Související pojmy

Externí odkazy