CLR (Common Language Runtime): Programmatically speaking, the term runtime can be understood as a collection of external services that are required to execute a given compiled unit of code. The CLR is the layer of the .NET Framework that makes the source code into an intermediate language which is language independent. This language is called the Microsoft Intermediate Language.
The key difference between the .NET runtime and the various other runtimes I just mentioned is the fact that the .NET runtime provides a single well-defined runtime layer that is shared by all languages and platforms that are .NET-know.
The primary role of the CLR is to locate, load, and manage .NET types on your behalf. The CLR also takes care of a number of low-level details such as memory management and performing security checks.
CTS (Common Type System): In the world of .NET, “type” is simply a generic term used to refer to a member from the set {class, structure, interface, enumeration, delegate}. When you build solutions using a .NET-aware language, you will most likely interact with each of these types. The Common Type System (CTS) is a formal specification that documents how types must be defined in order to be hosted by the CLR.
Every language running on the .NET platform has a base set of data types provided by CTS. CTS is responsible for defining type of .NET languages. Most of the languages running on .NET platform use aliases for using those CTS types. For example, a four-byte integer value is represented by the CTS type System.Int32. C# defines an alias for this called type called int and in VB.NET called Integer.
CLS (Common Language System): The Common Language Specification (CLS), which is a set of basic language features needed by many .Net applications to fully interact with other objects regardless of the language in which they were implemented. The CLS represents the guidelines defined by for the .NET Framework. These specifications are normally used by the compiler developers and are available for all languages, which target the .NET Framework.
