Reputation: 1528
While reading Troelsen's book "Pro C# 5.0 and the .NET 4.5 Framework", I came across those 2 terms. I understand more or less what a Common Language Runtime(CLR) is, but is ".NET runtime" the same thing as CLR ?
I suppose it is.
Upvotes: 5
Views: 2509
Reputation: 50306
The Common Language Infrastructure (CLI), defined in standard ECMA-335, describes among other things:
The VES stands out in this list (it is not Common), and is a description of a hypothetical runtime system. The actual runtime implementation is often called Common Language Runtime (CLR), but this term does not appear in ECMA-335.
There are several implementations of the CLI: the .NET Framework, the .NET Micro Framework, the XNA Framework, Silverlight, the Mono platform, etc... Each platform or framework implements one or more versions of a CLR.
There is Microsoft CLR (aka .NET CLR), often called .NET runtime. There is also a Mono CLR, often called Mono runtime. There are also Silverlight CLR and .NET Compact CLR.
Since Microsoft CLR is the first and most well-known CLR, unqualified use of the term CLR usually refers to no specific version of the .NET runtime. But the CLR is not a specific implementation of a .NET runtime... it is the other way around.
Upvotes: 7
Reputation: 941327
The CLR is part of the runtime support that a .NET program needs. Rather a major part, but it is not the only one. You always get a set of native DLLs loaded in a .NET process. You can see them by turning on unmanaged debugging, Project + Properties, Debug tab, tick the "Enable unmanaged code debugging". After you start, you see can those DLLs with the Debug + Windows + Modules window.
I'll document the .NET version 4.5 names:
You'll also see a bunch of DLLs loaded from c:\windows\system32, the Windows operating system DLLs. Important ones are ntdll.dll, kernel32.dll and user32.dll. Lots more in a typical .NET process. You can't really count them as .NET runtime components since every process in Windows will use these.
Upvotes: 6
Reputation: 359786
The Common Language Runtime is a specific implementation of a .NET runtime, but there are others too – namely, the Mono runtime.
Upvotes: 8