Amicable Speaks crew is set to offer you the best of the inspiring quotes and latest gospel songs you could imagine. Stay tune as we'll take you through the aisle of musical realm and bring all information you need educationally, socially, and globally to your fingertips at quantum #AmicableSpeaks #exploreANDencode
Wednesday, January 26, 2022
Difference between Common Language infrastructure (CLI) and Common Language Runtime(CLR)
CLR and CLI - What is the difference?
.net clr command-line-interface
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?
Share Improve this question Follow
asked
Jan 26 '09 at 18:04
Naveen
70.8k●4343 gold badges●170170 silver badges●228228 bronze badges edited
Aug 26 '18 at 10:11
Litisqe Kumar
2,380●44 gold badges●2424 silver badges●3838 bronze badges
6 Answers
order by
votes
Up vote
77
Down vote
Accepted
The CLR is Microsoft's implementation of the CLI standard.
Share Improve this answer Follow
answered
Jan 26 '09 at 18:06
Serafina Brocious
29.9k●1111 gold badges●8787 silver badges●112112 bronze badges edited
Jan 26 '09 at 18:15
4
It does that too, you just have to set the target architecture to 'liquid'. –
Serafina Brocious
Jan 26 '09 at 18:11
1
Thanks for the quick answer. So this means at least theoretically we can have a third party implementation of the CLI which can run on different OS and support .NET components similar to JVM? –
Naveen
Jan 26 '09 at 18:18
1
@Naveen - take a look at mono which is exactly that. –
Kev
Jan 26 '09 at 18:22
1
According to this stackoverflow.com/questions/9321803/… That claims that Mono implements the CLR. Is that wrong and is it more correct to say Mono implements the CLI, not the CLR? –
barlop
Jul 20 '14 at 14:11
1
this answer is not really correct... CLR is the implementation of the VES... see the answer below –
adjan
Jun 6 '17 at 13:40
Add a comment
Up vote
54
Down vote
CLR is the execution environment in which a .NET application is safely hosted/run.
You can see it as .NET's private Operating System that initiates and loads just before a .NET application starts.
The CLR takes care of certain essential requirements of any .NET application that otherwise would require lot of deliberate code to be written in order to implement; requirements that are holistic in nature and essential to any kind of application to run in a good, efficient and safe manner [e.g. Handle memory allocation and release it when not required, avoid dangling pointers, avoid type-casting errors etc. ]
CLI on the other hand is a specification/set of guidelines that explains how to implement an application execution environment and the nature of generated application code that allows for multiple high-level languages to be used on different computer platforms without being rewritten for specific architectures.
CLI is developed by Microsoft and standardized by ISO and ECMA.
The CLR is a practical implementation of CLI's VES [Virtual Execution System] section and forms one of the core components of the MS.NET platform
In a layman's language, CLI is a recipe while CLR is the cuisine :-)
Share Improve this answer Follow
answered
Jun 24 '12 at 14:54
Rahul Bhatnagar
587●44 silver badges●66 bronze badges edited
Jun 25 '12 at 23:22
Note that this says the same thing as Cody Brocious's answer except with some explanation. It is a matter of opinion how much value the explanation provides. References to .Net might not be accurate; it is my understanding that .Net implements more than the CLI standard. –
user34660
Nov 14 '17 at 19:30
Add a comment
Up vote
16
Down vote
The CLR (Common Language Runtime) is Microsoft's implementation of the VES (Virtual Execution System). The VES along with the CTS (Common Type System), the CLS (common language specification) and the metadata specification are all part of the CLI (Common Language Infrastructure) specification.
The VES is a standardized virtual machine specification that must be implemented in order to load and execute CIL (Common Intermediate Language) modules (dll and exe). A VES implementation also provide runtime services such as garbage collection and security.
ECMA C# and Common Language Infrastructure Standards
Share Improve this answer Follow
answered
Mar 27 '13 at 3:36
xtrem
1,617●1212 silver badges●1313 bronze badges edited
May 9 '18 at 7:51
Up vote
0
Down vote
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/
Share Improve this answer Follow
answered
Jul 2 '19 at 9:17
Alev Ryustemov
150●11 silver badge●99 bronze badges
Up vote
-1
Down vote
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.
enter image description here
Share Improve this answer Follow
answered
Apr 6 '20 at 1:22
zar
10.1k●1010 gold badges●8080 silver badges●154154 bronze badges
C++/CLI is a complete different thing from CLR. One is a language and the other is a VES implementation. –
underthevoid
Jul 11 '20 at 9:06
Add a comment
Up vote
-2
Down vote
CLR is the complete environment in which CLI ,CTS,CLS works in integration it also incluse garbage collection,memory management ,security,intemediate language for native code... CLI is a specification for the format of executable code, and the runtime environment that can execute that code.
Share Improve this answer Follow
answered
Jun 17 '13 at 4:56
maddy
1
Your Answer
Body
Add picture
Subscribe to:
Post Comments (Atom)
VISUAL BASICS CONTROLS
EDUCBAEDUCBA Menu VB.NET Controls By Priya PedamkarPriya Pedamkar Home » Software Development » Software Development Tutorials » .Net Tutor...
-
Me nsuto ima edi-emi o Me nsuto ima edi-emi o Me nsuto ima edi-emi o Edi’tiene mi ekwo! Me nsuto ima edi-emi o Me nsuto ima edi-emi o Jesus ...
-
EDUCBAEDUCBA Menu VB.NET Controls By Priya PedamkarPriya Pedamkar Home » Software Development » Software Development Tutorials » .Net Tutor...
No comments:
Post a Comment