The CTS
The CTS is a set of rules describing the types that are used in a .NET program. That’s it. Nothing binary is going on; it is just a set of rules – a standard that compilers, languages, and the runtime must adhere to.
There are several different languages available on .NET Framework. Microsoft has C#, VB.Net, and F#. They also offer J#, a Java variant running on the CLR. You can also write .NET programs in C or C++. Other vendors also provide languages and tools you can choose from. Think of IronPython or Delphi.NET, for instance.
All these languages must stick to the rules. The compiler must emit IL code (again, IL looks like assembly but isn’t). The JIT compiler then takes the IL to create machine code the CPU can understand and run.
There is a subset of the rules in the CTS that are called the Common Language Specification (CLS). These are the rules you, as a language designer, must follow to ensure your code and components can be used by other...