Partilhar via


O que há de novo no .NET 9

Saiba mais sobre os novos recursos do .NET 9 e encontre links para documentação adicional.

O .NET 9, sucessor do .NET 8, tem um foco especial em aplicativos nativos da nuvem e desempenho. Será suportado por 18 meses como uma versão de suporte de prazo padrão (STS). Você pode baixar o .NET 9 aqui.

Novo no .NET 9, a equipa de engenharia publica atualizações da versão de pré-visualização do .NET 9 em Discussões do GitHub. Esse é um ótimo lugar para fazer perguntas e fornecer feedback sobre o lançamento.

Tempo de execução do .NET

O tempo de execução do .NET 9 inclui um novo modelo de atributo para alternância de funcionalidades com suporte a redução. Os novos atributos tornam possível definir interruptores de funcionalidades que as bibliotecas podem usar para ativar ou desativar funcionalidades.

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

O tempo de execução também inclui várias melhorias de desempenho, incluindo otimizações de loop, inlining, vetorização e geração de código Arm64.

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

Bibliotecas .NET

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 de JSON escrito e ler vários valores JSON de nível raiz a partir de um único fluxo.

No LINQ, os novos métodos CountBy e AggregateBy tornam possível agregar estado por chave sem a necessidade de 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 atualização 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 de PersistedAssemblyBuilder permite salvar um conjunto emitido. Essa 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). Estes métodos ajudam a evitar erros causados pela imprecisão inerente aos cálculos de vírgula flutuante.

Para obter mais informações, consulte O que há de novo nas bibliotecas do .NET 9.

SDK do .NET

O SDK do .NET 9 apresenta conjuntos de carga de trabalho, onde todas as suas cargas de trabalho permanecem em uma única versão específica até serem explicitamente atualizadas. 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 pode ser executada em uma versão de tempo de execução do .NET mais recente do que a versão de destino da ferramenta. Além disso:

  • O teste de unidade tem uma melhor integração com o MSBuild que permite executar 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 é ativado por padrão e também melhorou a usabilidade. Por exemplo, a contagem total de falhas e avisos agora é resumida no final de uma compilação.
  • Novos analisadores de script MSBuild ("verificações de compilação") estão disponíveis.
  • O SDK pode detetar e ajustar incompatibilidades de versão entre o SDK do .NET e o MSBuild.
  • O comando dotnet workload history mostra o histórico de instalações de carga de trabalho e modificações para a instalação atual do SDK do .NET.

Para obter mais informações, consulte O que há de novo no SDK para .NET 9.

Blocos de construção de IA

O .NET 9 introduz uma camada unificada de abstrações em C# por meio dos pacotes Microsoft.Extensions.AI e Microsoft.Extensions.VectorData. Essas abstrações facilitam a interação com serviços de IA, incluindo modelos de linguagem pequenos e grandes (SLMs e LLMs), incorporações, repositórios vetoriais e middleware.

O .NET 9 também inclui novos tipos de tensores que expandem os recursos de IA. TensorPrimitives e o novo tipo de Tensor<T> expandem os recursos de IA, permitindo codificação, manipulação e computação eficientes de dados multidimensionais. Você pode encontrar esses tipos na versão mais recente do pacote System.Numerics.Tensors.

TensorPrimitivos

  • Escopo expandido do método: Aumentou de 40 para quase 200 sobrecargas, agora incluindo operações numéricas semelhantes a Math, MathFe INumber<T> mas para intervalos de valores.
  • Melhorias de desempenho: muitas operações agora são otimizadas para SIMD para um melhor desempenho.
  • Sobrecargas genéricas: suporta qualquer tipo T que implemente uma determinada interface, expandindo além de apenas extensões de valores flutuantes no .NET.

Tensor<T>

  • Baseia-se em TensorPrimitives para operações matemáticas eficientes.
  • Fornece interoperabilidade eficiente com bibliotecas de IA (ML.NET, TorchSharp, ONNX Runtime) usando zero cópias sempre que possível.
  • Permite manipulação de dados fácil e eficiente com operações de indexação e fatiamento.
  • é experimental no .NET 9?

