Подтвердить что ты не робот

Разница между .NET Framework 4.6,.Net Native и .Net Core

Я вижу следующее почти во всех будущих обсуждениях платформы .NET:

  • .NET Framework 4.6 (полная .Net framework)
  • .NET Native
  • .NET Core

В чем разница между всеми этими?

Как узнать, когда использовать соответствующий?

4b9b3361

Ответ 1

После просмотра различных ссылок и видео я нашел интересную картину в целом:

.NET Framework 4.6, .Net Native and .NET Core

Из вышесказанного легко можно было бы сделать следующее:

  • .NET Framework 4.6 - это полная инфраструктура для всего, что связано с .NET, но не хватает библиотек и среды выполнения, оптимизированных для многоплатформенных (Windows, Linux и Mac) и облачных развертываний.
  • .NET Core, с другой стороны, является подмножеством .NET Framework 4.6, который в основном оптимизирован для многоплатформенных и облачных развертываний.
  • .NET Native в основном используется для разработки универсальных приложений, которые будут оптимизированы для работы на любом устройстве и платформе, изначально (не для веб-приложений).

Интересным моментом является ASP.NET:

  • Если нам нужна обратная совместимость в полной мере (например, веб-формы или поддержка aspx), нам нужно перейти с .NET Framework 4.6
  • Если мы разрабатываем веб-страницы MVC, Web API или Razor, мы можем развернуть эти веб-приложения либо в среде .NET Framework 4.6, либо в среде .NET Core.

Ответ 2

TL;DR. Если это Core, это подмножество функциональности, чтобы можно было запустить cross-plat. Все, что вы можете запустить на Core, можно запустить в полной версии 4.6 для Windows.

.NET Framework v4.6. Полная структура, которая может работать только в Windows. Однако, поскольку это полная структура, это означает, что вы получаете WCF, WPF и все функциональные возможности. Вы можете думать об этом как о своей обычной разработке .NET Windows, которую вы, вероятно, делаете сегодня. Он включает ASP.NET WebForms, MVC, Core и SignalR. Если вы используете .NET 4.5 сегодня, это ваш следующий естественный путь обновления.

.NET Core. Структура подмножества, которая не включает все в полную 4.6 Framework. Однако он предназначен для кросс-платформенной работы в Windows, Mac или Linux. Однако вы теряете некоторые функции, такие как WCF, WPF. Но вы все равно будете иметь ASP.NET Core (без WebForms), но еще не SignalR. Поддержка SignalR предназначена для более поздней версии. Для использования компиляции приложений используется CLI (командной строки) с dotnet, или если вы находитесь в Windows, то вы можете использовать Visual Studio.

.NET Native. Собственная компиляция .NET Framework. Вместо того, чтобы выполнять обычную компиляцию JIT во время выполнения вашего .exe, это сделает компиляцию AOT, которая может потенциально улучшить оптимизацию вашего кода с использованием компилятора бэкэнд С++ (или LLVM с помощью LLILC). Когда вы это делаете, вы ориентируетесь на определенную платформу, такую ​​как "Linux 64-bit". Преимущества - это более быстрое время запуска, потенциально меньшие требования к памяти, надеюсь, улучшенная производительность во время выполнения, и испускает только один бинарный файл (вам не нужно будет устанавливать .NET Framework на целевой машине). Однако компромисс является переносимостью на другие платформы - у вас будут отдельные двоичные файлы для Linux, MacOS, Windows, 32-разрядных, 64-разрядных и т.д. В настоящее время это работает только для приложений Windows Store, но больше работы выполняется, Я буду работать с обычными приложениями .NET, включая приложения ASP.NET. В настоящее время не планируется выпуск .NET Core 1.0.

ASP.NET Core. Новый способ создания веб-разработки на .NET Core или Full Framework. Он включает настраиваемый HTTP-конвейер, веб-сервер Kestrel и более эффективные профили, чем предыдущая версия ASP.NET 4.x. Это кросс-платформенная совместимость как для полной структуры, так и для базовой структуры. Он не включает WebForms или поддержку SignalR (пока). Он не обратно совместим с ASP.NET 4, хотя, если вы используете MVC/WebAPI сейчас, то MVC/WebAPI, идущий вперёд, должен быть довольно близким, так как будет только один класс Controller. Если вы хотите использовать WebForms, тогда у вас нет выбора, кроме как придерживаться полной версии 4.6 Framework.

Ядро Entity Framework. Новая структура для разработки ORM. Как только EF7 называется, это кросс-платформенная платформа ORM работает как для полного пакета 4.6, так и для нового ядра. Он не обратно совместим с EF6. Он поддерживает только модель кода. В будущем может понадобиться инструментарий для обновления существующих файлов EF6.edmx для генерации классов для реализации EFCore с первым кодом.