Compartilhar via


Alterações significativas no .NET 5

Se você estiver migrando um aplicativo para o .NET 5, as alterações interruptivas listadas aqui poderão afetar você. As alterações são agrupadas por área de tecnologia, como ASP.NET Core ou criptografia.

Este artigo indica se cada alteração interruptiva é compatível com binários ou compatível com o código-fonte:

  • Compatível com binários – binários existentes serão carregados e executados com êxito sem recompilação e o comportamento do runtime não será alterado.
  • Compatível com o código-fonte - O código-fonte será compilado com sucesso sem alterações ao direcionar para o novo tempo de execução ou ao usar o novo SDK ou componente.

ASP.NET Core

Título Compatibilidade binária Compatível com a origem
Os aplicativos ASP.NET Core desserializam números entre aspas ✔️
APIs do AzureAD.UI e do AzureADB2C.UI obsoletas ✔️
Os métodos de serialização BinaryFormatter são obsoletos ✔️
O recurso no roteamento de endpoints é o 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: Framework de destino dos pacotes NuGet alterado ✔️
Blazor: recurso ProtectedBrowserStorage movido para a estrutura compartilhada ✔️
Blazor: os campos públicos somente leitura RenderTreeFrame agora são propriedades ✔️
Blazor: Lógica de validação atualizada para ativos da Web estáticos ✔️
APIs de criptografia sem suporte no navegador ✔️
Extensões: alterações de referência de pacote ✔️
Os tipos Kestrel e IIS BadHttpRequestException são obsoletos ✔️
Instâncias HttpClient criadas por IHttpClientFactory registram códigos de status inteiros ✔️
HttpSys: Renegociação de certificado do cliente desabilitada por padrão ✔️
IIS: as cadeias de caracteres de consulta de middleware UrlRewrite são preservadas ✔️
Kestrel: Alterações de configuração detectadas por padrão ✔️
Kestrel: Versões de protocolo TLS com suporte padrão alteradas ✔️
Kestrel: HTTP/2 desabilitado por TLS em versões incompatíveis do Windows ✔️ ✔️
Kestrel: transporte do Libuv marcado como obsoleto ✔️
Propriedades obsoletas no ConsoleLoggerOptions ✔️
Classe ResourceManagerWithCultureStringLocalizer e membro da interface WithCulture removidos ✔️
APIs do Pubternal 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ção gera uma exceção original ✔️ ✔️
ObjectModelValidator chama uma nova sobrecarga de Validate ✔️
Codificação de nome de cookie removida ✔️
Versões do pacote NuGet IdentityModel atualizadas ✔️
SignalR: tipo de opções de protocolo do hub MessagePack alterado ✔️
SignalR: protocolo do hub MessagePack removido ✔️
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 Compatibilidade binária Compatível com a origem
Aviso ca1416 ✔️
Aviso ca1417 ✔️
Aviso ca1831 ✔️
Aviso de CA2013 ✔️
Aviso CA2014 ✔️
Aviso de CA2015 ✔️
Aviso de CA2200 ✔️
Aviso ca2247 ✔️

Bibliotecas principais do .NET

