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接管..它涵盖了大多数特性,但不是全部。