Visual Studio 2015 中的 DNX 是什么?我该如何使用它?

What is DNX in Visual Studio 2015 & how do I use it?

Visual Studio 2015 中的 DNX 是什么?我该如何使用它?

我看到 DNX 是 Dot Net eXecution 环境。我想知道的是它到底是什么以及如何使用?

DNX 是.Net 的SDK,与.Net Framework 相似但又不完全相同。差异非常显着,包括

等主题
  • API size:API 在共享的地方是相同的,但它是 .Net Framework 的子集。框架库称为 CoreFx,来自 Windows Store 和 Silverlight API 包。 CoreFx 库包要么直接实现 (dnxcore50),要么是 .Net Framework (dnx46) 的类型转发器。请注意,80% 的 .Net Framework 是 WPF 和 WinForms 等应用程序模型或 WMI 等 Windows 库,...在大多数情况下,这些库未被使用。
  • 运行time support: SDK 运行s 或者在 .Net Framework 运行time (Windows),或 CoreCLR(Windows、Mac、Linux、FreeBSD)或 Mono(Windows、Mac、Linux、.. .).
  • 部署模式: 包含运行时间的库被部署到应用程序的文件夹中。这可以防止由于框架更新而导致的错误,还允许 Microsoft 以更 "risky" 的方式发展 .Net 生态系统。
  • 编译模式:DNX 有一个集成的编译管道(基于 Roslyn),可以即时编译源代码,因此您可以 运行 直接从源代码中获取软件在没有文件的情况下在内存中编译(模糊 运行 时间和设计时间之间的差异)。特别适合 ASP.Net 场景。支持预编译。
  • 平台集成:DNX 不是平台集成的(意味着:您必须像使用单声道或 java 一样调用它)。
  • NuGet Everything & 新项目系统:clr、库(第一、第二和第三)和应用程序模型都是 NuGet 包。项目默认可以输出 NuGet 包。源代码项目、NuGet包和DLL在新项目系统中具有相同的优先级。
  • 开源:CoreCLR、CoreFx、Roslyn、DNX,ASP.Net 都是在 MIT 或 Apache 2 许可下开源的。

DNX SDK由ASP.Net团队演变而来,得到.Net Framework团队的CoreCLR和CoreFx项目的支持。 CoreFx/CoreCLR/Roslyn 模块(与 DNX 不同)也被其他 SDK 使用,例如针对其他功能(如本机编译和 WinRT 应用程序模型)的通用 Windows 平台 (UWP)。

现在有个丑陋但好消息:

  • 像 UWP 这样的 DNX 本质上是对 Microsoft 提供的 .Net 的一次大清理,经典的 .Net Framework 正在维护(这没什么坏处)。我们的 .Net Framework 知识仍然有用,但我们必须重新学习我们的平台。
  • UWP 适用于桌面应用程序。它是 Windows 团队的首选模型。 WPF 和 WinForms 不是首选方式,基本上已弃用。放手吧。
  • DNX 用于 Web 开发和服务器应用程序(本质上是相同的)。
  • Windows不再是微软的唯一平台。他们拥抱其他平台,如 Linux(云)和 Mac(开发人员)。他们支持 Xamarin 的 Android 和 iOS 产品系列。
  • 这是图书馆和第三方地狱。欢迎来到 2015 年。IMO 这里没什么好东西。

这真的很好,并且 ps .Net 相关(对比 Node.js)。

在 Visual Studio 2015 年您可以使用它,使用 ASP.Net 5 个项目模板。

ps: 又写了很多,来不及看你的评论了。希望对你有帮助ps!

pps:注意...DNX 已成为历史。 CLI 接管了它的大部分特性,但不是全部。

ppps:此评论不再反映 .NET Core(DNX 最终在其中进化)。 .NET Core 和后来的“.NET 5”是非常不同的野兽。