.NET 5 - É o futuro da plataforma .NET

 Hoje vamos apresentar o .NET 5 , o que é, a que se propõe, como ele impacta a plataforma .NET, e qual a previsão para o seu lançamento.

Na Build 2019 Conference a Microsoft anunciou que após o lançamento do .NET Core 3.0, o .NET 5 será lançado como sendo a versão unificada da plataforma .NET.

O .NET 5 é um projeto que visa melhorar a plataforma .NET da seguinte forma:

Assim haverá apenas um .NET daqui para frente, e, você poderá usá-lo para segmentar Windows, Linux, macOS, iOS, Android, tvOS, watchOS e WebAssembly e outras tecnologias.

Serão introduzidas novas APIs .NET, recursos de runtime e recursos de linguagem como parte do .NET 5.

A figura abaixo procura dar uma ideia da abrangência do .NET5 tornando a plataforma .NET uma plataforma unificada:

Da figura compreende-se que o .NET 5 será uma plataforma única e unificada para a criação de aplicativos executados em todas as plataformas (Windows, Linux) e dispositivos (IoT, Mobile).

Mas no início nem tudo será um mar de rosas, dependendo da tecnologia que você usa dentro do ecosistema da plataforma .NET.

Se você é um desenvolvedor .NET atualmente suportando aplicativos corporativos desenvolvidos no .NET framework, você precisa saber como o .NET 5 afetará seus aplicativos corporativos atuais a longo prazo.

O .NET 5 é baseado no .NET Standard, o que significa que nem todos os recursos do .NET Framework estarão disponíveis no .NET 5. Além disso, existem algumas pilhas de tecnologia como formulários da Web, WCF e WWF que não estão sendo transferidos para o .NET 5.

Tecnologias que não estarão presentes no .NET 5

1- ASP .NET Web Forms

A ASP.NET Web Forms não estará presente no .NET 5, e a Microsoft está atualmente recomendando a mudança para o Blazor, que era um projeto experimental que foi promovido a oficial recentemente. As outras alternativas são o Angular, React e Vue SPA se você for bom em JavaScript.

Se você estiver usando a ASP.NET MVC como aplicativo web, poderá continuar a usar a mesma pilha usando o Asp.net Core MVC ou a nova Razor Pages introduzida no .Net Core 2.0, que podem ser semelhantes às da ASP.NET Web Forms para criar aplicativos de formulário da Web sem views e controladores.

No entanto, se você estiver desenvolvendo aplicativos da Web modernos para empresas, é melhor considerar um aplicativo de página única, SPA,  como o Blazor, o Angular ou o React, em vez de um aplicativo da Web tradicional para fornecer uma funcionalidade avançada do lado do cliente.

2 - WCF (Windows Comunication Foundation)

A tecnologia WCF não vai estar presente  .NET 5.

A Microsoft está recomendando usar o gRPC como uma alternativa que é uma estrutura RPC moderna de alto desempenho e de código aberto que pode ser executada em qualquer ambiente. No entanto, ao contrário do WCF, o gRPC não pode ser hospedado no IIS a partir de hoje, pois a implementação HTTP/2 do Http.Sys não suporta cabeçalhos finais da resposta HTTP nos quais o gRPC depende.

Assim, não espere suporte ao WCF no .NET 5.

3- WWF (Windows Workflow Foundation)

O WWF também esta fora do .NET 5.

Cada aplicativo corporativo terá algumas ferramentas de fluxo de trabalho ou BPM integradas a ele. Se você usou o WWF em seu aplicativo, a Microsoft está recomendando examinar o fork não oficial do runtime do WF para migrar para o .NET Core.

Tecnologias que estarão presentes no .NET 5

Windows Forms , WPF e UWP

A Microsoft está trazendo o Windows Desktop Packs (Winforms, WPF e UWP) para suportar aplicativos de desktop que só funcionam no Windows.

Por quê ?

Porque isso vai ajudar a portar os aplicativos WinForms legados para o .NET 5.

Isso não significa que a arquitetura do .NET Core está mudando. Ele continua um framework multiplataforma , mas as aplicações desktop irão funcionar somente no Windows.

No entanto, a portabilidade dos aplicativos desktops do Windows para o .Net Core vai proporcionar o benefício adicional dos aprimoramentos de desempenho do Core Runtime e da API e a flexibilidade de implantação.

O que será substituído ?

Algumas coisas vão mudar e algumas tecnologias serão substituidas. A seguir as principais mudanças:

Quando isso vai acontecer ?

Segundo a Microsoft os lançamentos serão feitos segundo o cronograma definido na figura baixo:

Em setembro de 2019 será lançado o .NET Core 3.0 e o .NET 5 em novembro de 2020, e então será lançado uma versão principal do .NET uma vez por ano, todo mês de novembro.

A versão 4 será ignorada porque isso confundiria os usuários familiarizados com o .NET Framework, que há muito tempo usa a série 4.x. Além disso, a Microsoft quer deixar bem claro que o .NET 5 é o futuro da plataforma .NET.

A nomenclatura também será simplificada. Segundo a Microsoft: "Pensamos que, se houver apenas um .NET daqui para frente, não precisamos de um termo esclarecedor como "Core".

O nome mais curto é uma simplificação, também comunica que o .NET 5 possui recursos e comportamentos uniformes, mas , se você quiser, sinta-se à vontade para continuar a usar o nome ".NET Core", se preferir.

E como fica o legado na linguagem C# ?

A versão mais recente da linguagem C# 8.0 introduziu muitos novos recursos de linguagem, incluindo o Async Stream, Ranges, Nullable Reference Types e Pattern Matching, etc. No entanto, eles estarão disponíveis apenas no .NET Core 3.0 e posterior, o que significa que não serão suportados no .NET Framework ou .NET Core 2.2, 2.1, 1.0. isso indica claramente que “o .NET Framework aos poucos será inativado e o .NET Core é o futuro”.

Se você planeja portar aplicativos .NET Framework para o .NET Core, precisará analisar as APIs usadas em seu projeto para ver se é compatível ou não. O .NET Portability Analyzer é uma ferramenta que ajuda a analisar e determinar a flexibilidade do seu aplicativo nas plataformas .NET.

Enfim, muitas novidades estão chegando, e, com certeza vão trazer maior produtividade e uma gama de novos recursos aos desenvolvedores da plataforma .NET.
 


Referências:


José Carlos Macoratti