.NET 9.0 - Quais as novidades ?


 Hoje vou apresentar um resumo das novidades que o .NET 9.0 vai trazer.

Como estamos na versão Release Candidate 2 creio que estes recursos estão consolidados. Assim, vou apresentar os principais recursos de forma objetiva e apontar os links para mais informações quando for necessário.

O .NET 9, é o sucessor do .NET 8, e tem foco especial em aplicativos nativos da nuvem e desempenho. Ele terá suporte por 18 meses como uma versão de suporte de prazo padrão (STS), e você pode baixar o .NET 9 neste link:  https://dotnet.microsoft.com/pt-br/download/dotnet/9.0

.NET Runtime

O runtime do .NET 9 inclui um novo modelo de atributo para trocas de recursos com suporte de corte. Os novos atributos possibilitam definir trocas de recursos que as bibliotecas podem usar para alternar áreas de funcionalidade.

A coleta de lixo inclui um recurso de adaptação dinâmica ao tamanho do aplicativo que é usado por padrão em vez do Server GC.

O runtime também inclui inúmeras melhorias de desempenho, incluindo otimizações de loop, inlining e vetorização Arm64 e geração de código.

Para obter mais informações, consulte:  Novidades no runtime do .NET 9

Bibliotecas .NET

O namespace System.Text.Json adiciona suporte para anotações de tipo de referência anuláveis ​​e exportação de esquemas JSON de tipos. Ele adiciona novas opções que permitem personalizar o recuo do JSON escrito e ler vários valores JSON de nível raiz de um único fluxo.

Na LINQ, os novos métodos CountBy e AggregateBy tornam possível agregar estado por chave sem precisar alocar agrupamentos intermediários via GroupBy.

Para tipos de coleção, o tipo System.Collections.Generic.PriorityQueue<TElement,TPriority> inclui um novo método Remove(TElement, TElement, TPriority, IEqualityComparer<TElement>) que você pode usar para atualizar a prioridade de um item na fila.

Para criptografia, o .NET 9 adiciona um novo método de hash one-shot no tipo CryptographicOperations. Ele também adiciona novas classes que usam o algoritmo KMAC.

Para reflexão, o novo tipo PersistedAssemblyBuilder permite que você salve um assembly emitido. Esta nova classe também inclui suporte a PDB, o que significa que você pode emitir informações de símbolo e usá-las para depurar um assembly gerado.

A classe TimeSpan inclui novos métodos From* que permitem criar um objeto TimeSpan a partir de um int (em vez de um double). Esses métodos ajudam a evitar erros causados ​​por imprecisão inerente em cálculos de ponto flutuante.

Mais informações :

- https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-9/libraries

.NET SDK

O .NET 9 SDK apresenta conjuntos de carga de trabalho, onde todas as suas cargas de trabalho permanecem em uma única versão específica até serem atualizadas explicitamente. Para ferramentas, uma nova opção para dotnet tool install permite que os usuários (em vez de autores de ferramentas) decidam se uma ferramenta tem permissão para ser executada em uma versão de tempo de execução do .NET mais recente do que a versão que a ferramenta tem como alvo.

Além disso:

- O teste de unidade tem melhor integração com o MSBuild, o que permite que você execute testes em paralelo.

- As auditorias de segurança do NuGet são executadas em referências de pacotes diretas e transitivas, por padrão.

- O registrador de terminal(terminal logger) é habilitado por padrão e também tem usabilidade aprimorada. Por exemplo, a contagem total de falhas e avisos agora é resumida no final de uma compilação.

- Novos analisadores de script do MSBuild ("verificações de compilação") estão disponíveis.

- O SDK pode detectar e ajustar incompatibilidades de versão entre o .NET SDK e o MSBuild.

- O comando dotnet workload history mostra o histórico de instalações e modificações de carga de trabalho para a instalação atual do .NET SDK.

Mais informações :

- https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-9/sdk

ML.NET

O ML.NET é um framework multiplataforma aberto que permite a integração de modelos personalizados de aprendizado de máquina em aplicativos .NET.

A versão mais recente, ML.NET 4.0, adiciona suporte adicional ao tokenizador para tokenizadores como o Tiktoken e modelos como Llama e CodeGen

Mais informação :

- learn.microsoft.com > blazor Identity UI individual accounts

.NET ASPIRE

O .NET Aspire é uma pilha opinativa e pronta para a nuvem para criar aplicativos distribuídos, observáveis ​​e prontos para produção.

O .NET Aspire é entregue por meio de uma coleção de pacotes NuGet que lidam com preocupações específicas nativas da nuvem e está disponível em versão prévia para .NET 9.

Para obter mais informações, consulte:  .NET Aspire (veja os artigos publicados no site)

ASP.NET Core

A ASP.NET Core inclui melhorias no Blazor, SignalR, APIs mínimas, OpenAPI e autenticação e autorização

Mais informação:

- learn.microsoft.com > render-modes

.NET MAUI

O foco do .NET MAUI é melhorar a qualidade do produto apresentando:  Novos controles, o recurso HybridWebView, Titlebar for Windows, melhorias nos controles , BlazorWebView melhorado, CollectionView e CarouselView com novas opções, e novidades na ContentPage, Text Alignment, etc.

Mais informação:

https://learn.microsoft.com/en-us/dotnet/maui/whats-new/dotnet-9?view=net-maui-8.0

EF Core

O Entity Framework Core inclui atualizações significativas para o provedor de banco de dados do Azure Cosmos DB para NoSQL.

Ele também inclui algumas etapas para compilação AOT e consultas pré-compiladas, entre outras melhorias.

Mais informação:

-   https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-9.0/whatsnew

C# 13

O C# 13 acompanha o  .NET 9.0 e apresenta os seguintes novos recursos:

- Coleções params
- Novo tipo de bloqueio e semântica
- Nova sequência de escape - \e
- Melhorias no tipo natural do grupo de métodos
- Acesso implícito ao indexador em inicializadores de objetos
- Habilitar locais de referência e contextos inseguros em iteradores e métodos assíncronos
- Habilitar tipos de estrutura de referência para implementar interfaces
- Permitir tipos de estrutura de referência como argumentos para parâmetros de tipo em genéricos.
- Propriedades parciais e indexadores agora são permitidos em tipos parciais.
- A prioridade de resolução de sobrecarga permite que os autores da biblioteca designem uma sobrecarga como melhor do que outras.

Mais informação:

-   https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-13

Windows Presentation Foundation

O Windows Presentation Foundation (WPF, lembra dele ???) inclui suporte para temas do Windows 11 e ligaduras baseadas em hífen.

Para obter mais informações, consulte:  WPF

Bem-vindo .NET 9.0 !!!

E estamos conversados...

Disse Jesus : "Eu sou o bom Pastor; o bom Pastor dá a sua vida pelas ovelhas."
João 10:11

Referências:


José Carlos Macoratti