A Microsoft lançou a plataforma aberta .NET 9.0

A Microsoft apresentou o lançamento da plataforma aberta .NET 9, criada através da unificação dos produtos .NET Framework, .NET Core e Mono. Com o .NET 9, é possível construir aplicativos multiplataforma para navegadores, sistemas em nuvem, desktops, dispositivos IoT e plataformas móveis, utilizando bibliotecas unificadas e um processo de construção comum, independente do tipo de aplicativo. As compilações .NET SDK 9, .NET Runtime 9 e ASP.NET Core Runtime 9 foram elaboradas para Linux, macOS e Windows. O .NET Desktop Runtime 9 é disponibilizado apenas para Windows. Os desenvolvimentos relacionados ao projeto são distribuídos sob a licença MIT.

O .NET inclui um Runtime com o compilador JIT RyuJIT, especificações de API, bibliotecas WPF, Windows Forms, WinUI e Entity Framework, um interface de linha de comando dotnet, além de ferramentas para desenvolvimento de microsserviços, bibliotecas, aplicações de servidor, gráficas e de console. A pilha para desenvolvimento de aplicativos web ASP.NET Core 9.0, a camada ORM Entity Framework Core 9.0 (com drivers disponíveis, incluindo SQLite e PostgreSQL), a biblioteca WPF 9 (Windows Presentation Foundation), o framework Windows Forms 9 para desenvolvimento de GUI, a plataforma Aspire 9 para criação de aplicativos Cloud Native, o framework MAUI 9 para desenvolvimento de interfaces de usuário multiplataforma, assim como as versões das linguagens C# 13 e F# 9 são fornecidas separadamente. O suporte para .NET 9.0 e C# 13 está incluído no editor de código gratuito Visual Studio Code.

Características do novo lançamento:

  • Mais de mil mudanças foram implementadas, relacionadas à otimização de desempenho e melhoria da qualidade do código gerado. O coletor de lixo foi modernizado, incorporando um mecanismo de adaptação dinâmica ao tamanho da aplicação por padrão (o coletor de lixo é vinculado não à disponibilidade de recursos no sistema, mas à quantidade de memória necessária para a aplicação). O novo modo permite aumentar a eficiência em sistemas com um grande número de núcleos de processador, se a aplicação usar relativamente pouca memória ou se a necessidade de memória mudar significativamente durante a execução.

    O compilador JIT recebeu novas otimizações baseadas em perfilamento (PGO), melhorando o tratamento de loops, a expansão inline e a verificação de limites. No runtime .NET, foi expandido o uso de instruções vetoriais e adicionada a suporte para extensões Arm64 SVE e Intel AVX10. O código para tratamento de exceções foi acelerado em 50%. Para códigos com operações de conversão de tipos, como «(IFoo)myFoo» e «myFoo is IFoo», foi observada uma melhoria de desempenho de até 70%. O desempenho de alguns métodos na linguagem de consulta LINQ (Language-Integrated Query), como Take e DefaultIfEmpty, aumentou até 10 vezes quando se trabalha com arrays e coleções vazias.

    O desempenho e a eficiência do método System.Text.Json aumentaram significativamente. No método JsonProperty.WriteTo, foi implementada a possibilidade de gravação direta de strings UTF8, eliminando a alocação extra de memória. As operações de redimensionamento do JsonObject foram otimizadas. Durante os testes TechEmpower, que avaliam a eficiência do código para o processamento de solicitações JSON, foi observado um aumento de desempenho de 15% e uma redução no consumo de memória de 93% em comparação com o .NET 8.

  • No Runtime, foi proposta um novo modelo de atributos para ativação e diminuição de funcionalidades em bibliotecas.
  • Na linguagem C# 13, foram ampliadas as possibilidades de uso do modificador «params», permitindo não apenas arrays, mas também coleções. Ao inicializar arrays, o operador «^» pode ser usado para referenciar o índice a partir do final do array (por exemplo, «buffer = { [^1] = 0, [^2] = 1,…}» escreverá 0 no último elemento e 1 no penúltimo). Em iteradores e métodos async, o uso de expressões ref e unsafe foi permitido. Adicionou-se uma nova sequência de escape «\e». A definição de interfaces para tipos «ref struct» e o uso de tipos «ref struct» como argumentos em funções genéricas também foi permitido. Um novo tipo Lock foi proposto para estabelecer bloqueios em aplicativos multithread. Lock myLock = new(); void Concat<T>(params List<T> items) { lock (myLock) Console.WriteLine(string.Join(«\e[1mItem: \e[0m», items)); }
  • Na linguagem F# 9, foi introduzido suporte para tipos que podem ter valores nulos. Em uniões, foram implementadas propriedades geradas automaticamente, como «.Is*» (por exemplo, person.contact.IsEmail), que podem ser usadas para verificar se um valor pertence a um conjunto. Adicionado suporte para expressões calculadas vazias («let xs = seq { }»). Em diretivas que começam com o símbolo «#», agora é permitido especificar valores não string (por exemplo, pode-se escrever #nowarn 0070 em vez de #nowarn «0070»). Foram adicionadas funções nos módulos List, Array e Seq para selecionar aleatoriamente ou embaralhar elementos. Para listas (list e set), é permitido aplicar operações com coleções.
  • As capacidades da pilha .NET Aspire foram ampliadas, fornecendo um conjunto de componentes para a criação de aplicações executáveis em ambientes de nuvem. Novas funcionalidades foram adicionadas para gerenciar recursos e o ciclo de vida das aplicações. Os recursos para coleta de telemetria foram expandidos.
  • Um novo conjunto de abstrações em C# para o desenvolvimento de aplicações de IA foi proposto, permitindo o uso de grandes modelos de linguagem, acesso a armazenamentos vetoriais e interação com serviços de IA. Foi apresentado um novo tipo «Tensor» e uma coleção de métodos para cálculos e manipulação de dados multidimensionais. Os complementos para IA são distribuídos na forma de pacotes System.Numerics.Tensors, Microsoft.Extensions.AI e Microsoft.Extensions.VectorData. O framework ML.NET foi atualizado, destinado à integração de modelos de aprendizado de máquina em aplicações. Uma biblioteca Microsoft.ML.Tokenizers foi adicionada para codificação e decodificação de texto em tokens.
  • No stack para desenvolvimento de aplicações web, o ASP.NET Core ampliou o suporte para compilação antecipada (ahead-of-time), as capacidades de monitoramento e rastreamento foram expandidas, o tempo de inicialização foi reduzido e o consumo de memória diminuído, otimizando o desempenho com arquivos estáticos. Um novo API para autenticação e autorização foi adicionado. No Blazor, a plataforma para a criação de aplicações web em C#, novos templates para aplicações híbridas e web foram implementados.
  • As capacidades do framework MAUI para o desenvolvimento de interfaces de usuário multiplataforma foram ampliadas. A performance foi otimizada. A integração com aplicações de desktop e móveis foi reforçada. Novos elementos de interface TitleBar e HybridWebView foram adicionados.
  • No WPF (Windows Presentation Foundation), o suporte a temas foi ampliado e a compatibilidade com cores de destaque foi adicionada.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster