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

Cat*_*tto 10 visual-studio-2015 dnx

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

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

Tho*_*mas 23

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&new project system:clr,库(第1版,第2版和第3版)以及app模型都是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不再是微软的唯一平台.他们拥抱其他平台,如Linux(云)和Mac(开发人员).他们支持Xamarin的Android和iOS产品阵容.
  • 这是一个图书馆和第三方地狱.欢迎来到2015. IMO在这里没什么好看的.

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

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

ps:再写一遍并且太晚看了你的评论.希望能帮助到你!

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

  • Absoluty.这是过时的,我不会建议使用它来维护现有的解决方案(希望不是). (2认同)