2010-03-17 63 views
1

.Net模型是这样的: C#代码 - > C#编译器 - >托管模块(Win PE) - > CLR - >“你好,世界” 该代码被编译为托管模块调用CLR,然后进行必要的工作来运行代码(假设它是一个exe)。托管模块和平台独立

我最初的理解是.Net是Microsoft的Java Framework的等价物,CLR是JVM的MS等价物。但这里有趣的是,Managed模块是一个Win PE,这意味着任何想要使用.Net的操作系统都必须接受并使用Win PE格式。我的问题是:

  1. 到目前为止该理论是否正确?
  2. 支持/实现Win PE格式的Linux/Unix/Solaris/OSX等有什么机会?
  3. 是否有任何替代品目前正在努力使互操作性发生?
  4. Java在不同的平台上执行Java的路径是什么?

回答

2

您正在寻找Mono

回答您的问题:

  1. 是。
  2. 他们已经通过Wine和Mono做到了。
  3. 我不确定你的意思。
  4. Java编译为.jar文件,这些文件由Java运行时打开,与Microsoft Word打开.doc文件的方式相同。
+0

好的。那么,如果他们能够为Linux提供一个CLR等等,那么.Net代码就可以无缝地运行在它上面了。 – 2010-03-17 15:20:43

+0

Linux已经有一个CLR - Mono。但是,并非所有代码都能无缝运行。 – SLaks 2010-03-17 15:28:22

+0

太棒了。谢谢(你的)信息。 – 2010-03-17 15:42:23