Я вижу следующее почти во всех будущих обсуждениях платформы .NET:
- .NET Framework 4.6 (полная .Net framework)
- .NET Native
- .NET Core
В чем разница между всеми этими?
Как узнать, когда использовать соответствующий?
Я вижу следующее почти во всех будущих обсуждениях платформы .NET:
В чем разница между всеми этими?
Как узнать, когда использовать соответствующий?
После просмотра различных ссылок и видео я нашел интересную картину в целом:
Из вышесказанного легко можно было бы сделать следующее:
Интересным моментом является ASP.NET:
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 с первым кодом.