Interoperability of .NET

What makes .NET platform-agnostic is the fact that it uses Intermediate Language (IL). The programming languages are getting compiled into IL. Downstream, all the steps are exactly the same, whether it’s C# or something else - like F#. One question that someone might ask you in the future is: okay, but…

What’s CIL & MSIL then?

So, CIL stands for Common Intermediate Language and MSIL for Microsoft Intermediate Language.

They all refer to the same thing.

Intermediate Language is sometimes also called Common Intermediate Language (CIL). Taken from: Microsoft Learn: What is Manages Code?

And MSIL - nowadays - is just the same. See the Stackoverflow question “What is the difference between CIL and MSIL (IL)?”

Which term should I use?

There’s an ECMA Standard (no. 335) for the term CIL. Microsoft lists these definitions in their docs: .NET-ECMA Standards So, it’s advisable to stick with CIL.