然而仍然存在一些技术方面的原因。尽管MSIL是平台中立,但 .NET框架类库的某些部分并非平台中立。例如企业服务(Enterprise Services)支持可伸缩、面向事务(transaction- oriented)的应用程序,而它乃是根植于名为COM+ 的早先的Windows技术。因此这一部分只能运行于COM+ 存在的地方。另外一部分类库也明显或多或少地泄漏了它的Windows血统。引自: 书名:.NET大局观( 第2版)

解决方案 »

  1.   

    .net整个框架都是win32/win64原生代码写成的,根本谈不上“平台中立”,框架本身不可跨平台,应用程序的虚拟机代码也就成了无的放矢了。
    基本上可以定性为一个闹剧。
      

  2.   

    感觉MS推出.NET, 是把开发人员推向JAVA阵营. 
      

  3.   

    同意“尽管MSIL是平台中立,但 .NET框架类库的某些部分并非平台中立。”
    但不觉得这有什么不合逻辑。对于一个企业来说,这样做是合情合理的。合情,谁不希望自己的用户在自己的操作系统上开发得更方便一些呢?合理,.NET的类库在飞速进步,同时开发一套其他平台的类库,开发成本、测试成本和维护成本都会翻倍。同样的话我也可以说“尽管C++是平台中立的,但某些类库并非平台中立”。
      

  4.   

    关键是这“某些部分”的比例太大了一点。
    JDK的90%以上是java代码写成的,而ms提供的.net框架100%是原生代码,不是IL虚拟机代码,能“平台中立”的只有用户自己开发的、第三方提供的“.NET框架类库”而已(比如indy现在有一个c#写的.net版本)。