Título Compatibilidade binária Compatível com a origem
Alterações de API relacionadas ao assembly para publicação de arquivo único ✔️
Os métodos de serialização BinaryFormatter são obsoletos ✔️
APIs de segurança de acesso ao código são obsoletas ✔️
CreateCounterSetInstance gera InvalidOperationException ✔️
ActivityIdFormat padrão é W3C ✔️
Environment.OSVersion retorna a versão correta ✔️
O valor de FrameworkDescription é .NET e não .NET Core ✔️
As APIs GAC estão obsoletas ✔️
Verificações IsSupported intrínsecas de hardware ✔️
IntPtr e UIntPtr implementam IFormattable ✔️
LastIndexOf manipula cadeias de caracteres de pesquisa vazias ✔️
Caminhos de URI com caracteres não ASCII no Unix ✔️
Obsolescências de API com IDs de diagnóstico não padrão ✔️
Propriedades obsoletas no ConsoleLoggerOptions ✔️
Complexidade do LINQ OrderBy.First ✔️
Atributos OSPlatform renomeados ou removidos ✔️
Pacote Microsoft.DotNet.PlatformAbstractions removido ✔️
PrincipalPermissionAttribute está obsoleto ✔️
Alterações nos nomes de parâmetros das versões de visualização ✔️
Alterações de nome de parâmetro em assemblies de referência ✔️
As APIs de comunicação remota estão obsoletas ✔️
A ordem da lista de Etiquetas de Atividade está invertida ✔️
Os métodos de comparação SSE e SSE2 lidam com o NaN ✔️
Thread.Abort está obsoleto ✔️
Reconhecimento de URI de caminhos UNC em sistemas Unix ✔️
Os caminhos de código UTF-7 estão obsoletos ✔️
Alteração de comportamento para Vector2.Lerp e Vector4.Lerp ✔️
Vector<T> gera NotSupportedException ✔️

Criptografia

Título Compatibilidade binária Compatível com a origem
APIs de criptografia sem suporte no navegador ✔️
Cryptography.OID é somente inicialização ✔️
Pacotes de criptografia TLS padrão no Linux ✔️
As sobrecargas de Create() em abstrações criptográficas são obsoletas ✔️
Valor do tamanho de feedback padrão alterado ✔️

Entity Framework Core

Alterações significativas no EF Core 5.0

Globalização

Título Compatibilidade binária Compatível com a origem
Usar bibliotecas ICU no Windows ✔️
StringInfo e TextElementEnumerator são compatíveis com UAX29 ✔️
Categoria Unicode alterada para caracteres Latino-1 ✔️
Valores de TextInfo.ListSeparator foram alterados ✔️

Interoperabilidade

Título Compatibilidade binária Compatível com a origem
O suporte para WinRT foi removido ✔️
A conversão de RCW para InterfaceIsIInspectable gera exceção ✔️
Nenhuma investigação de sufixo A/W em plataformas não Windows ✔️

Rede

Título Compatibilidade binária Compatível com a origem
Manipulação de caminho de cookie está em conformidade com o RFC 6265 ✔️
LocalEndPoint é atualizado após chamar SendToAsync ✔️
MulticastOption.Group não aceita nulo ✔️
Os fluxos permitem operações de Início sucessivas ✔️
WinHttpHandler removido do ambiente de execução do .NET ✔️

SDK

Título Compatibilidade binária Compatível com a origem
Arquivos Directory.Packages.props importados por padrão ✔️
Erro gerado quando o projeto executável faz referência ao executável incompatível ✔️
FrameworkReference substituído pelo WindowsSdkPackageVersion para Windows SDK ✔️
NETCOREAPP3_1 símbolo de pré-processador não definido ✔️
OutputType definido como WinExe ✔️
Alteração de comportamento de PublishDepsFilePath ✔️
Alteração de TargetFramework de netcoreapp para net ✔️
Aplicativos WinForms e WPF utilizam Microsoft.NET.Sdk ✔️

Segurança

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

Serialização

Título Compatibilidade binária Compatível com a origem
BinaryFormatter.Deserialize reencapsula exceções ✔️
JsonSerializer.Deserialize requer caractere único ✔️
Os aplicativos ASP.NET Core desserializam números entre aspas ✔️
JsonSerializer.Serialize gera ArgumentNullException ✔️
Construtores não públicos e sem parâmetros não usados para desserialização ✔️
As opções são respeitadas ao serializar pares de chave-valor ✔️

Windows Forms

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

WPF

Título Compatibilidade binária Compatível com a origem
OutputType definido como WinExe ✔️
Os aplicativos WPF usam Microsoft.NET.Sdk ✔️

Consulte também