A Microsoft apresentou um novo lançamento significativo da plataforma aberta .NET 6, desenvolvido por meio da unificação dos produtos .NET Framework, .NET Core e Mono. Com o .NET 6, é 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, independentemente do tipo de aplicação. As distribuições .NET SDK 6, .NET Runtime 6 e ASP.NET Core Runtime 6 estão disponíveis para Linux, macOS e Windows. O .NET Desktop Runtime 6 é fornecido apenas para Windows. Os artefatos associados ao projeto são distribuídos sob a licença MIT.
.NET 6 inclui o runtime CoreCLR com o compilador JIT RyuJIT, bibliotecas padrão, bibliotecas CoreFX, WPF, Windows Forms, WinUI, Entity Framework, a interface de linha de comando dotnet, além de ferramentas para o desenvolvimento de microserviços, bibliotecas, aplicações server-side, gráficas e de console. Foi publicado separadamente o stack para desenvolvimento de aplicações web ASP.NET Core 6.0 e a camada ORM Entity Framework Core 6.0 (drivers, incluindo para SQLite e PostgreSQL), assim como os lançamentos das linguagens C# 10 e F# 6. O suporte ao .NET 6.0 e C# 10 foi adicionado ao editor de código gratuito Visual Studio Code.
Características do novo lançamento:
- O desempenho foi significativamente melhorado, incluindo otimizações na entrada/saída de arquivos.
- Na linguagem C# 10, foi implementado suporte a estruturas na forma de registros (record struct), a diretiva “global using”, namespaces atrelados a arquivos e novas funcionalidades para expressões lambda. O compilador agora suporta geração incremental de código-fonte.
- Na linguagem F# 6, foi adicionado suporte ao mecanismo de execução assíncrona de tarefas async e à depuração em pipeline.
- A função Hot Reload está disponível, permitindo editar o código em tempo real durante a execução do programa, possibilitando modificações sem parar manualmente a execução e sem precisar anexar pontos de interrupção. O desenvolvedor pode executar o aplicativo sob o comando ‘dotnet watch’, após o que as alterações de código são aplicadas automaticamente ao aplicativo em execução, permitindo ver os resultados imediatamente.
- Uma ferramenta ‘dotnet monitor’ foi adicionada para acessar informações de diagnóstico do processo dotnet.
- Foi proposta uma nova sistema de otimização dinâmica com base nos resultados de perfilamento de código (PGO - otimização guiada por perfil), permitindo gerar um código mais otimizado com base na análise das características de execução. O uso do PGO aumentou o desempenho do conjunto TechEmpower JSON 'MVC' em 26%.
- No ASP.NET Core, o HttpClient e o gRPC foram adicionados com suporte ao protocolo HTTP/3.
- A API relacionada ao formato JSON foi expandida. Um novo gerador de código System.Text.Json e um sistema de serialização de dados no formato JSON foram adicionados.
- No Blazor, a plataforma para criação de aplicativos web em C#, foi adicionado suporte para renderização de componentes Razor a partir do JavaScript e integração com aplicativos JavaScript existentes.
- Adicionada a capacidade de compilar código .NET em uma representação no WebAssembly.
- Na API File IO, foi adicionado suporte a links simbólicos. O FileStream foi completamente reescrito.
- Foi adicionado suporte para a biblioteca OpenSSL 3 e algoritmos criptográficos ChaCha20/Poly1305.
- No Runtime, foram implementados mecanismos de proteção W^X (Write XOR Execute, proibindo o acesso simultâneo para gravação e execução) e CET (Tecnologia de Reforço de Controle de Fluxo, proteção contra a execução de exploits construídos a partir de técnicas de programação orientada a retorno).
- Adicionado suporte experimental para iOS e Android como plataformas TFM (Target Framework Moniker).
- Significativas melhorias no suporte a sistemas Arm64. Adicionado suporte a dispositivos Apple baseados no chip ARM M1 (Apple Silicon).
- Processo de construção do .NET SDK a partir de códigos-fonte garantido, facilitando a criação de pacotes com .NET para distribuições Linux.
Fonte: opennet.ru
