DNX - это альтернатива Mono? Если нет, то какая будет разница?
Mono - это платформа разработки с открытым исходным кодом. Его реализация основана на спецификации CLI, такой как платформа, предоставляемая Microsoft. Он включает компилятор C #, среду выполнения, BCL и нечто, называемое MCL (библиотека классов Mono, которая является расширением BCL). Сам Mono может работать в Linux, OS X, BSD и Windows на разных архитектурах.
DNX - это SDK, содержащий все биты, необходимые для создания и запуска приложения (включая специальные утилиты, такие как dnu
, который используется для сборки и упаковки приложения), включая среду CLR (в настоящее время она развертывается с помощью CoreCLR strong >). Этот CoreCLR также можно переключить на Mono, что означает, что он будет использовать все службы среды выполнения Mono, компилятора и т. Д.
Mono, в отличие от DNX, предоставляет полную платформу (Runtime, BCL, JIT и т. Д.). DNX используется на самом низком уровне как собственный процесс, который вызвал CoreCLR. DNX будет использоваться для таких сценариев, как самостоятельное размещение или сборка и запуск из командной строки.
Как указывает @xanatos, DNX стремится иметь возможность поставлять среду выполнения вместе с приложением, где несколько сред выполнения смогут работать бок о бок, не мешая друг другу.
Возможно, это изображение поможет прояснить:
![Диаграмма DNX](https://i.stack.imgur.com/t0MvW.png)
Вот список, который DNX может запускать поверх (x86 отображается дважды, поскольку это значение по умолчанию):
Active Version Runtime Architecture Location Alias
------ ------- ------- ------------ -------- -----
* 1.0.0-beta2-10735 clr x86 C:\Users\victorhu\.dnx\runtimes default
1.0.0-dev clr x64 C:\Users\victorhu\.dnx\runtimes clr-x64-dev
1.0.0-dev clr x86 C:\Users\victorhu\.dnx\runtimes clr-x86-dev
1.0.0-dev coreclr xd64 C:\Users\victorhu\.dnx\runtimes coreclr-x64-dev
1.0.0-dev coreclr x86 C:\Users\victorhu\.dnx\runtimes coreclr-x86-dev
1.0.0-dev mono C:\Users\victorhu\.dnx\runtimes mono-dev
Существует обширная страница вики, на которой подробно описывается структура DNX. @Will также указывает на страницу документации ASP.NET.
Обновление: 25.02.2016
DNX заменен на .NET CLI Tools.
Обновление: 06.08.2020
Инструменты интерфейса командной строки .NET заменены на dotnet sdk
person
Yuval Itzchakov
schedule
21.05.2015