NET 6.0 - Anunciada a Versão Preview 1

 Hoje veremos os principais recursos que foram apresentados na versão Preview 1 do NET 6.0 que será lançada em novembro de 2021.

Estou apresentando um resumo de alguns pontos que foram apresentados no documento oficial.

O principal objetivo do .NET 6 é entregar as partes finais do plano de unificação da plataforma  .NET que começou com o .NET 5.

O lançamento também incluirá grandes melhorias em todas as partes do .NET, incluindo a nuvem, desktop e aplicativos móveis. Serão necessárias várias versões previews para que o escopo maior da versão esteja totalmente disponível nas compilações do .NET 6.

Você pode baixar o NET 6 preview 1 para Windows, Linux e macOS bem como as imagens, pacotes e documentos nos links a seguir:

Para mais detalhes sobre as novidades da ASP .NET Core e EF Core acesse os seguintes links:

  1. ASP .NET Core (NET 6)
  2. EF Core (NET 6)

O .NET 6 foi testado com Visual Studio 16.9 Preview 4 e Visual Studio para Mac 8.9. Recomendamos que você use essas compilações se quiser experimentar o .NET 6.

Unificado e estendido

O .NET 6 permitirá que você crie os aplicativos para as plataformas que deseja atingir e nos sistemas operacionais que deseja usar para o desenvolvimento.

Assim Xamarin agora estará integrado ao .NET 6 e no Blazor teremos um novo tipo de aplicativo cliente híbrido que combina web e UI nativa - que pode ser usado para cenários de desktop e móveis.

Assim teremos uma plataforma unificada, novas APIs e melhorias de desempenho que estarão disponíveis para todos os desenvolvedores no mesmo dia e funcionarão para todos os aplicativos.

Ao instalar o .NET SDK, você pode começar a construir aplicativos para plataformas móveis. Isso significa que você poderá digitar dotnet new android e, em seguida, dotnet run e esperar que um emulador de Android comece a executar um aplicativo .NET. O mesmo é válido para aplicativos iOS. Você terá experiências semelhantes no Visual Studio e no Visual Studio Code.

Estamos aproveitando a oportunidade em torno da unificação para simplificar e estender a experiência de construção de aplicativos Xamarin Forms. Estamos chamando esse projeto de .NET Multi-platform App UI (.NET MAUI).  Esse projeto oferecerá muitas melhorias e recursos que ampliarão o alcance da plataforma de desenvolvedores de desktop e móveis.

Open Planning

Adotamos um processo de planejamento mais aberto com o .NET 6 onde planejamos os lançamentos do .NET com um modelo hierárquico de temas, epopéias e histórias de usuário, com prioridades e categorias. Este modelo permite que você veja o lançamento em um escopo mais amplo, e fornece uma visão sobre quais recursos são os mais importantes e torna mais fácil encontrar oportunidades para se envolver e contribuir.

O plano que você vê no GitHub agora é uma parte fundamental do nosso processo de engenharia. Faremos o nosso melhor para manter esses problemas atualizados e vinculá-los a atividades e documentos relevantes para ajudá-lo a compreender melhor a profundidade e a amplitude do projeto. Nós encorajamos você a se envolver, fazer perguntas e dar feedback.

Suporte

O .NET 6 será lançado em novembro de 2021 e terá suporte por três anos, como uma versão Long Term Support (LTS). A matriz da plataforma foi significativamente expandida em comparação com .NET 5.

1- .NET Multi-platform App UI

A NET Multi-platform App UI é um kit de ferramentas de UI moderno que se baseia e estende o Xamarin como parte da unificação do .NET 6. Você poderá direcionar para Android, iOS, macOS e Windows.

Como parte do processo de unificação, decidimos que fazia muito sentido mesclar a biblioteca Xamarin.Essentials na interface do usuário do aplicativo .NET multiplataforma. Além dos controles de interface de usuário de plataforma cruzada, você pode usar facilmente os recursos do dispositivo, como sensores do dispositivo, recursos comuns como fotos e contatos e muitos serviços que você usa regularmente, como autenticação e armazenamento seguro.

2- Aplicativos de desktop Blazor

O Blazor se tornou uma forma muito popular de escrever aplicativos da web. Inicialmente oferecemos suporte ao Blazor no servidor, depois no navegador com WebAssembly, e agora estamos estendendo-o novamente, para permitir que você escreva aplicativos de desktop Blazor.

