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
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 |