The CLI is defined by the standard ECMA-335. This is a  .NET infrastructure that allows applications written in multiple programming languages to operate many different environments without the need to modify the program code. The CLI consists of: a Portable Executable (PE) file format, a CTS (Common Type System), an extensible metadata system, an CIL (Common Intermediate Language), a FCL (Factored base class library),  and access to the underlying operating system (Win32).

C# 8.0 and .NET Core 3.0 – Modern Cross-Platform Development: Build applications with C#, .NET Core, Entity Framework Core, ASP.NET Core, and ML.NET using Visual Studio Code, 4th Edition
ASP.NET Core 3 and Angular 9: Full stack web development with .NET Core 3.1 and Angular 9, 3rd Edition
C# in Depth, 4th Edition