ML.NET

ML.NET é uma estrutura multiplataforma de código aberto que permite a integração de modelos personalizados de aprendizado de máquina em aplicativos .NET.

ML.NET 4.0 traz as seguintes melhorias:

  • Novas maneiras programáticas de configurar opções MLContext.
  • Carregue modelos ONNX como Stream.
  • Melhorias no DataFrame.
  • Novos recursos para tokenizadores .
  • (Experimental) Implementações TorchSharp dos modelos da família Llama e Phi.
  • (Experimental) APIs de pipeline CausalLM.

Para obter mais informações, consulte O que há de novo no ML.NET.

Tokenizadores

A biblioteca Microsoft.ML.Tokenizers fornece aos desenvolvedores do .NET recursos para codificação e decodificação de texto para tokens. Para cenários de IA, isso é importante para gerenciar o contexto, calcular o custo e pré-processar o texto ao trabalhar com modelos locais.

A versão mais recente introduz novos recursos significativos para tokenizadores:

  • Tiktoken para modelos GPT (3, 3.5, 4, 4o, o1) e Llama3
  • Llama (baseado em SentencePiece) para os modelos Llama e Mistral
  • CodeGen para modelos de geração de código como codegen-350M-mono
  • Phi2 (baseado no CodeGen) para o modelo Microsoft Phi2
  • WordPiece
  • Bert (baseado em WordPiece) para modelos suportados por Bert, como optimum--all-MiniLM-L6-v2

.NET Aspire [en]

O .NET Aspire é um conjunto de ferramentas, modelos e pacotes poderosos para criar aplicações observáveis e prontas para produção. A versão mais recente do .NET Aspire inclui melhorias no painel e no gerenciamento do ciclo de vida dos recursos. Ele também adiciona novas integrações e APIs para maior flexibilidade durante o desenvolvimento. O .NET Aspire 9 funciona com aplicativos .NET 9 e .NET 8. Para obter mais informações, consulte O que há de novo no .NET Aspire 9.

ASP.NET Núcleo

ASP.NET aplicativos principais criados com o .NET 9 são seguros por padrão, têm suporte expandido para compilação antecipada e melhoraram o monitoramento e o rastreamento. Com as melhorias de desempenho, você verá uma taxa de transferência mais alta e um tempo de inicialização mais rápido, e tudo com menos uso de memória. ASP.NET Core no .NET 9 inclui:

  • Tratamento otimizado de ficheiros estáticos, como JavaScript e CSS, no momento da construção e publicação, com versionamento automático através de hash.
  • Blazor: Novos modelos de aplicativos Web e híbridos, deteção do modo de renderização de componentes, nova experiência de reconexão com renderização de servidor.
  • APIs: Suporte integrado para a geração de documentos OpenAPI com o uso de Microsoft.AspNetCore.OpenAPI, e suporte AOT nativo aprimorado.
  • Segurança melhorada com novas APIs para autenticação e autorização.
  • Configuração mais fácil para certificado de desenvolvimento confiável no Linux para habilitar HTTPS durante o desenvolvimento.

Estes são apenas alguns dos recursos e aprimoramentos no .NET 9. Para obter mais informações, consulte O que há de novo no ASP.NET Core 9.0.

.NET MAUI

O foco do .NET Multi-platform App UI (.NET MAUI) no .NET 9 é o desempenho e a confiabilidade aprimorados, além de integrações mais profundas para aplicativos móveis e de desktop. O .NET MAUI inclui uma nova implementação de maior desempenho de CollectionView e CarouselView para iOS e Mac Catalyst, atualizações nos controles existentes, novos eventos do ciclo de vida das aplicações, e aprimoramentos no AOT nativo e na redução para melhorar o tamanho da aplicação e o tempo de inicialização. Além disso:

  • Um novo controle de área de trabalho TitleBar está disponível para Windows.
  • Um novo controle de HybridWebView permite a inclusão mais fácil de conteúdo habilitado para JavaScript de estruturas como ReactJS, Vue.jse Angular.
  • Entry agora suporta modos de teclado adicionais.
  • Os manipuladores de controle se desconectam automaticamente de seus controles quando possível.
  • MainPage é preterido a favor da definição da página principal da aplicação ao substituir a classe Application.CreateWindow(IActivationState).