O desktop Blazor permite criar aplicativos cliente híbridos, que combinam a web e a IU nativa em um aplicativo cliente nativo. Ele é voltado principalmente para desenvolvedores da web que desejam fornecer experiências avançadas e offline para seus usuários.

3- Arm64

O Arm64 continua a ser um grande foco para nós e para a indústria. Fizemos grandes melhorias no desempenho do Arm64 com .NET 5.0 e continuaremos a investir no desempenho do Arm64. Para este lançamento, concentraremos nossa atenção mais na habilitação funcional.

4- Contêineres

Os contêineres são o foco diário da equipe, tanto como base de nossa infraestrutura de construção quanto como cenário de produto. O teste de desempenho do .NET também é feito em contêineres. Temos vários projetos planejados para melhorar os contêineres no .NET 6.

- Melhorar o dimensionamento em contêineres e suporte melhor para contêineres isolados de processos do Windows;
- Reduzir o tamanho da imagem do contêiner usando PGO;
- Aumentar o desempenho de inicialização e rendimento usando balões de versão prontos para rodar;
- Aumentar o desempenho de inicialização e rendimento usando instruções vetoriais modernas por padrão;


5- Targeting .NET 6

Os monikers de estrutura de destino (TFMs) para .NET 6 seguem a abordagem que adotamos com .NET 5. Novos TFMs foram adicionados como resultado da adição de suporte para novas plataformas.

Para atingir o .NET 6, você precisa usar um .NET 6 TFM, por exemplo:  
<TargetFramework>net6.0</TargetFramework>

A seguir temos o conjunto completo de TFMs .NET 6, incluindo aqueles específicos de operação :

6. NET CLI

A ferramenta .NET CLI possibilitou experiências de conveniência adicionais como resultado da adoção das bibliotecas System.CommandLine.

7. Response files

Um arquivo de resposta é um arquivo que contém um conjunto de argumentos de linha de comando para uma ferramenta. Os arquivos de resposta atendem a dois casos de uso principais:

1- Permite que uma invocação de linha de comando ultrapasse o limite de caracteres do terminal e
2- É uma conveniência em vez de digitar os mesmos comandos repetidamente.

O suporte ao arquivo de resposta foi adicionado ao .NET CLI. A sintaxe é @file.rsp.

O formato do arquivo de resposta é uma única linha de texto, exatamente como seria estruturado em um terminal.

8. Diretivas

As diretivas são uma experiência System.CommandLine para interagir diretamente com os comandos. Dentro do modelo System.CommandLine, os comandos são um conjunto de objetos que podem ser chamados ou explorados, como dados com comportamento associado.

A diretiva suggest permite que você pesquise comandos se não souber o comando exato. Esta diretiva existe para habilitar a ferramenta global dotnet-Suggest

dotnet [sugira] buil
build
build-servier
msbuild

7. Melhorar os aplicativos de arquivo único

No .NET 6, os aplicativos de arquivo único foram habilitados para Windows e macOS. No .NET 5, os aplicativos de arquivos únicos eram limitados ao Linux.

No .NET 6, para todos os sistemas operacionais com suporte, você pode publicar um binário de arquivo único que tenha exatamente um arquivo no disco e não precise extrair nenhum dos assemblies de tempo de execução principais para diretórios temporários.

8. Pool de threads portáteis

O pool de threads do .NET foi reimplementado como uma implementação gerenciada e agora é usado como o pool de threads padrão no .NET 6. Fizemos essa alteração para permitir que os aplicativos tenham acesso ao mesmo pool de threads - com comportamento idêntico - independente de se o CoreCLR, Mono ou qualquer outro tempo de execução estava sendo usado. Consideramos esse pool de threads o padrão para o .NET no futuro.

9. RunTime

Existem vários novos recursos de runtime que fazem parte do Preview 1, incluindo suporte a Apple Silicon, crossgen 2 e o início da entrega do tema PGO.

10. New math APIs

As seguintes APIs matemáticas orientadas para o desempenho foram adicionadas ao System.Math. Sua implementação será acelerada por hardware se o hardware subjacente oferecer suporte.

Novas APIs:

Novas sobrecargas:

Para ver todas as novidades com mais detalhes acesse o documento oficial em : Announcing .NET 6 Preview 1

Bem-Vindo ao .NET 6.0.


Referências:


José Carlos Macoratti