Anunciando o .NET Core 3.1

Temos o prazer de anunciar o lançamento do .NET Core 3.1. Na verdade, é apenas um pequeno conjunto de correções e aprimoramentos sobre o .NET Core 3.0 , que lançamos há pouco mais de dois meses. O recurso mais importante é que o .NET Core 3.1 é uma versão com suporte a longo prazo (LTS) e terá suporte por três anos. Como fizemos no passado, queríamos levar um tempo antes de lançar o próximo lançamento do LTS. Os dois meses extras (após o .NET Core 3.0) nos permitiram selecionar e implementar o conjunto certo de melhorias em relação ao que já era uma base muito estável. Agora, o .NET Core 3.1 está pronto para ser usado onde quer que sua imaginação ou necessidade comercial o exija.

Você pode baixar o .NET Core 3.1 , para Windows, macOS e Linux:


O ASP.NET Core e o EF Core também estão sendo lançados hoje.

O Visual Studio 2019 16.4 também foi lançado hoje e inclui o .NET Core 3.1. É uma atualização necessária para usar o .NET Core 3.1 com Visual Studio. Para usuários do Visual Studio 2019, recomendamos simplesmente atualizar o Visual Studio para 16.4 e, em vez de baixar separadamente o .NET Core 3.1.

O Visual Studio para Mac também oferece suporte e inclui o .NET Core 3.1, no canal Visual Studio para Mac 8.4 Preview. Você precisará ativar o canal de visualização para usar o .NET Core 3.1.

Notas de versão:




As alterações no .NET Core 3.1 foram focadas principalmente no Blazor e no Windows Desktop , as duas novas e grandes adições no .NET Core 3.0. Isso inclui suporte para C ++ / CLI, que tem sido uma solicitação regular para desenvolvedores direcionados ao Windows.

Antes de examinarmos o que há de novo no .NET Core 3.1, vamos dar uma olhada rápida nos principais aprimoramentos do .NET Core 3.0 , que é a maior parte do que é importante considerar no .NET Core 3.1.

Recapitulação dos aprimoramentos do .NET Core 3.0


Os seguintes aprimoramentos importantes foram entregues no .NET Core 3.0. Já ouvimos de desenvolvedores de sites grandes que ele está funcionando super bem para eles.

  • O .NET Core 3.0 já foi testado em batalha, sendo hospedado por meses no dot.net e no Bing.com . Muitas outras equipes da Microsoft implantarão em breve grandes cargas de trabalho no .NET Core 3.1 em produção.
  • O desempenho é bastante aprimorado em muitos componentes e é descrito em detalhes em Melhorias de Desempenho no .NET Core 3.0 e Hardware Intrinsics no .NET Core .
  • O C # 8 adiciona fluxos assíncronos, intervalo / índice, mais padrões e tipos de referência que permitem valor nulo . Anulável permite que você direcione diretamente as falhas no código que levam a NullReferenceException . A camada mais baixa das bibliotecas da estrutura foi anotada, para que você saiba quando esperar null .
  • O F # 4.7 se concentra em facilitar algo com expressões implícitas de yield e alguns relaxamentos de sintaxe. Ele também inclui suporte para LangVersion e é fornecido com nameof e abertura de classes estáticas na visualização. A Biblioteca F # Core agora também tem como alvo o .NET Standard 2.0. Você pode ler mais em Anúncio do F # 4.7 .
  • O .NET Standard 2.1 aumenta o conjunto de tipos que você pode usar no código que pode ser usado no .NET Core e no Xamarin. O .NET Standard 2.1 inclui tipos desde o .NET Core 2.1.
  • Agora, os aplicativos da área de trabalho do Windows são suportados pelo .NET Core, para Windows Forms e WPF (e código aberto ). O designer do WPF faz parte do Visual Studio 2019. O designer do Windows Forms está em visualização e está disponível para download.
  • Os aplicativos .NET Core agora têm executáveis ​​por padrão. Em versões anteriores, os aplicativos precisavam ser lançados por meio do comando dotnet , como dotnet myapp.dll . Agora, os aplicativos podem ser iniciados com um executável específico do aplicativo, como ./myapp ou ./myapp , dependendo do sistema operacional.
  • APIs JSON de alto desempenho foram adicionadas, para leitor / gravador, modelo de objeto e cenários de serialização. Essas APIs foram criadas a partir do zero, sobre o SpanT e usam UTF8 sob as tampas, em vez de UTF16 (como string ). Essas APIs minimizam alocações, resultando em desempenho mais rápido e muito menos trabalho para o coletor de lixo. Consulte Experimente as novas APIs System.Text.Json .
  • O coletor de lixo usa menos memória por padrão, geralmente muito menos. Essa melhoria é muito benéfica para cenários em que muitos aplicativos estão hospedados no mesmo servidor. O coletor de lixo também foi atualizado para fazer melhor uso de um grande número de núcleos, em máquinas com> 64 núcleos. Consulte Melhorando a configuração da CPU para GC em máquinas com> 64 CPUs .
  • O .NET Core foi reforçado para o Docker para permitir que aplicativos .NET funcionem de maneira previsível e eficiente em contêineres. O coletor de lixo e o conjunto de encadeamentos foram atualizados para funcionar muito melhor quando um contêiner foi configurado para memória ou CPU limitada. As imagens da janela de encaixe .NET Core são menores, principalmente a imagem do SDK. Consulte: Executando com o GC do servidor em um cenário de contêiner pequeno, parte 0 , Executando com o GC do servidor em um cenário de contêiner pequeno Parte 1 - Limite máximo para o heap do GC e usando o .NET e o Docker juntos - Atualização do DockerCon 2019 .
  • Agora, os chips Raspberry Pi e ARM são suportados para permitir o desenvolvimento da IoT, inclusive com o depurador remoto do Visual Studio. Você pode implantar aplicativos que escutam sensores e imprimir mensagens ou imagens em um monitor, tudo usando as novas APIs do GPIO. O ASP.NET pode ser usado para expor dados como uma API ou como um site que permite configurar um dispositivo de IoT.

