我想问的是到底net是什么样的平台无关性?是源代码级的还是目标代码级的?一个就是我写的代码无需改变就能在linux和windows上都编译通过,还有一个是生成的文件可以直接跨平台使用(貌似java可以做到?),现在用vs生成的程序集里面包括了win32文件首部. CLR文件首部. CIL代码. 类型元数据. 程序集清单这些东西,那意思是所谓的跨平台是源代码级别的?

解决方案 »

  1.   

    .NET可以跨WINDOWS之间的平台,因为WINDOWS和.NET都是MICROSOFT的产品,所以考虑了其间的兼容性.但是.NET不支持UNIX等其他平台,不能跨平台,至少现在是不能的.也许跨所有平台的.NET以后会面世,这是.NET的努力一个方向.
      

  2.   

    .net平台类似java虚拟机。它的目标是基于它开发的应用可以跨操作系统使用,就是你说的目标代码级。目前商业应用都是在windows平台上,推出的mono(linux上的.net框架)可以运行.net的应用。我觉得它目前做的最好的是跨语言,不同的语言都可以编译成IL,使得不同背景的程序员更容易合作开发。
      

  3.   

    .net 提交了一个CLR标准,一些人可以做一些工作,例如:http://www.mono-project.com/Main_Page不过我用不着特急于求成,因为windows平台上的东西就做不过来呢,用得着像java那些人一边贬低别的平台一边拼命往里“跨”吗?
      

  4.   

    中间代码级,和Java是一样的...只不过微软的根本是OS市场,为了OS市场暂时牺牲一下不怎么重要的跨平台特性是战略需要...当然对第三方的跨平台支持尝试如mono,微软也不反对...