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

10

DNX是Visual Studio 2015中的Dot Net eXecution环境。它是什么以及如何使用呢?

我了解到,DNX是Dot Net eXecution环境。但我还想知道它究竟是什么以及如何使用它。


1
你试过谷歌吗?http://docs.asp.net/en/latest/dnx/overview.html - sous2817
你对此有具体的问题吗?你似乎想要一个教程。 - Mystra007
Sous2817提供的链接非常有帮助。我很感激您的协助。 - Catto
1个回答

23

DNX是 .Net 的一个SDK,类似但并不完全相同于 .Net Framework。它们的区别非常显著,包括以下几个方面:

  • API大小: 在共享的部分,API是相同的,但是它只是 .Net 框架的子集。框架库称为 CoreFx,源于Windows Store和Silverlight API套件。CoreFx库包要么是直接实现的(dnxcore50),要么是指向 .Net Framework的类型转发器(dnx46)。请注意,80%的 .Net Framework 是WPF、WinForms或Windows库等应用程序模型。在大多数情况下,这些库并没有被使用。
  • 运行时支持: SDK 可以运行在 .Net Framework runtime (Windows), CoreCLR (Windows, Mac, Linux, FreeBSD) 或者 Mono (Windows, Mac, Linux, ...) 上。
  • 部署模式: 库,包括运行时都部署到应用程序的文件夹中。这可以防止由于 Framework 更新而导致的错误,并且还允许 Microsoft 以更 "冒险" 的方式发展 .Net 生态系统。
  • 编译模式: DNX 有一个集成的编译管道(基于 Roslyn),可以动态地编译源代码,因此可以在内存中直接从源代码运行软件,而无需文件(模糊运行时和设计时的差异)。特别适用于ASP.Net场景。支持预编译。
  • 平台集成: DNX 不是平台集成的(意味着:你必须像使用 Mono 或 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))使用。

现在是丑陋但好消息:

  • DNX和UWP本质上都是对由Microsoft提供的.Net进行大规模清理,经典的.Net Framework转为维护状态(这并不坏)。我们仍然可以使用.Net Framework知识,但必须重新学习我们的平台。
  • UWP适用于桌面应用程序。这是Windows团队首选的模型。WPF和WinForms不是首选方式,本质上已弃用。让它们过去吧。
  • DNX适用于Web开发和服务器应用程序(本质上是相同的)。
  • Windows不再是微软唯一的平台。他们支持像Linux(云)和Mac(开发人员)这样的其他平台。他们支持Xamarin以满足其Android和iOS产品系列的需求。
  • 这是库和第三方组件的地狱。欢迎来到2015年。在我看来没有什么好处。

这使得.Net保持相关性(与Node.js等其他技术相比)。

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

PS:又写太多了,读晚了你的评论。希望能有所帮助!

PPS:请注意...DNX已成为历史。CLI接管了...尽管它覆盖了其大部分特性,但不是全部。

PPPS:这条评论不再反映.NET Core(其中DNX最终演变而来)。 .NET Core和后来的“ .NET 5”的差异很大。


顺便提一下,DNX 不是 SDK,DNX 是运行时环境,因此得名:DotNet 执行环境。 - Tseng
1
@Tseng 当它具有编译器和包管理器时,我会称其为SDK。它们都有。微软员工称之为SDK。因此,我坚持使用这个术语。 - Thomas
参考:UWP = 通用 Windows 平台 = “通用 Windows 平台 (UWP) 应用程序可以在任何基于 Windows 的设备上运行,从您的手机到平板电脑或 PC”。https://msdn.microsoft.com/zh-cn/windows/uwp/layout/design-and-ui-intro - Jim Aho
1
我认为这个答案现在已经过时了。DNX在更近期的候选版本中被淘汰了,不是吗? - Burt_Harris
2
绝对是过时的,我不建议任何人在维护现有解决方案之外使用它。 - Thomas
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接