CLR w .NET

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Co to jest CLR?

CLR (Common Language Runtime), czyli wspólne środowisko uruchomieniowe, to podstawowy element platformy .NET odpowiedzialny za uruchamianie aplikacji napisanych m.in. w C#, VB.NET czy F#.

W pytaniach egzaminacyjnych CLR często występuje jako warstwa znajdująca się pod bibliotekami klas .NET. To właśnie ono pozwala uruchamiać programy napisane w różnych językach zgodnych z platformą .NET.

Najważniejsze zadania CLR

CLR odpowiada za:

  • uruchamianie programów .NET,
  • przekształcanie kodu pośredniego IL/MSIL/CIL na kod maszynowy procesora,
  • zarządzanie pamięcią,
  • obsługę wyjątków,
  • kontrolę typów i bezpieczeństwa,
  • współpracę z bibliotekami klas .NET.

Kod pośredni i kompilacja JIT

Program napisany np. w C# nie jest od razu kompilowany bezpośrednio do kodu maszynowego konkretnego procesora. Najpierw powstaje kod pośredni IL. Dopiero podczas uruchamiania aplikacji CLR używa mechanizmu JIT (Just-In-Time), który tłumaczy kod pośredni na kod maszynowy.

Schemat działania:

Kod C# → kompilator → kod pośredni IL → CLR/JIT → kod maszynowy

Jak rozpoznać CLR na egzaminie?

Jeśli w pytaniu pojawia się opis:

  • „wspólne środowisko uruchomieniowe”,
  • „uruchamianie aplikacji .NET”,
  • „zamiana kodu pośredniego na kod maszynowy”,
  • „runtime platformy .NET”,

to chodzi o CLR.

Czym CLR nie jest?

CLR nie jest biblioteką klas ani środowiskiem typu Visual Studio. Nie służy bezpośrednio do pisania kodu, lecz do jego wykonywania. Biblioteki klas dostarczają gotowe klasy i funkcje, a CLR odpowiada za uruchomienie programu.