A Microsoft apresentou o lançamento da plataforma aberta .NET 8, criada a partir da unificação dos produtos .NET Framework, .NET Core e Mono. Com o .NET 8, é possível criar aplicações multiplataforma para navegadores, sistemas em nuvem, desktops, dispositivos IoT e plataformas móveis, utilizando bibliotecas unificadas e um processo de compilação comum, independente do tipo de aplicação. As compilações .NET SDK 8, .NET Runtime 8 e ASP.NET Core Runtime 8 foram formadas para Linux, macOS e Windows. O .NET Desktop Runtime 8 está disponível apenas para Windows. Os desenvolvimentos relacionados ao projeto são distribuídos sob a licença MIT. A ramificação .NET 8 é categorizada como LTS e será suportada por três anos até novembro de 2026.
O .NET 8 inclui um Runtime com o compilador JIT RyuJIT, especificações de API, bibliotecas WPF, Windows Forms, WinUI, Entity Framework, a interface de linha de comando dotnet, bem como ferramentas para desenvolvimento de microsserviços, bibliotecas, aplicações de servidor, gráficas e de console. Separadamente, foi publicado o stack para desenvolvimento de aplicações web ASP.NET Core 8.0, a camada ORM Entity Framework Core 8.0 (drivers disponíveis, incluindo para SQLite e PostgreSQL), a biblioteca WPF 8 (Windows Presentation Foundation), o framework Windows Forms 8 para desenvolvimento de GUI, a plataforma Aspire 8 para criação de aplicações Cloud Native, o framework MAUI 8 para desenvolvimento de interfaces de usuário multiplataforma, além das versões das linguagens C# 12 e F# 8. O suporte ao .NET 8.0 e ao C# 12 está incluído no editor de código livre Visual Studio Code.
Características do novo lançamento:
- Foi realizada uma grande otimização de desempenho. Foi incluído, por padrão, um novo gerador de código que suporta otimização dinâmica com base na profilagem da execução do código (Dynamic Profile-Guided Optimization). O uso do novo gerador de código oferece um aumento de desempenho nas aplicações de até 20%. Além disso, nesta nova versão, foi adicionada a suporte para instruções AVX-512, que aumentam o desempenho de operações paralelas com dados vetoriais. Para tipos primitivos, foi implementada uma nova interface que permite analisar e formatar diretamente dados no formato UTF-8, sem a necessidade de reencodificação. Nos testes TechEmpower, o desempenho do trabalho com API JSON aumentou em 18%, enquanto com Fortunes foi de 24%.

- Foi adicionado um novo stack .NET Aspire, projetado para o desenvolvimento de aplicações em nuvem (cloud-native), utilizando tecnologias .NET. O .NET Aspire fornece um grande conjunto de componentes que podem ser necessários na criação de aplicações executadas em ambientes de nuvem, incluindo ferramentas para coleta de telemetria, configuração, verificação de funcionamento e garantia de resiliência.
- As ferramentas para empacotar aplicações em contêineres isolados foram ampliadas. Por padrão, a publicação de imagens de contêineres é garantida sem Dockerfile e sem o usuário root. O tamanho da imagem base do contêiner com os componentes da plataforma .NET foi reduzido. Uma versão minimalista da imagem para executar aplicações compiladas em arquivos executáveis (Native AOT) foi adicionada. Uma versão mais segura das imagens com base no Chiseled Ubuntu foi adicionada.
- A eficiência da compilação em arquivos executáveis autossuficientes (Native AOT) foi aumentada, nos quais todo o projeto é inicialmente compilado em código de máquina da plataforma de destino sem o uso de código intermediário e sem a aplicação de JIT.

- As capacidades das interfaces de programação que podem ser utilizadas em sistemas de aprendizado de máquina foram ampliadas. Por exemplo, na biblioteca System.Numerics, a compatibilidade com sistemas de IA generativa foi aumentada. Exemplos para a criação de chatbots, geração de conteúdo e acesso aos serviços Azure AI foram adicionados.
- No Blazor, a plataforma para criação de aplicações web em C#, o tempo de carregamento de páginas foi reduzido, a escalabilidade foi aumentada, e agora é permitido o uso em uma única aplicação Blazor Server e Blazor WebAssembly para criar programas que combinam funções de cliente. servidor Foi adicionado o Jiterpreter, um novo runtime WebAssembly mais rápido, que acelerou a renderização da interface em 20%. As capacidades de autenticação, autorização e identificação foram ampliadas.
- O framework MAUI para desenvolvimento de interfaces de usuário multiplataforma foi ampliado, permitindo a utilização de uma única base de código para compilar interfaces para Windows, macOS, iOS e Android. O suporte experimental para compilação (Native AOT) foi adicionado. O suporte para as plataformas Xcode 15 e Android API 34 foi adicionado. Elementos gráficos e botões foram modernizados, e a manipulação de cliques do mouse e eventos do teclado foi aprimorada.
- Na linguagem C# 12, foi adicionado suporte a uma sintaxe simplificada para a criação de construtores primários em quaisquer classes e estruturas, além de simplificada a criação de arrays, span e outros tipos de coleções. Fornecidos meios para definir valores padrão para parâmetros de expressões lambda. O tratamento de argumentos opcionais foi facilitado. Adicionada a capacidade de criar aliases para quaisquer tipos utilizando a diretiva "alias". // Criação de lista List a = [1, 2, 3, 4, 5, 6, 7, 8]; // Criação de arrays span Span b = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘h’, ‘i’]; // Use o operador de spread para concatenar int[] array1 = [1, 2, 3]; int[] array2 = [4, 5, 6]; int[] array3 = [7, 8, 9]; int[] fullArray = [..array1, ..array2, ..array3]; // o conteúdo será [1, 2, 3, 4, 5, 6, 7, 8, 9]
- No ASP.NET Core, para aplicações de página única (SPA) e web (Blazor), foi implementado suporte à autenticação baseada em cookies e tokens. Proposto uma nova interface de usuário para autenticação. A proteção contra ataques XSRF/CSRF foi fortalecida.
- No Entity Framework Core, novos tipos complexos foram disponibilizados que podem ser utilizados como objetos. Suporte a dados hierárquicos foi adicionado ao SQL Server.
- No gerenciador de pacotes NuGet, a auditoria de pacotes em projetos foi simplificada e a notificação sobre a existência de vulnerabilidades conhecidas foi assegurada.
- No .NET Runtime, foi adicionado o modo de compilação antecipada (AOT) para plataformas WebAssembly (WASM) e Android.
- No WPF, foi adicionado um diálogo para abrir diretórios (OpenFolderDialog) e suportado aceleração de hardware em RDP.
- O suporte à arquitetura ARM64 foi significativamente aprimorado e a qualidade do código para ARM foi elevada.
- No depurador, foram fornecidos dados de depuração resumidos e implementadas camadas de depuração simplificadas para os tipos .NET mais usados.
Fonte: opennet.ru


