Разница between.NET Framework 4.6, .NET Native and.Net ядро [закрыто]


Я вижу следующее почти в каждом будущем обсуждении .NET framework:

  • .NET Framework 4.6 (Full .Net framework)
  • .NET Native
  • .NET Core

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

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

2 58

2 ответа:

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

.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

TLDR: Если это ядро, это подмножество функций, поэтому его можно запускать кросс-платой. Все, что вы можете запустить на Core, можно запустить на полной платформе 4.6 для Windows.

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

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

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

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

Entity Framework Core -- новая структура для развития ОРМ. После того, как он был вызван EF7, это кросс-платформенная платформа ORM, которая работает как для полного стека 4.6, так и для нового Основного стека. Он не обратно совместим с EF6. Он поддерживает только первую модель кода. Там может быть инструментарий в будущем, чтобы помочь обновить существующий EF6 .файлы edmx для создания классов для реализации EFCore с первым кодом.