Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Se você estiver migrando um aplicativo para o .NET 10, 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 Windows Forms.
Este artigo categoriza cada alteração interruptiva como incompatível binário ou incompatível com a origem ou alteração comportamental:
incompatibilidade binária – Quando executados no novo runtime ou componente, os binários existentes podem enfrentar uma alteração impactante no comportamento, como falha ao carregar ou executar. Nesse caso, necessitam de recompilação.
Fonte incompatível - Quando recompilado usando o novo SDK ou componente ou para destinar ao novo tempo de execução, o código-fonte existente pode exigir alterações para ser compilado com êxito.
Alteração comportamental – o código e os binários existentes podem se comportar de forma diferente no runtime. Se o novo comportamento for indesejável, o código existente precisará ser atualizado e recompilado.
Observação
Este artigo é um trabalho em andamento. Esta não é uma lista completa de alterações interruptivas no .NET 10.
ASP.NET Core
| Title | Tipo de alteração |
|---|---|
| Redirecionamentos de logins de cookies desabilitados para endpoints de API conhecidos | Alteração de comportamento |
| Substituição do método de extensão WithOpenApi | Origem incompatível |
| Diagnóstico de exceção suprimido quando TryHandleAsync retorna true | Alteração de comportamento |
| IActionContextAccessor e ActionContextAccessor estão obsoletos | Fonte incompatível/mudança comportamental |
| A propriedade IncludeOpenAPIAnalyzers e os analisadores da API do MVC foram preteridos | Origem incompatível |
| IPNetwork e ForwardedHeadersOptions.KnownNetworks são considerados obsoletos | Origem incompatível |
| Pacote Microsoft.Extensions.ApiDescription.Client preterido | Origem incompatível |
| Razor A compilação de runtime está obsoleta | Origem incompatível |
| WebHostBuilder, IWebHost e WebHost estão obsoletos | Origem incompatível |
Contêineres
| Title | Tipo de alteração |
|---|---|
| As imagens padrão do .NET usam o Ubuntu | Alteração de comportamento |
Bibliotecas principais do .NET
Criptografia
| Title | Tipo de alteração |
|---|---|
| CompositeMLDsa atualizado para o draft-08 | Alteração de comportamento |
| CoseSigner.Key pode ser nulo | Mudança comportamental/incompatível com a fonte |
| Membros MLDsa e SlhDsa 'SecretKey' renomeado | Origem incompatível |
| Não há suporte para primitivos criptográficos OpenSSL no macOS | Alteração de comportamento |
| OpenSSL 1.1.1 ou posterior necessário no Unix | Alteração de comportamento |
| A validação X500DistinguishedName é mais rigorosa | Alteração de comportamento |
| Os parâmetros de chave X509Certificate e PublicKey podem ser nulos | Mudança comportamental/incompatível com a fonte |
| Variável de ambiente renomeada para DOTNET_OPENSSL_VERSION_OVERRIDE | Alteração de comportamento |
Entity Framework Core
Alterações significativas no EF Core 10
Extensions
| Title | Tipo de alteração |
|---|---|
| BackgroundService executa todo ExecuteAsync como uma tarefa | Alteração de comportamento |
| Corrigir problemas em GetKeyedService() e GetKeyedServices() com AnyKey | Alteração de comportamento |
| Valores nulos preservados na configuração | Alteração de comportamento |
| Mensagem não mais duplicada na saída do log do Console | Alteração de comportamento |
| ProviderAliasAttribute movido para o assembly Microsoft.Extensions.Logging.Abstractions | Origem incompatível |
| Removida a anotação DynamicallyAccessedMembers do código trim-unsafe Microsoft.Extensions.Configuration | Incompatível binariamente |
Globalization
| Title | Tipo de alteração |
|---|---|
| Variável de ambiente renomeada para DOTNET_ICU_VERSION_OVERRIDE | Alteração de comportamento |
Ferramenta de instalação
| Title | Tipo de alteração |
|---|---|
| API dotnet.acquire para VS Code não baixa mais sempre as versões mais recentes | Alteração de comportamento |
Interoperabilidade
| Title | Tipo de alteração |
|---|---|
| Falha ao fazer casting do objeto IDispatchEx COM para IReflect | Alteração de comportamento |
| Aplicativos de arquivo único não procuram mais bibliotecas nativas no diretório executável | Alteração de comportamento |
| Especificar DllImportSearchPath.AssemblyDirectory limita a busca apenas ao diretório do assembly | Alteração de comportamento |
Rede
| Title | Tipo de alteração |
|---|---|
| Suporte a HTTP/3 desabilitado por padrão com PublishTrimmed | Origem incompatível |
| Respostas HTTP de streaming habilitadas por padrão em clientes HTTP do navegador | Alteração de comportamento |
Uri limites de comprimento removidos |
Alteração de comportamento |
Reflection
| Title | Tipo de alteração | Versão introduzida |
|---|---|---|
| Anotações mais restritas em InvokeMember/FindMembers/DeclaredMembers | Incompatível com comportamento operacional/origem do código |
SDK e MSBuild
Serialização
| Title | Tipo de alteração |
|---|---|
| System.Text.Json verifica se há conflitos de nome de propriedade | Alteração de comportamento |
| XmlSerializer não ignora mais as propriedades marcadas com ObsoleteAttribute | Alteração de comportamento |
Windows Forms
| Title | Tipo de alteração |
|---|---|
| Obsolescências da API | Origem incompatível |
| Os aplicativos que fazem referência ao WPF e ao WinForms devem desambiguar os tipos MenuItem e ContextMenu | Origem incompatível |
| Parâmetro renomeado em HtmlElement.InsertAdjacentElement | Origem incompatível |
| Truncamento da imagem da caixa de seleção do TreeView | Alteração de comportamento |
| StatusStrip usa System RenderMode por padrão | Alteração de comportamento |
| System.Drawing OutOfMemoryException foi alterado para ExternalException | Alteração de comportamento |
Windows Presentation Foundation (WPF)
| Title | Tipo de alteração |
|---|---|
| ColumnDefinitions e RowDefinitions vazios não são permitidos | Origem incompatível |
| Uso incorreto do DynamicResource causa falha no aplicativo | Fonte incompatível/mudança comportamental |