I want to know what exactly is the difference between CLR & CLI? From whatever I have read so far, it seems to indicate that CLI is a subset of CLR. But isn't everything in the CLR mandatory? What exactly may be left out of CLR to create a CLI?
I want to know what exactly is the difference between CLR & CLI? From whatever I have read so far, it seems to indicate that CLI is a subset of CLR. But isn't everything in the CLR mandatory? What exactly may be left out of CLR to create a CLI?
CLR is the .net execution environment where all kind of .net applications are run.For instance, when you write your code with C# or another language from the dot NET stack the compiler compiles and converts it into managed module. A managed module is IL (intermediate language) and metadata.Above all, the important point to remember is that whenever you compile your source code, the compiler translates it into managed module. To clarify, this is not a machine code that your processor will execute.In fact, IL is an intermediate language close to assembly language.Similarly, it is also famous as object orientated machine language.
Check this article about more detailed explanation:
http://alevryustemov.com/programming/common-language-runtime/
The Common Language Runtime (CLR) is programming that manages the execution of programs written in any of several supported languages, allowing them to share common object-oriented classes written in any of the languages. It is a part of Microsoft's .NET Framework. The CLR is somewhat comparable to the Java virtual machine that Sun Microsystems provides for running programs compiled from the Java language. Microsoft refers to its CLR as a "managed execution environment." A program compiled for the CLR does not need a language-specific execution environment and can easily be moved to and run on any system with Windows 2000 or Windows XP.
While
Common Language Infrastructure is a standard developed by Microsoft that allows the use of multiple different high-level languages on different computer platforms without rewriting the code for any specific architecture. In simple terms, Common Language Infrastructure (CLI) enables an application program written in any commonly-used programming languages to be run on any operating system using a common runtime program rather than a specific for every language. The .NET Framework, .NET Core, and Mono are some implementations of CLI.
As answered, CLR is microsoft implementation. The component itself is called C++/CLI in Visual Studio installer but once it's installed, it shows up as CLR.
You can got to add remove programs >> Visual Studio 2009, modify installation and add or remove C++/CLI. It is listed like that as shown in screenshot below but again once installed, the project type is called CLR in visual studio.