Прочитать на английском

Поделиться через


Критические изменения в .NET 5

При переносе приложения на платформу .NET 5 описанные здесь критические изменения могут повлиять на работу приложения. Изменения сгруппированы по технологическим областям, например ASP.NET Core или криптография.

В этой статье указывается, совместим ли каждое критическое изменение с двоичным кодом или совместимо с источником:

  • Двоичная совместимость . Существующие двоичные файлы будут загружаться и выполняться успешно без повторной компиляции, а поведение во время выполнения не изменится.
  • Совместимость с исходным кодом. Исходный код успешно компилируется без изменений при нацеливание на новую среду выполнения или использование нового пакета SDK или компонента.

ASP.NET Core

Заголовок Совместимость на уровне двоичных файлов Совместимость на уровне исходного кода
ASP.NET основные приложения десериализации кавычек ✔️
Устаревшие API AzureAD.UI и AzureADB2C.UI ✔️
Методы сериализации BinaryFormatter устарели ✔️
Ресурс в маршрутизации конечных точек — HttpContext ✔️
Удаленные пакеты интеграции Azure с префиксом Майкрософт ✔️
Blazor: изменение логики приоритета маршрута в приложениях Blazor ✔️
Blazor: обновлена поддержка браузера ✔️ ✔️
Blazor: незначительные пробелы, обрезанные компилятором ✔️
Blazor: типы JSObjectReference и JSInProcessObjectReference являются внутренними ✔️
Blazor: целевая платформа пакетов NuGet изменилась ✔️
Blazor: ProtectedBrowser служба хранилища функция перемещена в общую платформу ✔️
Blazor: общедоступные поля RenderTreeFrame теперь являются свойствами ✔️
Blazor: обновленная логика проверки для статических веб-ресурсов ✔️
API-интерфейсы шифрования не поддерживаются в браузере ✔️
Расширения: изменения ссылки на пакет ✔️
Типы Kestrel и IIS BadHttpRequestException устарели ✔️
Экземпляры HttpClient, созданные кодами состояния журнала IHttpClientFactory ✔️
HttpSys: повторное согласование сертификата клиента, отключенное по умолчанию ✔️
IIS: строки запроса ПО промежуточного слоя UrlRewrite сохраняются ✔️
Kestrel: изменения конфигурации, обнаруженные по умолчанию ✔️
Kestrel: изменены поддерживаемые по умолчанию версии протокола TLS ✔️
Kestrel: HTTP/2 отключен по протоколу TLS в несовместимых версиях Windows ✔️ ✔️
Kestrel: Транспорт Libuv помечен как устаревший ✔️
Устаревшие свойства ConsoleLoggerOptions ✔️
Класс ResourceManagerWithCultureStringLocalizer и член интерфейса WithCulture удален ✔️
Удаленные API-интерфейсы pubternal ✔️
Устаревший конструктор удален в ПО промежуточного слоя локализации запросов ✔️
ПО промежуточного слоя: страница ошибок базы данных, помеченная как устаревшая ✔️
ПО промежуточного слоя обработчика исключений создает исходное исключение ✔️ ✔️
ObjectModelValidator вызывает новую перегрузку Validate ✔️
Удалена кодировка имени файла cookie ✔️
Обновленные версии пакетов NuGet IdentityModel ✔️
SignalR: изменен тип параметров протокола MessagePack Hub ✔️
SignalR: протокол MessagePack Hub перемещен ✔️
Методы UseSignalR и Use Подключение ions удалены ✔️
Тип содержимого CSV изменен на соответствие стандартам ✔️

Анализ кода

Заголовок Совместимость на уровне двоичных файлов Совместимость на уровне исходного кода
Предупреждение CA1416 ✔️
Предупреждение CA1417 ✔️
Предупреждение CA1831 ✔️
Предупреждение CA2013 ✔️
Предупреждение CA2014 ✔️
Предупреждение CA2015 ✔️
Предупреждение CA2200 ✔️
Предупреждение CA2247 ✔️

Основные библиотеки .NET

Заголовок Совместимость на уровне двоичных файлов Совместимость на уровне исходного кода
Изменения API, связанные с сборками для публикации с одним файлом ✔️
Методы сериализации BinaryFormatter устарели ✔️
API безопасности доступа к коду устарели ✔️
CreateCounterSetInstance создает исключение InvalidOperationException ✔️
По умолчанию ActivityIdFormat имеет значение W3C ✔️
Environment.OSVersion возвращает правильную версию ✔️
Значение FrameworkDescription — это .NET не .NET Core ✔️
API GAC устарели ✔️
Встроенные аппаратные проверка IsSupported ✔️
IntPtr и UIntPtr реализуют IFormattable ✔️
LastIndexOf обрабатывает пустые строки поиска ✔️
Пути URI с символами, отличными от ASCII в Unix ✔️
Устаревшие API с отличными от заданных по умолчанию идентификаторами диагностики ✔️
Устаревшие свойства ConsoleLoggerOptions ✔️
Сложность LINQ OrderBy.First ✔️
Атрибуты OSPlatform переименованы или удалены ✔️
Удален пакет Microsoft.DotNet.PlatformAbstractions ✔️
PrincipalPermissionAttribute устарел ✔️
Изменения имени параметра из предварительных версий ✔️
Изменения имени параметра в эталонных сборках ✔️
API удаленного взаимодействия устарели ✔️
Обратный порядок списка Activity.Tags ✔️
Методы сравнения SSE и SSE2 обрабатывают NaN ✔️
Thread.Abort устарел ✔️
Распознавание URI UNC-путей в UNIX ✔️
Пути к коду в кодировке UTF-7 устарели ✔️
Изменение в поведении для Vector2.Lerp и Vector4.Lerp ✔️
Vector<T> создает исключение NotSupportedException ✔️

Шифрование

Entity Framework Core

Критические изменения в EF Core 5.0

Глобализация

Заголовок Совместимость на уровне двоичных файлов Совместимость на уровне исходного кода
Использование библиотек ICU в Windows ✔️
StringInfo и TextElementEnumerator совместимы с UAX29 ✔️
Категория Юникода изменена для символов Latin-1 ✔️
Изменены значения TextInfo.ListSeparator ✔️

Interop

Заголовок Совместимость на уровне двоичных файлов Совместимость на уровне исходного кода
Поддержка WinRT удалена ✔️
Приведение RCW к InterfaceIsIInspectable вызывает исключение ✔️
Отсутствует проверка суффикса A/W на платформах, отличных от Windows ✔️

Сеть

SDK

Безопасность

Заголовок Совместимость на уровне двоичных файлов Совместимость на уровне исходного кода
API безопасности доступа к коду устарели ✔️
PrincipalPermissionAttribute устарел ✔️
Пути к коду в кодировке UTF-7 устарели ✔️

Сериализация

Windows Forms

WPF

Заголовок Совместимость на уровне двоичных файлов Совместимость на уровне исходного кода
OutputType имеет значение WinExe ✔️
Приложения WPF используют Microsoft.NET.Sdk ✔️

См. также