URT(通用运行时)是否等同于.net框架

时间:2011-03-01 15:48:03

标签: .net

只是好奇地问。如果这两个是等价的。

2 个答案:

答案 0 :(得分:1)

“Universal Run Time”是CLR的早期名称。它的名称保存在Windows SDK WinError.h包含文件中。 CLR生成的错误代码具有设施代码19.与0x80131506一样,臭名昭着的致命执行引擎错误。

#define FACILITY_URT                     19

在错误代码中有更多这样的历史,它们是保存得非常好的考古文物。托管异常的异常代码是0xe0434f4d。最后3个十六进制对拼写为ASCII中的“COM”,这是Microsoft用来选择难忘异常代码的常用技术。考虑到.NET框架被设计为COM的替代品,这是相当讽刺的。但CLR最初是作为微软COM +组的一个项目。

答案 1 :(得分:0)

简短回答:那种。 Java VM是一个更好的示例,但.NET Framework具有其中一些元素。

“通用运行时”的概念是为运行时编写的程序生存和工作的环境,可以移植到各种硬件/操作系统环境,而程序不知道差异。

Java非常适合这种描述。您可以编写几乎可以在任何地方执行的Java程序;在任何台式机或笔记本电脑上,Android移动设备,甚至嵌入在Web浏览器中。编译用于Java VM的语言和其他语言将适用于具有Java VM的任何硬件,并且支持必要的库(例如,不同的设备将具有不同的I / O可能性和图形功能)。

.Net ......不是那么多。 .NET将在任何“活的”(仍然支持的)Windows操作系统和Windows Mobile设备上运行,并且有用于Linux / Mac的工作(Mono)和用于Android和Obj-C(iPhone的C#语言的端口) )环境,但.NET本身是一个仅限Windows的平台,因此,尽管平台很受欢迎,但并不是真正的“通用”。但是,在Windows环境的范围内,.NET可以很好地“抽象”甚至在OS版本之间发生变化的细节,并允许多种语言编译成运行时实际消化为本机代码的MSIL,允许一个运行时处理源代码使用不同甚至自定义语言的项目。这是URT概念的很大一部分。