在阅读Troelsen的书"Pro C#5.0和.NET 4.5 Framework"时,我遇到了这两个术语.我或多或少了解公共语言运行时(CLR)是什么,但".NET运行时"与CLR是一回事吗?
我想是的.
标准ECMA-335中定义的公共语言基础结构(CLI)描述了以下内容:
VES在此列表中脱颖而出(它不常见),并且是对假设的运行时系统的描述.实际的运行时实现通常称为公共语言运行时(CLR),但该术语不会出现在ECMA-335中.
CLI有几种实现:.NET Framework,.NET Micro Framework,XNA Framework,Silverlight,Mono平台等......每个平台或框架都实现了CLR的一个或多个版本.
有Microsoft CLR(又名.NET CLR),通常称为.NET运行时.还有一个Mono CLR,通常称为Mono运行时.还有Silverlight CLR和.NET Compact CLR.
由于Microsoft CLR是第一个也是最知名的CLR,因此无条件使用术语CLR通常指的是没有特定版本的.NET运行时.但是CLR 不是 .NET运行时的特定实现......反之亦然.
CLR是.NET程序所需的运行时支持的一部分.相当重要的一部分,但它不是唯一的一部分.您始终会在.NET进程中加载一组本机DLL.您可以通过打开非托管调试,Project + Properties,Debug选项卡,勾选"启用非托管代码调试"来查看它们.启动后,您会看到那些带有Debug + Windows + Modules窗口的DLL.
我将记录.NET版本4.5的名称:
您还将看到从Windows操作系统DLL的c:\ windows\system32加载的一堆DLL.重要的是ntdll.dll,kernel32.dll和user32.dll.在典型的.NET进程中还有很多.您无法将它们视为.NET运行时组件,因为Windows中的每个进程都将使用这些组件.
| 归档时间: |
|
| 查看次数: |
679 次 |
| 最近记录: |