.NET 7.0 - Resumo das principais novidades


 O .NET 7.0 já chegou e trouxe muitas novidades. Vejamos um resumo de algumas destas novidades.

Sem dúvida, o universo Microsoft .NET vem evoluindo ao longo dos anos e trazendo novidades a cada nova atualização. E neste mês, como previsto, tivemos o lançamento oficial do .NET 7.0

O .Net 7 tem a mesma base do .Net 6, que inclui experiência de desenvolvimento simplificada, mais produtividade e um bloco unificado de bibliotecas e plataforma. Além disso, existem quatro tópicos principais nos quais veremos melhorias no  .Net 7 :

  1. Desenvolvimento de cliente moderno com o  .Net MAUI;
  2. Cloud Nativo e Contêineres;
  3. Atualização de aplicativos .Net existentes;
  4. Melhorias de autenticação JWT e configuração automática;

Além disso .NET 7 está vindo com C# 11, a nova versão da linguagem C#, mas, antes de entrarmos nos detalhes do .Net 7, vamos ver rapidamente o ciclo de lançamento da plataforma .Net e a política de suporte.

Política de Suporte e Ciclo de Lançamento do .Net

A partir do .Net 5, a Microsoft se comprometeu com o lançamento anual de uma nova versão do .Net. O lançamento geralmente ocorre em novembro de cada ano.

Há uma diferença entre os números pares da versão .Net e os números ímpares. As versões pares dão o suporte LTS e as versões ímpares dão o suporte STS.

Assim o .Net 6 e o .Net 8 são versões com suporte de longo prazo (LTS) e  receberão patches por 3 anos.

Já o .NET 7.0 é um lançamento de curto prazo que receberá patches por 18 meses, o que significa que após o lançamento do .Net 8, você terá cerca de 6 meses para atualizar do .Net 7 para o .Net 8.


Desenvolvimento de cliente moderno: .Net MAUI

O .Net MAUI é o novo kit de ferramentas de desenvolvimento de UI nativo multiplataforma para o .Net e faz parte do .Net 7. Assim podemos contar com um .NET MAUI com ferramentas e desempenho aprimorados.

No .NET 7 o .NET Maui aborda os principais problemas de feedback e apresenta novos recursos para desenvolvedores de desktop incluindo muitas correções nos fundamentos dos controles e layouts da interface do usuário, onde destacamos:

- Controle de mapa

Nesta versão, estamos enviando o controle .NET MAUI Map, atualizado do Xamarin.Forms. Como nossos outros controles de interface do usuário, essa é uma abstração multiplataforma do controle de mapa nativo fornecido por cada plataforma. O mapa oferece suporte a pinos, pinos personalizados, desenho de polígonos, polilinhas e círculos, geocodificação e geolocalização, além de iniciar o aplicativo de mapa nativo no dispositivo que você está executando.

- Desempenho de renderização móvel

O .NET MAUI no .NET 7 é ainda mais rápido que no .NET 6. O caminho de renderização para views básicas foi otimizado e vários problemas que estavam afetando a suavidade da rolagem no controle de lista CollectionView foram resolvidos.

- Aprimoramentos da área de trabalho

Foram incluidos também alguns aprimoramentos como :

- Tamanho e posição da janela
- Menus de Contexto
- ToolTips
- Gesto de foco do ponteiro
- Right-Click


Cloud Nativo e Contêineres

A Microsoft quer se concentrar na jornada dos desenvolvedores para aplicativos nativos da nuvem focando na melhoria dos seguintes pontos como  .Net 7:

  1. Simplificar a instalação e configuração necessárias para implementar autenticação e autorização seguras;
  2. Melhorar o desempenho da inicialização do aplicativo e da execução do tempo de execução;

Se falamos de melhorias, a Microsoft vai continuar investindo no Orleans, que é um framework multiplataforma .Net para a construção de aplicativos distribuídos.

Além disso a experiência do desenvolvedor para aplicativos .Net conteinerizados foi melhorada.

Os novos recursos que o .NET 7 traz facilita a criação de aplicativos nativos da nuvem com diferentes tipos de melhorias na experiência do desenvolvedor.

Além disso, simplifica bastante a instalação e configuração de sistemas de autenticação e autorização. E, claro, como sempre, pequenas melhorias de desempenho no tempo de execução do aplicativo.

Atualização de aplicativos .Net existentes

Para ajudar os desenvolvedores a atualizar os aplicativos .Net existentes para o .Net 7 é possível usar NET Update Assistant  que oferece suporte a casos de uso adicionais e inclui :

- Mais analisadores de código;
- Mais verificadores de código;
- Verificadores de compatibilidade;


Tudo isso vem junto com o . NET Update Assistant , que ajudará muito na atualização desses aplicativos, economizando o tempo do desenvolvedor .

Com isso a atualização de aplicações existentes para o .NET 7.0 tem o objetivo de ser mais simples e sem muitos traumas.

Melhorias de autenticação JWT e configuração automática

Agora as opções de autenticação podem ser configuradas automaticamente diretamente do sistema de configuração, devido à adição de uma seção de configuração padrão ao configurar por meio da nova propriedade Authentication no WebApplicationBuilder.

