a. Common Language Runtime: CLR is considered to be the core component of .NET framework. Its primary responsibility is to convert the CIL/MSIL code into native machine language code. It takes care of details of resources for e.g.: memory management, garbage collection, exception handling, security etc.
b. Type Safety: Is referred as the strongly typed feature. It allows to access memory only in authorized ways makes sure that it is within the bounds. It ensures that code cannot perform operations that are invalid for an object.
c. Managed Code execution: It is the process followed by the CLR from loading MSIL, converting it into machine code, memory management. Managed code execution also handles JIT compilation, handles exceptions, and confirms type safety and security issues.
d. Side-by-side execution: provides an opportunity to execute multiple versions of an application or component on one computer. It allows the execution of multiple versions of CLR and multiple versions of application executing at the same time on the same computer. It also allows to control what version of a component would an application bind to and what version of CLR would an application choose for execution.