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

时间:2015-09-09 15:34:04

标签: visual-studio-2015 dnx

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

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

1 个答案:

答案 0 :(得分:22)

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

等主题
  • API大小:API在共享的位置相同,但它是.Net Framework的子集。框架库称为CoreFx,来自Windows Store和Silverlight API包。 CoreFx库包可以直接实现(dnxcore50),也可以是.Net Framework(dnx46)的类型转发器。请注意,80%的.Net Framework是应用程序模型,如WPF和WinForms或Windows库,如WMI,......在大多数情况下,不使用这些库。
  • 运行时支持:SDK可以在.Net Framework运行时(Windows)或CoreCLR(Windows,Mac,Linux,FreeBSD)或Mono(Windows,Mac,Linux, ...)。
  • 部署模式:包含运行时的库将部署到应用程序的文件夹中。这可以防止由于Framework更新导致的错误,并且还允许Microsoft以更“冒险”的方式发展.Net生态系统。
  • 编译模式:DNX有一个集成的编译管道(基于Roslyn),它可以动态编译源代码,因此您可以直接从内存中编译的源代码运行软件而无需文件(模糊差异在运行时和设计时间之间)。特别适合ASP.Net场景。支持预编译。
  • 平台集成:DNX不是平台集成的(意味着:您必须像使用mono或java一样调用它)。
  • NuGet Everything&新项目系统:clr,库(第1版,第2版和第3版)以及应用程序模型都是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使用,例如针对其他功能的通用Windows平台(UWP)(如本机编译和WinRT应用程序模型)。

现在是丑陋但好消息:

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

这非常好并且保持.Net相关(例如Node.js)。

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

ps:再写一遍并且太晚看了你的评论。希望它有所帮助!

pps:请注意...... DNX是历史。 CLI接管..它涵盖了大多数特性,但不是全部。