1. CLR – Common Language Runtime is a virtual machine part of Microsoft’s.NET system. CLR oversees code execution at runtime. It provides memory management, thread management, etc. It also provides services like garbage collection, language integration, multiple versioning support and Integrated security. CLR compiles IL in just- in-time (JIT) manner – each function is compiled just before execution.

2. CTS – Common Type System is a rich kind framework incorporated with the CLR. It implements various types like int, float, string, etc. and operations on those types. Every .NET languages have the same primitive data types. An int C# is the same as an int in VB.NET. When communicating between modules written in any .NET language, the types are guaranteed to be compatible on the binary level. There are two types. Value types (passed by value), which is stored in the stack. Reference types (passed by reference), which is stored in the heap. Strings are a primitive data type now. It allows all languages to share base data types.

3. CLS – Common Language specification is a set of specifications that all languages and libraries need to follow. This will ensure interoperability between languages. It enables diverse languages to cooperate consistently.

4. MSIL – Microsoft Intermediate language is a low-level (machine) language, like Assembler, but is object-oriented. It is also known as IL or CIL. The compiler plays a major role to convert the source code into Microsoft Intermediate language during the compile time. MSIL is a CPU-free arrangement of direction that can be effectively changed over to the local code.

5. JIT – just-in-time. The JIT code remains in memory for ensuing calls. CLR compiles IL in just-in- time (JIT) manner – function each is compiled just before execution.

6. GAC – Global Assembly Cache is a machine-wide CLI assembly cache for the Common Language Infrastructure (CLI) in Microsoft’s .NET Framework.

7. Managed Code is a PC program code that requires and will execute simply under the organization of a Common Language Runtime virtual machine

8. Garbage Collector – A garbage collector is nothing but it is a feature provided by CLR, which helps us to clean unused managed objects. By cleaning unused managed objects we cleans the memory. It only cleans the unused managed objects and it doesn’t clean unmanaged objects. Anything which is outside the CLR boundary, the garbage collector doesn’t know how to clean it.

9. It is managed by