.NET 执行环境 (DNX) 是否类似于 Mono? [英] Is .NET Execution Environment (DNX) similar to Mono?

查看:17
本文介绍了.NET 执行环境 (DNX) 是否类似于 Mono?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这里是DNX的描述:

.NET 执行环境 (DNX) 是一个软件开发工具包(SDK) 和运行时环境,包含您构建所需的一切并运行适用于 Windows、Mac 和 Linux 的 .NET 应用程序.它提供了一个宿主进程、CLR 宿主逻辑和托管入口点发现.DNX是为运行跨平台 ASP.NET Web 应用程序而构建的,但它也可以运行其他类型的 .NET 应用程序,例如跨平台控制台应用程序.

The .NET Execution Environment (DNX) is a software development kit (SDK) and runtime environment that has everything you need to build and run .NET applications for Windows, Mac and Linux. It provide a host process, CLR hosting logic and managed entry point discovery. DNX was built for running cross-platform ASP.NET Web applications, but it can run other types of .NET applications, too, such as cross-platform console apps.

DNX 是 Mono 的替代品吗?如果不是,那有什么区别?

Is DNX an alternative to Mono? If not, then what will be the difference?

推荐答案

DNX 是 Mono 的替代品吗?如果不是,那有什么区别?

Is DNX an alternative to Mono? If not, then what will be the difference?

Mono 是一个开源的开发平台.它的实现基于 CLI 规范,例如 Microsoft 提供的平台.它包括一个 C# 编译器、一个运行时、一个 BCL 和称为 MCL(Mono 类库,它是 BCL 的扩展)的东西.Mono 本身可以在不同架构的 Linux、OS X、BSD 和 Windows 上运行.

Mono is an open sourced development platform. Its implementation is based on the CLI specification, such as the platform that is provided by Microsoft. It includes a C# compiler, a runtime, a BCL and something called MCL (Mono Class Library, which is an extensions to the BCL). Mono itself can run on Linux, OS X, BSD and Windows on varying architectures.

DNX 是一个 SDK,包含构建和运行应用程序所需的所有位(包括自定义实用程序,例如用于构建和打包应用程序的 dnu),包括 CLR(目前它使用 CoreCLR 进行部署).这个 CoreCLR 也可以用 Mono 切换,这意味着它将消耗 Mono 运行时、编译器等的所有服务.

DNX is an SDK containing all of the bits needed to build and run an application (including custom utilities such as the dnu which is used to build and package the app), including the CLR (currently it deploys with CoreCLR). This CoreCLR can also be switched with Mono, which means it will be consuming all services of the Mono runtime, compiler, etc.

相对于 DNX,Mono 提供了完整的平台(运行时、BCL、JIT 等).DNX 在最低级别用作调用 CoreCLR 的本机进程.DNX 将用于自托管或从命令行构建和运行等场景.

Mono as opposed to DNX provides the full platform (Runtime, BCL, JIT, etc.). DNX is used at the lowest level as the Native Process which invoked the CoreCLR. DNX would be used for scenarios such as self-host or building and running from the command line.

正如@xanatos 指出的那样,DNX 渴望能够将运行时与应用程序一起提供,其中多个运行时将能够并存而不会相互干扰.

As @xanatos points out, DNX aspire to be able to ship the runtime with the application, where multiple runtimes will be able to live side by side without interfering each other.

或许这张图可以说明问题:

Perhaps this image can clarify:

这里是 DNX 可以在上面运行的列表(x86 显示两倍,因为它是默认值):

Here is the list which DNX can run on top (x86 showing twice as it is the default):

Active Version           Runtime Architecture Location                           Alias
------ -------           ------- ------------ --------                           -----
  *    1.0.0-beta2-10735 clr     x86          C:Usersvictorhu.dnx
untimes default
       1.0.0-dev         clr     x64          C:Usersvictorhu.dnx
untimes clr-x64-dev
       1.0.0-dev         clr     x86          C:Usersvictorhu.dnx
untimes clr-x86-dev
       1.0.0-dev         coreclr xd64         C:Usersvictorhu.dnx
untimes coreclr-x64-dev
       1.0.0-dev         coreclr x86          C:Usersvictorhu.dnx
untimes coreclr-x86-dev
       1.0.0-dev         mono                 C:Usersvictorhu.dnx
untimes mono-dev

有一个广泛的wiki 页面解释了 DNX 结构以获取更多信息.@Will 还指出了 ASP.NET 文档页面.

There is an extensive wiki page explaning the DNX structure for more. @Will points out the ASP.NET docs page as well.

DNX 现已停用,取而代之的是 .NET CLI 工具.

DNX is now retired in favor of .NET CLI Tools.

.NET CLI 工具 现已停用,取而代之的是 dotnet sdk

.NET CLI Tools are now retired in favor of dotnet sdk

这篇关于.NET 执行环境 (DNX) 是否类似于 Mono?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