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.