What is "Common Type System" (CTS)?
CTS defines all of the basic types that can be used in the .NET Framework and the
operations performed on those type.
All this time we have been talking about language interoperability, and .NET Class
Framework. None of this is possible without all the language sharing the same data types.
What this means is that an int should mean the same in VB, VC++, C# and all other .NET
compliant languages. This is achieved through introduction of Common Type System
(CTS).
What is "Common Language Specification" (CLS)?
CLS is the collection of the rules and constraints that every language (that seeks to
achieve .NET compatibility) must follow. It is a subsection of CTS and it specifies how it
shares and extends one another libraries.
What is "Common Language Runtime" (CLR)?
CLR is .NET equivalent of Java Virtual Machine (JVM). It is the runtime that converts a
MSIL code into the host machine language code, which is then executed appropriately.
The CLR is the execution engine for .NET Framework applications. It provides a number
of services, including:
- Code management (loading and execution)
- Application memory isolation
- Verification of type safety
- Conversion of IL to native code.
- Access to metadata (enhanced type information)
- Managing memory for managed objects
- Enforcement of code access security
- Exception handling, including cross-language exceptions
- Interoperation between managed code, COM objects, and pre-existing DLL's
(unmanaged code and data)
- Automation of object layout
- Support for developer services (profiling, debugging, and so on).