Partilhar via


Alterações significativas no .NET 9

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

Este artigo categoriza cada alteração de quebra como binária incompatível ou fonte incompatível, ou como uma mudança comportamental:

  • Binário incompatível - Quando executado em relação ao novo tempo de execução ou componente, os binários existentes podem encontrar uma alteração de quebra no comportamento, como falha ao carregar ou executar e, em caso afirmativo, exigir recompilação.

  • Fonte incompatível - Quando recompilado usando o novo SDK ou componente ou para direcionar o novo tempo de execução, o código-fonte existente pode exigir alterações no código-fonte para compilar com êxito.

  • Mudança comportamental - O código e os binários existentes podem se comportar de forma diferente em tempo de execução. Se o novo comportamento for indesejável, o código existente precisará ser atualizado e recompilado.

Nota

Este artigo é um trabalho em andamento. Não é uma lista completa de alterações significativas no .NET 9. Para consultar as alterações de quebra que ainda estão pendentes de publicação, consulte Problemas do .NET.

ASP.NET Core

Título Tipo de alteração Versão introduzida
DefaultKeyResolution.ShouldGenerateNewKey alterou o significado Mudança comportamental Pré-visualização 3
Dev cert export não cria mais pasta Mudança comportamental RC 1
O HostBuilder habilita ValidateOnBuild/ValidateScopes no ambiente de desenvolvimento Mudança comportamental Pré-visualização 7
APIs Legacy Mono e Emscripten não exportadas para namespace global Fonte incompatível GA
Tipos de middleware com vários construtores Mudança comportamental RC 1

Contentores

Título Tipo de alteração Versão introduzida
As imagens de contêiner não instalam mais o zlib Mudança comportamental Pré-visualização 7
Imagens do .NET Monitor simplificadas para tags apenas de versão Mudança comportamental Pré-visualização 5

Principais bibliotecas .NET

Título Tipo de alteração Versão introduzida
Adicionar um ZipArchiveEntry com CompressionLevel define sinalizadores de bits de uso geral do cabeçalho do diretório central ZIP Mudança comportamental Pré-visualização 5
Suporte InsafeAccessor alterado para genéricos não abertos Mudança comportamental Pré-visualização 6
Obsolações de API com IDs de diagnóstico personalizadas Fonte incompatível (Múltiplo)
Comprimento máximo BigInteger Mudança comportamental Pré-visualização 6
BinaryReader.GetString() retorna "\uFFFD" em sequências malformadas Mudança comportamental Pré-visualização 7
Criar tipo de matriz de System.Void não permitido Mudança comportamental Pré-visualização 1
Padrão Equals() e GetHashCode() lançamento para tipos marcados com InlineArrayAttribute Mudança comportamental Pré-visualização 6
EnumConverter valida tipos registrados para ser enum Mudança comportamental Pré-visualização 7
FromKeyedServicesAttribute não injeta mais parâmetro sem chave Mudança comportamental RC 1
O retorno de chamada inicial do IncrementingPollingCounter é assíncrono Mudança comportamental RC 1
O limite de tamanho da estrutura da matriz embutida é imposto Mudança comportamental Pré-visualização 1
InMemoryDirectoryInfo precede rootDir para arquivos Mudança comportamental Pré-visualização 1
Novas sobrecargas TimeSpan.From*() que utilizam números inteiros Fonte incompatível Pré-visualização 3
Nova versão de alguns pacotes OOB Fonte incompatível Pré-visualização 5
RuntimeHelpers.GetSubArray retorna tipo diferente Mudança comportamental Pré-visualização 1
Sobrecarga String.Trim(params ReadOnlySpan<char>) removida Origem/binário incompatível GA
Suporte para variáveis de ambiente vazio Mudança comportamental Pré-visualização 6
ZipArchiveNomes de entrada e comentários respeitam a bandeira UTF8 Mudança comportamental RC 1

Criptografia

Título Tipo de alteração Versão introduzida
SafeEvpPKeyHandle.DuplicateHandle up-refs o identificador Mudança comportamental Pré-visualização 7
Alguns construtores X509Certificate2 e X509Certificate estão obsoletos Fonte incompatível Pré-visualização 7
Tempo de vida da chave privada do Windows simplificado Mudança comportamental Pré-visualização 7

Implementação

Título Tipo de alteração Versão introduzida
Pacotes de tempo de execução Windows/macOS/Linux MonoVM de desktop preteridos Fonte incompatível Pré-visualização 7

Interoperabilidade

Título Tipo de alteração Versão introduzida
CET suportado por padrão Binário incompatível Pré-visualização 6

Compilador JIT

Título Tipo de alteração Versão introduzida
As conversões de ponto flutuante para inteiro estão saturando Mudança comportamental Pré-visualização 4
Algumas APIs SVE removidas Fonte incompatível RC 2

Rede

Título Tipo de alteração Versão introduzida
Obsolescências da API Fonte incompatível Pré-visualização 6
Relatório de métricas server.port HttpClient incondicionalmente Mudança comportamental Pré-visualização 7
O log HttpClientFactory reedita valores de cabeçalho por padrão Mudança comportamental RC 1
HttpClientFactory usa SocketsHttpHandler como manipulador primário Mudança comportamental Pré-visualização 6
HttpListenerRequest.UserAgent é anulável Fonte incompatível Pré-visualização 1
Redação de consulta URI em eventos HttpClient EventSource Mudança comportamental Pré-visualização 7
Redação de consulta URI em logs IHttpClientFactory Mudança comportamental Pré-visualização 7

SDK e MSBuild

Título Tipo de alteração Versão introduzida
dotnet restore audita pacotes transitivos Mudança comportamental Pré-visualização 6
dotnet watch incompatível com Hot Reload para estruturas antigas Mudança comportamental RC 1
dotnet workload comandos de saída de alteração Mudança comportamental Pré-visualização 1
installer Versão do repositório não mais documentada Mudança comportamental Pré-visualização 5
Terminal logger é padrão Mudança comportamental Pré-visualização 1
Requisitos de versão para o SDK do .NET 9 Fonte incompatível GA
Aviso emitido para o destino .NET Standard 1.x Fonte incompatível Pré-visualização 6
Aviso emitido para o destino .NET 7 Fonte incompatível GA

Serialização

Título Tipo de alteração Versão introduzida
BinaryFormatter sempre lança Mudança comportamental Pré-visualização 6
Propriedades Nullable JsonDocument são desserializadas para JsonValueKind.Null Mudança comportamental Pré-visualização 1

Windows Forms

Título Tipo de alteração Versão introduzida
BindingSource.SortDescriptions não retorna null Mudança comportamental Pré-visualização 1
Alterações nas anotações de anulabilidade Fonte incompatível Pré-visualização 1
ComponentDesigner.Initialize lança ArgumentNullException Mudança comportamental Pré-visualização 1
DataGridViewRowAccessibleObject.Name índice da linha inicial Mudança comportamental Pré-visualização 1
O suporte a IMsoComponent é opt-in Mudança comportamental Pré-visualização 2
Novos analisadores de segurança Fonte incompatível RC 1
Nenhuma exceção se DataGridView for null Mudança comportamental Pré-visualização 1
PictureBox gera exceções HttpClient Mudança comportamental Pré-visualização 6

WPF

Título Tipo de alteração Versão introduzida
GetXmlNamespaceMaps Mudança de tipo Mudança comportamental/Fonte incompatível Pré-visualização 3

Consulte também