DNX 与 DNX 核心

DNX vs DNX Core

我在 VS2015 中开始了一个非常简单的 "kick the tires" ASP.Net MVC(测试版)项目,但我在 DNX 和 DNX 核心参考文献上遇到了问题。

在此示例中,我尝试使用 DateTime.ToShortDateString() 并启用 DNX Core 的智能感知。

我知道这是因为它没有在 DNX 核心中实现,我可以围绕它包装编译器指令。

这是正确的做法吗?是否在任何地方记录了两个平台之间的差异?最后,如果我是 all Windows,所有 IIS 一直都在购买 DNX Core 是否提供任何东西,或者我的首要任务是将它从 project.json 文件中删除吗?

我想唯一的答案是视情况而定。

Dnx 对比 Dnx 核心

Dnx 运行s 在当今的 .NET 框架(以及单声道)之上,并且可以访问完整的 .NET 4.5.2(现在是 .NET 4.6)BCL。从 1.0 开始,基本上所有内容都已添加到 .NET 中。

Dnx Core 运行s 在 CoreClr 之上,它本质上是 .NET Framework 的精简版本。有些东西丢失了,有些东西由于各种原因永远不会移交给 CoreClr。我不知道即将到来/未到来的具体列表。您可以浏览 corefx and coreclr github 项目,看看那里有什么。

现在的问题实际上是关于最佳方法。您有几个选择。

如果您从未计划 运行在 CoreCLR 上安装该项目,那么您可以将它从您的 project.json 中一起删除。

如果您确实计划 运行 在 CoreCLR 上(无论是什么原因),您可以做一些事情。

  • 对环境使用常见的API方法

    在你的情况下,如果 theDate.ToString("d") 等同于 theDate.ToShortDateString() 那么为什么不直接使用前者呢?

  • 使用适当的编译器指令DNX451

    对于没有实现您正在寻找的内容的环境,如果有意义,您可以抛出或实现您自己的版本。