Tiago Tartari

Conteúdo

Microsoft faz o Anúncio do .NET 8 Preview 1 com Diversas Melhorias de Performance

Antes de falarmos sobre o anúncio do .NET 8 Preview 1, é importante lembrar que a Microsoft lançou o .NET 7 no final do ano passado, trazendo diversas melhorias de performance. Na época, realizei um comparativo entre o .NET 6 e o .NET 7, com o objetivo de avaliar o consumo de recursos computacionais – memória e CPU – em um serviço produtivo. Os resultados foram surpreendentes, com uma significativa melhoria de desempenho.

Agora, a Microsoft acaba de anunciar a versão preview do .NET 8 em seu blog oficial, trazendo mais uma vez novidades e melhorias importantes. Os desenvolvedores podem acompanhar todas as evoluções no site oficial, em uma seção exclusiva intitulada “O que há de novo no .NET 8“. Essa nova versão promete atender às crescentes demandas do mercado de tecnologia, garantindo maior desempenho, escalabilidade e segurança para os usuários.

Não deixe de conferir essa nova versão do .NET e aprimore ainda mais seus projetos de desenvolvimento de software. Com as novas tecnologias e ferramentas disponíveis no .NET 8, os desenvolvedores têm acesso a recursos avançados para criar aplicativos modernos e de alta qualidade, que atendam às necessidades do mercado atual.

O que há de novo no .NET 8?

AOT Nativo

O Native AOT (Ahead of Time) é uma forma de compilação que não requer a transformação do IL (Intermediate Language) em tempo de execução, o que aumenta o tamanho do arquivo. A versão preview do .NET 8 traz essa novidade, juntamente com uma redução no tamanho do arquivo, resultando em uma melhoria significativa de performance para aplicativos .NET, também traz o suporte para arquiteturas x64 e Arm64 no macOS.

Sistema operacional.NET 7Sistema operacional
Linux x64 (com -p:StripSymbols=true)3,76 MB1,84 MB
Windows x642,85 MB1,77 MB

Essa forma de compilação, embora presente desde o .NET Core 3.1, permite que os aplicativos sejam compilados antecipadamente, o que reduz o tempo de inicialização e o consumo de memória. Com isso, os aplicativos respondem de forma mais rápida e eficiente, proporcionando uma melhor experiência para o usuário.

A novidade é uma excelente opção para desenvolvedores que desejam criar aplicativos modernos e de alta performance, sem se preocupar com o tempo de execução e o consumo de recursos. Com o Native AOT, os desenvolvedores podem criar aplicativos mais rápidos, eficientes e com uma performance superior, garantindo uma experiência de uso excepcional para os usuários.

.NET Container Images

As imagens de contêiner .NET agora utilizam o Debian 12 (Bookworm) como distribuição Linux padrão. Além disso, as imagens também incluem um usuário non-root que torna possível executar os aplicativos como non-root, garantindo assim mais segurança.

Para executar como non-root, basta adicionar uma linha ao final do Dockerfile ou em uma instrução semelhante nos manifestos do Kubernetes. Essa mudança garante que as imagens sejam non-root capazes, aumentando ainda mais a segurança e a estabilidade do aplicativo.

Outra mudança importante nas imagens de contêiner é a alteração da porta padrão, que agora passa a ser a porta 8080, em substituição à porta 80. Para dar suporte a essa alteração, uma nova variável de ambiente ASPNETCORE_HTTP_PORT está disponível, o que facilita a alteração de portas. Essa variável aceita uma lista de portas, o que é mais simples do que o formato exigido por ASPNETCORE_URLS.

No entanto, é importante destacar que, se a porta for alterada de volta para a porta 80 utilizando uma dessas variáveis, não será possível executar como non-root. Por isso, é fundamental estar atento a essas mudanças e garantir que o aplicativo esteja sempre funcionando da maneira mais segura e estável possível.

Tipos focados em Desempenho

O .NET 8 traz diversas novidades, incluindo uma série de novos tipos projetados especificamente para otimizar o desempenho de aplicativos. Esses novos tipois são capazes de oferecer operações de leitura mais rápidas e eficientes.

  • O System.Collections.Frozen namespace inclui FrozenDictionary<TKey, TValue> e FrozenSet<T>, que são tipos de coleção que não permitem alterações após a criação, permitindo operações de leitura mais rápidas.
  • IndexOfAnyValues<T> é usado em métodos que procuram a primeira ocorrência de qualquer valor na coleção passada e é otimizado para pesquisas subsequentes. Novas sobrecargas de métodos como String.IndexOfAny e MemoryExtensions.IndexOfAny agora aceitam o novo tipo.

Compartilhe:

Tiago Tartari

Tiago Tartari

Eu ajudo e capacito pessoas e organizações a transformar problemas complexos em soluções práticas usando a tecnologia para atingir resultados extraordinários.

Qual é o desafio
que você tem hoje?