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.