卡托
什么是Visual Studio 2015中的DNX?如何使用它?
我看到DNX是Dot Net执行环境。我想知道的是它到底是什么以及如何使用?
汤玛士
DNX是.Net的SDK,与.Net Framework相似但完全不同。差异很大,包括诸如
- API大小:共享该API的地方是相同的,但是它是.Net Framework的子集。框架库称为CoreFx,来自Windows应用商店和Silverlight API包。CoreFx库软件包可以直接实现(dnxcore50),也可以是.Net Framework的类型转发器(dnx46)。请注意,.Net Framework的80%是诸如WPF和WinForms之类的应用程序模型或诸如WMI之类的Windows库,...在大多数情况下,这些库没有使用。
- 运行时支持: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(例如面向其他功能(如本机编译和WinRT应用程序模型)的Universal Windows Platform(UWP)使用。
现在是丑陋但好消息:
- 像UWP这样的DNX本质上是对Microsoft提供的.Net的重大清理,而经典的.Net Framework即将维护(这没什么不好)。我们的.Net Framework知识仍然有用,但是我们必须重新学习我们的平台。
- UWP用于桌面应用程序。它是Windows团队的首选模型。WPF和WinForms不是首选方法,实际上已过时。放手吧。
- DNX用于Web开发和服务器应用程序(本质上是相同的)。
- Windows不再是Microsoft的唯一平台。他们使用其他平台,例如Linux(云)和Mac(开发人员)。他们的Android和iOS产品阵容均支持Xamarin。
- 这是图书馆和第三方的地狱。欢迎来到2015年。IMO在这里没有什么好处。
这确实很好,并且保持了.Net的相关性(例如,Node.js)。
在Visual Studio 2015中,您可以使用ASP.Net 5项目模板来利用它。
ps:再次写了很多,读得太晚了。希望能帮助到你!
pps:请注意... DNX是历史。CLI接管了。.涵盖了它的大部分特性,但不是全部。
ppps:此评论不再反映.NET Core(DNX最终在其中发展)。.NET Core和更高版本的“ .NET 5”是完全不同的野兽。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
编辑于
我来说两句