【发布时间】:2013-08-14 11:48:04
【问题描述】:
引用documentation of Path.DirectorySeparatorChar
此字段的值在 Unix 上是斜杠 ("/"),在 Windows 和 Macintosh 操作系统上是反斜杠 ("\")。
MS,因为至少从.net 1.1 开始就存在该文本,是否在预期未来的端口或(类似)Mono 的创建时写了这个?或者我可以在非 MS 操作系统上运行 .net 吗?
【问题讨论】:
引用documentation of Path.DirectorySeparatorChar
此字段的值在 Unix 上是斜杠 ("/"),在 Windows 和 Macintosh 操作系统上是反斜杠 ("\")。
MS,因为至少从.net 1.1 开始就存在该文本,是否在预期未来的端口或(类似)Mono 的创建时写了这个?或者我可以在非 MS 操作系统上运行 .net 吗?
【问题讨论】:
您必须阅读 .NET 的历史以及它与 Java 的密切关系,以便了解 API 中存在此类设计的原因。
Microsoft 发布了 Java,甚至通过开发 J++ 扩展了其功能集。但 SUN 禁止此类尝试,这就是 .NET 诞生的原因。因此,.NET 与 Java 非常相似,其 API 一般而言是可移植的。
http://en.wikipedia.org/wiki/Visual_J%2B%2B
http://en.wikipedia.org/wiki/.NET_Framework
但是,Microsoft 从未为除 Windows 之外的任何其他平台发布 .NET Framework,这显然是推广 Windows 的策略。迄今为止唯一的例外是一款名为 Silverlight for Mac 的产品,它将 .NET Framework 的精简版移植到 OS X,
http://support.microsoft.com/kb/981760
Mono 和 Xamarin.iOS/Android/Mac 可能不是微软在 2000 年左右所期望的,但现在连微软都在使用这样的产品,并欢迎来自社区的创新。
恕我直言,.NET 只是 Windows 上 CLR 的一个品牌。 Mono 和 Xamarin.* 可以被视为 CLR 在其他平台上的品牌。因此,如果您将最后一个问题改写为“我可以在非 MS 操作系统上运行基于 CLR 的应用程序吗”,我想回答“是的,它是”。
【讨论】:
DirectorySeparatorChar 将是正斜杠,因为 OS X...