Suporte de plataforma


O .NET Core 3.1 é suportado nos seguintes sistemas operacionais:

  • Alpino: 3.10+
  • Debian: 9+
  • Ubuntu: 16.04+
  • Fedora: 29+
  • RHEL: 6+
  • openSUSE: 15+
  • SUSE Enterprise Linux (SLES): 12 SP2 +
  • macOS: 10.13+
  • Cliente Windows: 7, 8.1, 10 (1607+)
  • Windows Server: 2012 R2 +

Nota: Os aplicativos Windows Forms e WPF são funcionais e suportados apenas no Windows.

O suporte a chips segue:

  • x64 no Windows, macOS e Linux
  • x86 no Windows
  • ARM32 no Windows e Linux
  • ARM64 no Linux (kernel 4.14+)

Nota: Verifique se as implantações do .NET Core 3.1 ARM64 usam o Linux kernel 4.14 versão ou posterior. Por exemplo, o Ubuntu 18.04 atende a esse requisito, mas o 16.04 não.

Remoção de Windows Forms Controls


Os seguintes controles do Windows Forms foram removidos do .NET Core 3.1:

  • DataGrid
  • Barra de ferramentas
  • ContextMenu
  • Menu
  • Mainmenu
  • MenuItem

Esses controles foram substituídos por controles mais poderosos no .NET Framework 2.0, em 2005. Eles não estão disponíveis por padrão na caixa de ferramentas do Visual Studio Designer há muitos anos. Como resultado, decidimos remover esses controles e focar apenas nos novos.

As seguintes substituições são recomendadas:
DataGridDataGridViewDataGridCell, DataGridRow, DataGridTableCollection, DataGridColumnCollection, DataGridTableStyle, DataGridColumnStyle, DataGridLineStyle, DataGridParentRowsLabel, DataGridParentRowsLabelStyle, DataGridBoolColumn, DataGridColumnType
Barra de ferramentasToolstripToolBarAppearance
ToolBarButtonToolStripButtonToolBarButtonClickEventArgs, ToolBarButtonClickEventHandler, ToolBarButtonStyle, ToolBarTextAlign
ContextMenuContextMenuStrip
MenuToolStripDropDown, ToolstripDropDownMenuMenuItemCollection
MainmenuMenuStrip
MenuItemToolstripMenuItem
Sim, esta é uma mudança infeliz. Você verá quebras de compilação se estiver usando os controles que removemos em seus aplicativos. Além disso, se você abrir aplicativos .NET Core 3.0 nas versões mais recentes do designer do .NET Core Windows Forms, verá erros se estiver usando esses controles.

Recomendamos que você atualize seus aplicativos para o .NET Core 3.1 e vá para os controles alternativos. Substituir os controles é um processo direto, essencialmente "localizar e substituir".

Primeiro, deveríamos ter feito essas alterações antes do lançamento do .NET Core 3.0 e pedimos desculpas por isso. Tentamos evitar mudanças tardias, e ainda mais para quebrar mudanças, e nos custa fazer isso.

À medida que avançamos no projeto de designer do Windows Forms, percebemos que esses controles não estavam alinhados com a criação de aplicativos modernos e nunca deveriam ter sido parte da porta .NET Core do Windows Forms. Também vimos que eles exigiriam mais tempo de nossa parte do que fazia sentido.

Nosso objetivo é continuar aprimorando o Windows Forms para obter alto DPI, acessibilidade e confiabilidade, e essa alteração tardia foi necessária para permitir que nos concentrássemos nesse objetivo.

C ++ / CLI


Adicionamos suporte para a criação de componentes C ++ / CLI (AKA "C ++ gerenciado") que podem ser usados ​​com o .NET Core 3.0+, no Visual Studio 2019 16.4. Você precisa instalar a carga de trabalho "Desktop development with C ++" e o componente "C ++ / CLI support" para usar o C ++ / CLI.

Este componente adiciona alguns modelos que você pode usar:

  • Biblioteca de classes CLR (.NET Core)
  • Projeto vazio do CLR (.NET Core)

Se você não conseguir encontrá-los, procure-os na caixa de diálogo Novo Projeto.

C ++ / CLI está ativado apenas no Windows. Você não pode usar componentes C ++ / CLI direcionados para o .NET Framework com .NET Core ou vice-versa.

Encerramento


Recomendamos migrar para o .NET Core 3.1 assim que possível. É um ótimo lançamento (em grande parte devido ao 3.0) que traz melhorias para muitos aspectos do .NET Core. É também uma versão de suporte a longo prazo (LTS) e terá suporte por três anos.

Atualização do ciclo de vida:

  • O .NET Core 3.0 chegará ao fim da vida útil em três meses a partir de hoje, em 3 de março de 2020.
  • O .NET Core 2.2 terminará em 23 de dezembro.
  • O .NET Core 2.1 será suportado até agosto de 2021 (também é uma versão LTS).

As seguintes postagens do .NET Core são leitura recomendada para saber mais sobre o que você obtém com o .NET Core 3.1 e outros projetos em que estamos trabalhando.

Fundamentos


Área de trabalho


ASP.NET


Geral

Source: https://habr.com/ru/post/pt478896/


All Articles