Andrey on .NET | Вышли .NET Core 2.1, ASP.NET Core 2.1 и EF Core 2.1

Вышли .NET Core 2.1, ASP.NET Core 2.1 и EF Core 2.1

Стали доступны для загрузки финальные версии .NET Core 2.1, ASP.NET Core 2.1 и Entity Framework Core 2.1.

Где скачать

Обратите внимание, что SDK уже включает в себя run-time. A для разработки в Visual Studio 2017 потребуется установленный пакет обновлений 15.7.

.NET Core 2.1

Поддерживаемые операционные системы

  • Windows Client: 7, 8.1, 10 (1607+)
  • Windows Server: 2008 R2 SP1+
  • macOS: 10.12+
  • RHEL: 6+
  • Fedora: 26+
  • Ubuntu: 14.04+
  • Debian: 8+
  • SLES: 12+
  • openSUSE: 42.3+
  • Alpine: 3.7+

Из изменений. появившихся в новой версии .NET Core можно отметить:

  • Увеличенную скорость сборки проекта. Разработчики обещают, что прирост на больших проектах может быть вплоть до 10-кратного (по сравнению с .NET Core 2.0).
  • Увеличенную скорость работы в run-time. Подробности можно найти в блоге разработчиков.
  • Улучшенная производительность классов, связанных с обработкой сетевых запросов.
  • Типы Span<T>, Memory<T>
  • Поддержку алгоритма сжатия Brotli (тип BrotliStream)
  • Изменения коснулись так же криптографического API
  • Появился Windows Compatibility Pack – это библиотека (доступна на NuGet), которая упрощает портирование .NET кода на .NET Core. Она предоставляет доступ к API которые отсутствуют в самом .NET Core.

ASP.NET Core 2.1

Вот что появилось в ASP.NET Core 2.1

  • SignalR – уже хорошо известная в .NET библиотека для обмена сообщениями межу веб-сервером и клиентами в реальном времени.
  • Библиотеки классов Razor – возможность создавать библиотеки, которые содержат Razor страницы.
  • Поддержка Identity UI – позволяет добавлять страница авторизации в приложения (использует библиотеку Razor).
  • HTTPS теперь включен по умолчанию.
  • Добавлена возможность написания функциональных тестов для MVC, которые будут выполняться в памяти
  • Поддержка Generic Host позволяет создавать не только web-приложения, но и другие типы проектов.
  • Атрибут [ApiController] и класс ActionResult<T> позволят создавать более понятные API
  • IHttpClientFactory – это фабрика, предоставляющая HttpClient как сервис.
  • В Kestrel заменили libuv на управляемые сокеты.
  • Шаблоны проектов изменены согласно требованиям GDPR.
  • Улучшены SPA шаблоны для Angular, React и React + Redux.

Entity Framework Core 2.1

Новые возможности Entity Framework Core 2.1

  • Поддержка GroupBy в LINQ
  • Поддержка System.Transactions
  • Конструкторы сущностей теперь могут иметь параметры.
  • Поддержка приведения значений. Если раньше сущности могли содержать только типы, которые имени аналоги в базе данных, то теперь возможно приведение некоторых типов к известным. Например: значения enum могут быть записаны и загружены из поля типа “строка”. При этом значение перечисления будет преобразовано в строку, а при загрузке – наоборот.
  • Возможность задать начальные данные для таблиц
  • Стали доступны новые типы запросов без первичного ключа (primary key). Например для загрузки данных из представлений (view).
  • Атрибут [Owned] для указания вложенных типов (будут добавлены в содержащую их модель).
  • Улучшена оптимизация подзапросов.
  • Отложенная загрузка (Lazy Loading), которая была доступна в обычном Entity Framework.

Комментарии (3) -

Скажи ты используешь .NET Core в боевых условиях?
Я начитался неочень довольных отзывов и думаю куда податься.
Java, Go или таки .NET Core.

На работе я пока активно продвигаю тему. Проект, надо которым работаю сейчас, очень большой и переписать его быстро на .NET Core не выйдет. Поэтому есть два вопроса - совместимость всех используемых в нем библиотек с Core и время на переделку. Благо есть .NET Standard и можно спокойно подготавливать код к .NET Core.

Для себя в различных тестах и личных проектах - используют Core. Но размер конечно не сопоставим с рабочим проектом.

Я думаю тут все зависит от проекта. Я видел удачные использования Core (особенно если проект стартует на нем), и не удачные (когда перенести код было практически не возможно, но сейчас может Windows Compatibility Pack улучшит ситуацию).

Судя по выходу .NET Core 2.1 (blogs.msdn.microsoft.com/.../announcing-net-core-2-1) должно заработать без существенных проблем.
Я думаю поднять проект на .NET Core благо мне шарп ближе других языков, а Python с динамикой с определённого порога трудно поддерживать.

Добавить комментарий