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

Visual studio 2015 Visual Studio 2015中的DNX是什么&;我如何使用它?,visual-studio-2015,dnx,Visual Studio 2015,Dnx,Visual Studio 2015中的DNX是什么?我如何使用它 我看到DNX是一个.Net执行环境。我想知道的是它到底是什么,它是如何使用的 DNX是.Net的SDK,与.Net Framework类似,但完全不同。差异非常显著,包括以下主题 API大小:API在共享的地方是相同的,但它是.Net Framework的一个子集。框架库称为CoreFx,来自Windows应用商店和Silverlight API包。CoreFx库包可以直接实现(dnxcore50),也可以是.Net Fram

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


我看到DNX是一个.Net执行环境。我想知道的是它到底是什么,它是如何使用的

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

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

现在是个丑陋但好消息:

  • 类似DNX的UWP本质上是对微软提供的.Net的大清理,经典的.Net框架将进行维护(这没什么不好的)。我们的.Net框架知识仍然有用,但我们必须重新学习我们的平台
  • UWP用于桌面应用程序。它是Windows团队的首选型号。WPF和WinForms不是首选方式,基本上不推荐使用。让它去吧
  • DNX用于web开发和服务器应用程序(本质上是相同的)
  • Windows不再是Microsoft的唯一平台。他们拥抱其他平台,如Linux(云)和Mac(开发人员)。他们支持Xamarin的Android和iOS产品系列
  • 这是一个图书馆和第三方地狱。欢迎来到2015年。我这里没有什么好东西
这真的很好,并且保持了.Net的相关性(与Node.js相比)

在VisualStudio2015中,您可以使用ASP.NET5项目模板来使用它

ps:再次写信给很多人,读你的评论太晚了。希望有帮助

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


购买力平价:这一评论不再反映.NET核心(DNX最终演变而来)。NET核心和更高版本的“.NET 5”是非常不同的野兽。

你试过谷歌吗?你有没有具体的问题?你似乎想要一个导师。Sous2817的链接非常有用。我感谢你的帮助。你的评论很好。。。这是一个图书馆和第三方地狱。欢迎来到2015年。我觉得这里没什么好东西。他们通过引入标准库和可传递依赖项,稍微解决了这个问题。但人们是否会喜欢它是另一个问题。@Tseng如果它有编译器和包管理器,我会称它为SDK。两者都有。它被微软员工称为SDK。所以我坚持这个术语,我认为这个答案已经过时了。DNX在最近的一个候选版本中被淘汰了,不是吗?绝对。它已经过时了,除了维护现有的解决方案之外,我不建议任何人使用它(希望不是)。