.NET Core 3.0 arrives!

19 out

Fala Galera,

Neste post vamos falar um pouco da recente chegada do .NET Core 3.0 e discutir sobre as suas novas funcionalidades. O .NET Core 3 foi lançado recentemente em setembro de 2019 na .NET Conf 2019. Ele foi o grande lançamento deste evento e não poderia ser diferente com suas novas funcionalidades.

O que é o .NET Core?

O .NET Core é a plataforma para você construir software em qualquer sistema operacional (Cross Platform) como Windows, MacOS e Linux. E acredite se quiser o .NET Core é Open Source e seu código fonte está hospedado no GitHub (https://github.com/dotnet/core).

 

Ele foi desenvolvido para você construir sua solução nos mais diversos cenários. E o que é o mais legal você pode usar o Visual Studio, Visual Studio Code, Visual Studio For Mac ou o seu editor preferido.

Veja na imagem abaixo o crescimento do .NET nas comunidades. É inegável que o .NET Core é um grande sucesso.

.NET Core, mais rápido que o NodeJS!

O .NET Core foi criado e pensado para ser o mais performático Framework de desenvolvimento de software. Os engenheiros estão sempre preocupados em sua performance. A Microsoft investe pesadamente na plataforma para ter melhorias de desempenho e na imagem abaixo podemos ver uma comparação com outros frameworks do mercado como Java e NodeJS.

O .NET Core conseguiu ser até 8x mais performático que NodeJS.

**https://www.techempower.com/benchmarks/#section=data-r16&hw=ph&test=plaintext**

Agora que sabemos o que é o .NET Core, vamos falar de novo lançamento, o .NET Core 3.

.NET Core 3, seja bem vindo seu lindo =]

Como dito na introdução, em setembro foi lançado o .NET Core 3.0 e as principais novidades foram:

  • Interoperabilidade para Aplicações em Desktop (Windows Form & WPF)
  • Inteligência Artificial & Machine Learning
  • Produtividade no desenvolvimento Web e Cloud

Principais Features do .NET Core 3

C# 8

Com .NET Core 3.0 veio o C# 8.0. Os destaques do C# 8.0 junto com o .NET Core 3 foram os novos Nullable Reference Types, Async Streams, Range, Switch Expression e Using Declarations.

Using Declarations

Essa é uma nova forma de declarar uma variável e garantir que ela será descartada corretamente da memória.

 using var file = new System.IO.StreamWriter("WriteLines2.txt");
 int skippedLines = 0;
 foreach (string line in lines)
 {
    if (!line.Contains("Second"))
        file.WriteLine(line);
    else
        skippedLines++;
 }

// a variável 'file' será descartada (disposed) aqui

 

Melhoramento do Base Common Library (BCL)

O tipos Span<T> e Memory<T> que foram apresentados no .NET Core 2.1 e foram aprimorados nesta versão, com isso operações como formatting, parsing, slicing entre outros tem uma performance melhor nesta versão.

Não sabe como funciona esses tipos clique aqui

Windows Desktop Apps

Agora você pode criar aplicações Windows utilizando Windows Forms e WPF com o .NET Core 3.0. Suporta os controles do Windows Forms como conhecemos e ainda podemos utilizar o XAML para as nossas aplicações WPF

Cryptography

Novas criptografias foram incluídas nesta nova versão são elas AES-CCM e AES-GCM que estão presentes em System.Security.Cryptography.AesGcm e em System.Security.Cryptography.AesCcm

Windows Native Interop

Com o .NET Core 3.0 podemos fazer chamadas nas APIs nativas do Windows utilizando o WINRT e COM APIs

MSIX Deployment for Windows Desktop

MSIX pode ser utilizado para publicar aplicações .NET Core 3.0 feitas para desktop e para rodar em Windows. Podemos utilizar o Windows Application Packaging Project para você criar MSIX em .NET Core e assim instalar no sistema operacional Windows

JSON Nativo no .NET Core 3.0

Nesta nova versão o .NET Core 3.0 deixa de usar o Json.NET e agora usa nativamente JSON. O novo built-it JSON é extremamente performático, com pouca alocação de memória e é baseado no Span<byte>. Foram criados três novos tipos para tratar JSON.

  • Utf8JsonReader
  • Utf8JsonWriter
  • JsonDocument

Suporte a HTTP/2

Com o .NET Core 3.0 podemos utilizar o protocolo HTTP/2. Nesta nova versão o HttpClient suporta HTTP/2 porém o protocolo HTTP/1.1 está sempre habilitado por padrão.

Você pode habilitar o HTTP/2 conforme o exemplo abaixo

var client = new HttpClient();

var req = new HttpRequestMessage(HttpMethod.Get, "https://xpto.com"){
             Version = new Version(2, 0) 
             };

var x = await client.SendAsync(req);
var version = x.Version;

Console.WriteLine(version);

Além do HttpClient, o ASP.NET Core também tem suporte a gRPC.

Garbage Collector

O Garbage Collector utiliza menos memória nesta versão e também fizeram melhorias para utilizar de forma melhorada um servidores com um grande número de core, por exemplo maquinas com 64 cores ou mais.

Suporte a ARM64 Linux

.NET Core 3.0 adicionou o suporte a ARM64 no linux. O seu uso principal são em cenários de IoT (Internet of Things)

.NET Core 3.0 suporta diversos sistemas operacionais

O .NET Core pode ser utilizado em uma gama de sistemas operacionais são eles:

  • Windows Server: 2012 R2 SP1+
  • Windows Client: 7, 8.1, 10 (1607+)
  •  RHEL: 6+
  • macOS: 10.12+
  • Ubuntu: 16.04+
  • Fedora: 26+
  • SLES: 12+
  • Debian: 9+
  • Alpine: 3.8+
  • openSUSE: 42.3+

 

Essas são algumas das novidades do recem lançado .NET Core 3.0. E aí que acharam destas novidades?

Conheça mais novidades em http://dot.net

Abs e até a próxima

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.