Partilhar via


Alterações significativas no .NET 5

Se você estiver migrando um aplicativo para o .NET 5, as alterações mais recentes listadas aqui podem afetá-lo. As alterações são agrupadas por área de tecnologia, como ASP.NET Core ou criptografia.

Este artigo indica se cada alteração de quebra é compatível com binários ou com a fonte:

  • Compatível com binários - Os binários existentes carregam e executam com sucesso sem necessidade de recompilação, e o comportamento em tempo de execução não muda.
  • Compatível com código-fonte - O código-fonte será compilado com êxito sem alterações ao direcionar o novo tempo de execução ou usar o novo SDK ou componente.

ASP.NET Core

Título Compatível com binário Fonte compatível
As aplicações ASP.NET Core desserializam números entre aspas ✔️
APIs AzureAD.UI e AzureADB2C.UI obsoletas ✔️
Os métodos de serialização BinaryFormatter são obsoletos ✔️
O recurso no encaminhamento de endpoint é HttpContext ✔️
Pacotes de integração do Azure prefixados pela Microsoft removidos ✔️
Blazor: Lógica de precedência de rota alterada em aplicativos Blazor ✔️
Blazor: Suporte atualizado ao navegador ✔️ ✔️
Blazor: Espaço em branco insignificante cortado pelo compilador ✔️
Blazor: os tipos JSObjectReference e JSInProcessObjectReference são internos ✔️
Blazor: Estrutura de destino dos pacotes NuGet alterada ✔️
Blazor: recurso ProtectedBrowserStorage movido para estrutura compartilhada ✔️
Blazor: os campos públicos de 'RenderTreeFrame' que eram somente leitura agora são propriedades ✔️
Blazor: Lógica de validação atualizada para ativos da Web estáticos ✔️
APIs de criptografia não suportadas no navegador ✔️
Extensões: Alterações de referência de pacote ✔️
Os tipos Kestrel e IIS BadHttpRequestException estão obsoletos ✔️
Instâncias HttpClient criadas por IHttpClientFactory registam códigos de estado inteiros ✔️
HttpSys: Renegociação de certificado de cliente desabilitada por padrão ✔️
IIS: As cadeias de caracteres de consulta do middleware UrlRewrite são preservadas ✔️
Kestrel: Alterações de configuração detetadas por padrão ✔️
Kestrel: Versões padrão do protocolo TLS suportadas alteradas ✔️
Kestrel: HTTP/2 desativado sobre TLS em versões incompatíveis do Windows ✔️ ✔️
Kestrel: Transporte Libuv marcado como obsoleto ✔️
Propriedades obsoletas em ConsoleLoggerOptions ✔️
Foi removida a classe ResourceManagerWithCultureStringLocalizer juntamente com o membro da interface WithCulture ✔️
APIs internas públicas removidas ✔️
Construtor obsoleto removido no middleware de localização de solicitação ✔️
Middleware: Página de erro do banco de dados marcada como obsoleta ✔️
O middleware do manipulador de exceções lança a exceção original ✔️ ✔️
ObjectModelValidator chama uma nova sobrecarga de Validate ✔️
Remoção da codificação do nome do cookie ✔️
Versões do pacote NuGet do IdentityModel atualizadas ✔️
SignalR: Tipo de opções do MessagePack Hub Protocol alterado ✔️
SignalR: Protocolo do hub MessagePack foi movido ✔️
Métodos UseSignalR e UseConnections removidos ✔️
Tipo de conteúdo CSV alterado para compatível com padrões ✔️

Análise de código

Título Compatível com binário Fonte compatível
Aviso CA1416 ✔️
Aviso CA1417 ✔️
Aviso CA1831 ✔️
Aviso CA2013 ✔️
Aviso CA2014 ✔️
Aviso CA2015 ✔️
Aviso CA2200 ✔️
Aviso CA2247 ✔️

Principais bibliotecas .NET

