.NET是一个独立于语言的平台.
但它也是平台独立的吗?怎么样 ?
编辑:我听说,.NET 4.0是在考虑平台独立性的基础上开发的!好吧,希望它可以接管Java,如果是这样的话!
编辑:答案取决于我们如何定义'平台'的方式,如.NET for Windows平台和Mono for Java.
但是,问题是,我们不具备OS独立的通用开发平台!
OS独立性与平台独立性有关吗?
Cum*_*yah 18
这真的是你如何定义"平台"的问题.
例如,只要平台是.NET,.NET就是平台独立的,就像Java平台独立一样,只要平台是Java.也就是说,.NET(和Java)的,一部分是本身的平台(CLR,JVM).只要该平台的实现可用于给定的物理平台,是的,您可以独立地在其上运行已编译的代码.
最后,"平台独立性"就像"一次编写,随处运行",营销一样.但实际上,目前有一些JVM实现可用于比.NET更具体的平台(尽管诸如Mono项目之类的计划旨在改变它).
sta*_*ica 10
要回答这个问题,我认为必须首先明确区分CLI和.NET:
该CLI(简称通用语言基础结构)是一种标准,因此它被设计为主要平台无关.这里,平台是指底层计算机体系结构,包括操作系统.
虽然标准可能需要某些不可能在所有体系结构上实现的东西(我考虑的是非常有限的平台,例如嵌入式系统),但这些可能被视为边缘情况.
.NET是Microsoft的CLI主要实现,仅在Windows系统上运行.因此,.NET 不是独立于平台的.
更新(2015年8月):截至2014年底,Microsoft宣布计划逐步开源.NET Framework部分(特别是那些与服务器端应用程序相关的部分).其结果是.NET的核心由.NET基金会.
.NET Core旨在成为CLI的跨平台实现.
Mono也是CLI的一个实现,但它可以在不同的平台上运行,例如Linux和Windows.Mono绝对比.NET更独立于平台.
其次,存在编译器输出的二进制兼容性问题.因为CLI标准定义了用于程序集的文件格式(一种PE可执行文件的形式)和中间代码语言(称为CIL),所以一旦源代码可以自由地混合用VB.NET,C#和其他一些语言编写的组件已编译为CIL.
从这个意义上说,CLI(以及它所有符合要求的实现,如.NET)与语言无关.
有趣的是,您可以使用Microsoft的.NET编译器进行编译,并且由于标准规定的通用汇编文件格式,您应该能够在Mono项目中使用该程序集 - 反之亦然.从这个意义上说,.NET 编译器工具链可以被认为是独立于平台的 - 但不是.NET 本身.请记住,.NET Framework还包含一个针对Windows的标准库(例如,想想WPF).
| 归档时间: |
|
| 查看次数: |
33812 次 |
| 最近记录: |