CLI w .NET

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

Co to jest CLI w .NET?

CLI (Common Language Infrastructure), czyli wspólna infrastruktura językowa, to specyfikacja określająca zasady działania środowiska .NET. Definiuje, w jaki sposób języki programowania, kod pośredni, typy danych i środowisko uruchomieniowe mają ze sobą współpracować.

CLI nie jest tym samym co CLR. CLR to konkretna implementacja środowiska uruchomieniowego w .NET, natomiast CLI jest szerszą specyfikacją, według której takie środowisko może działać.

Co opisuje CLI?

CLI obejmuje m.in.:

  • wspólny system typów CTS (Common Type System),
  • zasady współpracy różnych języków .NET,
  • kod pośredni CIL/IL,
  • model wykonywania aplikacji,
  • wymagania wobec środowiska uruchomieniowego.

Dzięki CLI możliwe jest tworzenie aplikacji w różnych językach, które mogą działać na tej samej platformie i korzystać z tych samych bibliotek.

CLI a CLR

Najważniejsza różnica:

CLI = specyfikacja zasad działania
CLR = środowisko uruchomieniowe realizujące te zasady

W pytaniu egzaminacyjnym, jeśli mowa o przekształcaniu kodu pośredniego na kod maszynowy, poprawną odpowiedzią zwykle będzie CLR, a nie CLI.

Jak zapamiętać?

  • CLI — infrastruktura/specyfikacja,
  • CLR — runtime, czyli uruchamianie programu,
  • BCL — biblioteka klas bazowych.

CLI może pojawić się jako odpowiedź myląca, ponieważ również jest związane z platformą .NET i wieloma językami programowania. Jednak za faktyczne uruchamianie aplikacji i kompilację JIT odpowiada CLR.