Título Compatível com binário Fonte compatível
Alterações de API relacionadas ao assembly para publicação de arquivo único ✔️
Os métodos de serialização BinaryFormatter são obsoletos ✔️
As APIs de segurança de acesso ao código estão obsoletas ✔️
CreateCounterSetInstance lança InvalidOperationException ✔️
ActivityIdFormat padrão é W3C ✔️
Environment.OSVersion retorna a versão correta ✔️
O valor de FrameworkDescription é .NET e não .NET Core ✔️
As APIs do GAC estão obsoletas ✔️
Verificações intrínsecas de hardware IsSupported ✔️
IntPtr e UIntPtr implementam "IFormattable" ✔️
LastIndexOf lida com cadeias de caracteres de pesquisa vazias ✔️
Os caminhos URI com caracteres não ASCII no Unix ✔️
Obsoletizações de API com identificadores de diagnóstico não convencionais ✔️
Propriedades obsoletas em ConsoleLoggerOptions ✔️
Complexidade do LINQ OrderBy.First ✔️
Atributos OSPlatform renomeados ou removidos ✔️
Removido o pacote Microsoft.DotNet.PlatformAbstractions ✔️
PrincipalPermissionAttribute está obsoleto ✔️
Alterações no nome do parâmetro a partir das versões de pré-visualização ✔️
Alterações de nome de parâmetro em assemblies de referência ✔️
As APIs de comunicação remota estão obsoletas ✔️
Ordem das Atividades. A lista de Tags está invertida ✔️
Os métodos de comparação SSE e SSE2 lidam com NaN ✔️
Thread.Abort está obsoleto ✔️
Reconhecimento Uri de caminhos UNC em Unix ✔️
Os caminhos de código UTF-7 estão obsoletos ✔️
Mudança de comportamento para Vetor2.Lerp e Vetor4.Lerp ✔️
Vector<T> lança NotSupportedException ✔️

Criptografia

Título Compatível com binário Fonte compatível
APIs de criptografia não suportadas no navegador ✔️
Cryptography.Oid é apenas de leitura inicial ✔️
Pacotes de codificação TLS padrão no Linux ✔️
As sobrecargas Create() em abstrações criptográficas estão obsoletas ✔️
Valor padrão do tamanho de feedback alterado ✔️

Núcleo do Entity Framework

Alterações significativas no EF Core 5.0

Globalização

Título Compatível com binário Fonte compatível
Usar bibliotecas ICU no Windows ✔️
StringInfo e TextElementEnumerator são compatíveis com UAX29 ✔️
Categoria Unicode alterada para caracteres latino-1 ✔️
Os valores de TextInfo.ListSeparator foram alterados ✔️

Interoperabilidade

Título Compatível com binário Fonte compatível
O suporte para WinRT foi removido ✔️
Efetuar o casting de RCW para InterfaceIsIInspectable gera uma exceção ✔️
Sem sondagem de sufixo A/W em plataformas não-Windows ✔️

Rede

Título Compatível com binário Fonte compatível
O tratamento do caminho do cookie está em conformidade com a RFC 6265 ✔️
LocalEndPoint é atualizado após chamar SendToAsync ✔️
MulticastOption.Group não aceita null ✔️
Os fluxos permitem operações Begin sucessivas ✔️
WinHttpHandler removido do tempo de execução do .NET ✔️

SDK

Título Compatível com binário Fonte compatível
Arquivos Directory.Packages.props importados por padrão ✔️
Erro gerado quando um projeto executável referencia um executável incompatível ✔️
FrameworkReference substituído por WindowsSdkPackageVersion para Windows SDK ✔️
NETCOREAPP3_1 símbolo do pré-processador não definido ✔️
OutputType definido como WinExe ✔️
Alteração de comportamento PublishDepsFilePath ✔️
Mudança do TargetFramework de netcoreapp para net ✔️
Os aplicativos WinForms e WPF usam Microsoft.NET.Sdk ✔️

Segurança

Título Compatível com binário Fonte compatível
As APIs de segurança de acesso ao código estão obsoletas ✔️
PrincipalPermissionAttribute está obsoleto ✔️
Os caminhos de código UTF-7 estão obsoletos ✔️

Serialização

Título Compatível com binário Fonte compatível
BinaryFormatter.Deserialize reempacota exceções ✔️
JsonSerializer.Deserialize requer uma string de um único caractere ✔️
As aplicações ASP.NET Core desserializam números entre aspas ✔️
JsonSerializer.Serialize lança ArgumentNullException ✔️
Construtores não-públicos, sem parâmetros, não usados para desserialização ✔️
As opções são respeitadas ao serializar pares chave-valor ✔️

Windows Forms

Título Compatível com binário Fonte compatível
O código nativo não pode acessar objetos do Windows Forms ✔️
OutputType definido como WinExe ✔️
DataGridView não redefine fontes personalizadas ✔️
Os métodos lançam ArgumentException ✔️
Os métodos lançam ArgumentNullException ✔️
Propriedades lançam ArgumentOutOfRangeException ✔️
TextFormatFlags.ModifyString está obsoleto ✔️
As APIs do DataGridView lançam InvalidOperationException ✔️
Os aplicativos WinForms usam Microsoft.NET.Sdk ✔️
Controles da barra de status removidos ✔️

WPF

Título Compatível com binário Fonte compatível
OutputType definido como WinExe ✔️
Os aplicativos WPF usam Microsoft.NET.Sdk ✔️

Ver também