A configuração da Autenticação JWT usando essa nova propriedade vai adicionar automaticamente o middleware necessário da mesma forma que o WebApplicationBuilder faz para o roteamento.

Além disso, os esquemas de autenticação individuais definirão parâmetros de opções de appsettings.json automaticamente. Isso sempre ajuda os desenvolvedores a configurar parâmetros entre o ambiente de desenvolvimento e produção.

Mais algumas melhorias e recursos

O .Net 6 já teve um grande impacto no desempenho e o .Net 7 levará isso ainda mais longe. Mesmo que você não tenha problemas de desempenho hoje, isso economizará seu dinheiro sem alterar seu código-fonte ao executar na nuvem.

Assim considerando apenas o ganho de desempenho obtido pode valer migrar para o .NET 7.0.

Aplicativos mais rápidos e leves (AOT nativo)

O Native AOT (Ahead-of-time) é outra das novas melhorias e novidades que a Microsoft traz desta vez no .NET 7. Depois de um tempo, o projeto experimental Native AOT se tornou o foco principal do desenvolvimento da Microsoft.

Para quem não sabe o que é Native AOT, Ahead-of-time (simplesmente AOT) gera código em tempo de compilação em vez de tempo de execução.

Neste momento, a Microsoft já oferece ReadyToRun, também chamados de RTR (aplicativos cliente/servidor) e Mono AOT (aplicativos móveis e WASM) para esta finalidade. (Além disso o Native AOT não substitui Mono AOT ou WASM.)

O AOT nativo é caracterizado pelo que seu nome indica: Gera código em tempo de compilação, mas nativo. Sua maior vantagem é a melhoria de performance, principalmente em:

Melhorias mínimas de APIs

APIs mínimas foram introduzidas no .Net 6 e permitem que você crie APIs leves sem a sobrecarga de controladores.

Com o .Net 7, temos melhorias adicionais e suporte para recursos amtes ausentes, como agrupamento de terminais com um prefixo de rota comum.

Os filtros de endpoint agora permitem que você implemente preocupações transversais que só eram possíveis  com controladores usando filtros de ação.

Outros recursos como FileUpload , Array Binding e atributo [AsParameters] também foram incluídos.

Novas APIs e melhorias

O namespace System.Text.Json agora inclui algumas melhorias de qualidade de vida como:

Nas versões anteriores, isso não era possível, mas graças a essas adições a System.Text.Json , a serialização e desserialização de hierarquias de tipo polimórfico agora é possível.

Gerador de fonte Regex aprimorado

O novo Regex Source Generator significa que você pode economizar até 5x o tempo gasto otimizando padrões de nosso mecanismo compilado sem ter que sacrificar nenhum dos benefícios de desempenho associados.

Além disso, por operar dentro de uma classe parcial, não há sobrecarga de tempo de compilação para instâncias em que os usuários conhecem seu padrão em tempo de execução. Com esse recurso, se seu padrão puder ser conhecido em tempo de compilação, esse gerador é recomendado em vez da abordagem tradicional baseada em compilador.

Tudo o que você precisa fazer é configurar uma declaração parcial com um atributo chamado RegexGenerator que aponta para o método que retornará um objeto de expressão regular já pré-compilado (com todos os outros recursos ativados).

A união de Blazor e .NET MAUI

Como já sabemos, o Blazor é uma framework de desenvolvimento de aplicativos da Web e uma de suas principais características é a capacidade de executar as visualizações do aplicativo no lado do cliente — e não no servidor.

Fato interessante: O nome Blazor vem da união de duas palavras: Browser e Razor — o mecanismo de geração de visualização HTML .NET.

O .NET MAUI é o framework que é a evolução do Xamarin.

É aqui que a Microsoft fará um “milkshake” com Blazor e .NET MAUI que se tornará Blazor Hybrid.

Blazor Híbrido

Para explicar da melhor maneira possível, devemos ir um pouco ao passado (especificamente 2018), que foi o ano do lançamento inicial do Blazor(web). Naquela época só era possível construir páginas web com HTML, CSS e também com C#.

Isso era inviável de se pensar há vários anos, mas agora a Microsoft quer dar um passo além : reunir os principais recursos e funções do Blazor e .NET MAUI para o Blazor Hybrid.

O Blazor Hybrid Support vai permitir pegar componentes blazor existentes e colocá-los juntos em um aplicativo de desktop usando um controle de visualização da Web com acesso a todas as APIs de hardware subjacentes. Isso permitirá que os desenvolvedores usem tecnologias da Web para criar aplicativos de desktop com acesso a recursos do sistema, como o sistema de arquivos local ou uma webcam.

Portanto, com o .NET 7.0 a evolução continua e o ganho de desempenho também, desta forma considere usar o .NET em seus projetos ou migrar sua aplicação para o .NET 7.0 , se realmente isso valer a pena neste momento.

Para saber mais sobre os demais recursos e novidades do .NET 7.0 consulte o documento oficial neste link : What's new in .NET 7.0

E estamos conversados...

Referências:


José Carlos Macoratti