Para obter mais informações sobre esses novos recursos e muito mais, consulte O que há de novo no .NET MAUI para .NET 9.

Núcleo EF

O Entity Framework Core inclui atualizações significativas para o provedor de banco de dados do Azure Cosmos DB para NoSQL. Inclui ainda alguns passos para a compilação AOT e para consultas pré-compiladas, entre outras melhorias. Para obter mais informações, consulte O que há de novo no EF Core 9.

C# 13

O C# 13 é fornecido com o SDK do .NET 9 e inclui os seguintes novos recursos:

  • params coleções
  • Novo tipo de lock e semântica
  • Nova sequência de fuga - \e
  • Melhorias de tipo natural em grupos de métodos
  • Acesso implícito ao indexador em inicializadores de objeto
  • Habilite ref locais e unsafe contextos em iteradores e métodos assíncronos
  • Habilitar tipos ref struct para que implementem interfaces
  • Permitir que tipos de estrutura de referência sejam argumentos para parâmetros de tipo em genéricos.
  • Propriedades parciais e indexadores agora são permitidos em tipos partial.
  • A prioridade de resolução de sobrecarga permite que os autores de bibliotecas designem uma sobrecarga como sendo melhor do que outras.

Além disso, o C# 13 adiciona um recurso de visualização: propriedades suportadas field.

Para obter mais informações, consulte O que há de novo no C# 13.

F# 9

O F# 9 é fornecido com o SDK do .NET 9 e inclui os seguintes novos recursos:

  • Tipos de referência anuláveis
  • União discriminada: propriedades Is*
  • Padrões ativos parciais podem retornar bool em vez da opção de unidade
  • Prefira métodos de extensão a propriedades intrínsecas quando há argumentos fornecidos
  • Expressões computacionais de corpo vazio
  • As diretivas de hash podem usar argumentos que não sejam de cadeia de caracteres
  • Diretiva #help estendida no fsi para mostrar a documentação no loop de leitura-avaliação-impressão (REPL)
  • Permitir que #nowarn suporte o prefixo FS em códigos de erro para desativar avisos
  • Aviso sobre o atributo TailCall em funções não recursivas ou valores vinculados com "let"
  • Aplicar alvos de atributos
  • Funções aleatórias para coleções
  • Suporte a expressões de coleção C# para listas e conjuntos F#
  • Várias melhorias de produtividade, desempenho e ferramentas para desenvolvedores

Para mais informações, consulte O que há de novo no F# 9.

Windows Presentation Foundation

O WPF no .NET 9 oferece suporte aprimorado para a criação de aplicativos modernos com vários aprimoramentos temáticos e muito mais:

  • Suporte para o tema Windows Fluent.
  • Suporte de tema para os modos claro e escuro do Windows adicionado.
  • Agora, os temas suportam a cor de destaque do Windows.
  • A renderização de fontes foi melhorada para suportar ligaduras baseadas em hífen.
  • BinaryFormatter não é mais suportado.

Para obter mais informações, consulte O que há de novo no WPF para .NET 9.

Formulários do Windows

WinForms no .NET 9 traz suporte para novos temas, aprimoramentos para desenvolvimento assíncrono e muito mais:

  • Form e TaskDialog apoiam ShowDialogAsync agora. (Recurso experimental)
  • BinaryFormatter não é mais suportado.
  • Suporte experimental para renderizar o aplicativo no modo escuro, conforme suportado pelo Windows.
  • FolderBrowserDialog e ToolStrip tivemos algumas pequenas melhorias.
  • A biblioteca System.Drawing teve muitas melhorias, incluindo encapsulamento de efeitos GDI+, suporte para ReadOnlySpane melhor geração de código de interoperabilidade.

Para obter mais informações, consulte Novidades no Windows Forms para .NET 9.

Ver também