Что такое DNX в Visual Studio 2015 и как его использовать?

Что такое DNX в Visual Studio 2015 и как его использовать?

Я вижу, что DNX - это среда Dot Net eXecution. Я хотел бы знать, что это именно так и как оно используется?

Ответ 1

DNX - это SDK, аналогичный .Net, но не идентичный .Net Framework. Различия довольно резко, включая такие темы, как

  • Размер API: API идентичен там, где он используется совместно, но он является подмножеством .Net Framework. Библиотеки фреймворка называются CoreFx и происходят из линейки пакетов API Магазина Windows и Silverlight. Библиотечные пакеты 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 и поддерживается проектами CoreCLR и CoreFx команды .Net Framework. Модули CoreFx/CoreCLR/Roslyn (которые не идентичны DNX) также используются другими SDK, такими как универсальная платформа Windows (UWP), которая предназначена для других функций (таких как собственная компиляция и модель приложения WinRT).

А теперь неприятные, но хорошие новости

  • DNX, такие как UWP, по сути являются большой очисткой .Net, предлагаемой Microsoft, с классической .Net Framework, идущей на обслуживание (что не так уж и плохо). Наши знания .Net Framework все еще полезны, но мы должны переучить нашу платформу.
  • UWP для настольных приложений. Это предпочтительная модель от команды Windows. WPF и WinForms НЕ являются предпочтительным способом и по сути устарели. Отпусти ситуацию.
  • DNX предназначен для веб-разработки и серверных приложений (которые по сути одинаковы).
  • Windows больше не единственная платформа для Microsoft. Они охватывают другие платформы, такие как Linux (облако) и Mac (разработчики). Они поддерживают Xamarin для своей линейки продуктов Android и iOS.
  • Это библиотека и сторонний ад. Добро пожаловать в 2015 году. ИМО ничего хорошего здесь.

И это действительно хорошо и сохраняет актуальность .Net (например, Node.js).

В Visual Studio 2015 вы можете использовать его, используя шаблоны проектов ASP.Net 5.

PS: переписал много раз и прочитал ваш комментарий слишком поздно. Надеюсь, поможет!

pps: будьте в курсе... DNX - это история. CLI вступает во владение.., который покрывает большинство его характеристик, но не все.

ppps: этот комментарий больше не отражает .NET Core (в котором DNX окончательно эволюционировал). .NET Core и более поздние ".NET 5" - очень разные звери.