Bem-Vindo .NET 5 !

Neste artigo vou apresentar as diferenças básicas entre o .NET Framework o .NET Core. e o .NET 5.

.NET Framework

Por muitos anos o 'carro chefe' da plataforma .NET foi  .NET Framework que deva suporte a um modelo de programação abrangente e integrado do sistema operacional Windows para a construção de aplicativos de última geração usando recursos como Dynamic Language Runtime (DLR), Common Language Runtime (CLR), Biblioteca de Classes Portátil, Extensão Paralela, Base Class Library (BCL) e WinRT.

Abaixo vemos uma figura mostrando a arquitetura básica do .NET Framework:

Assim o .NET Framework oferece tudo o que o desenvolvedor da plataforma .NET precisa mas o desenvolvimento fica restrito ao ambiente Windows.

.NET Core

Em 2014/2015 a Microsoft lançou o .NET Core que foi inicialmente uma adição ao .NET Framework que era muito popular estendendo a capacidade de seu uso e permitindo vários ajustes e novas funcionalidades sendo que a principal característica é ser multiplataforma permitindo a sua utilização no Windows no Linux e no Mac.

Assim a partir do .NET Core tínhamos os seguintes ambientes de desenvolvimento:

Assim podemos resumir na figura abaixo o diagrama resumido da arquitetura da plataforma .NET atual até o dia 10 de novembro de 2020:

Nesse cenário tínhamos diferentes versões do .NET que funcionavam em muitas plataformas : Mono, .NET Framework, .NET Core, Xamarin.iOS, Xamarin.Android, etc.

Com as diferentes versões do .NET em execução em todas as várias plataformas, tem sido batalha árdua manter a consistência entre as diferentes versões.

Para minimizar  esse problema a Microsoft resolveu fazer a unificação dos frameworks criando o .NET Standard com o objetivo de ter um conjunto de APIs que uma versão do .NET implementasse e, em seguida, a biblioteca pudesse ser executada em qualquer uma das estruturas.

Bem-Vindo .NET 5.0

No dia 10 de novembro de 2020 a Microsoft lançou oficialmente o .NET 5.0 sendo a primeira versão principal do .NET Core após a versão 3.1.

O objetivo do .NET 5.0 é realizar a unificação do ambiente .NET em uma única plataforma e assim permitir que um grupo muito maior de desenvolvedores migre seu código e aplicativos do .NET Framework para o .NET 5.0.

Com o .NET 5, a ideia é criar uma Base Class Library (BCL) compartilhada que terá diferentes máquinas virtuais de tempo de execução:  MonoVM e CoreCLR

A ideia é que você pode ter substituições pontuais com as diferentes runtime VMs  mas será tudo apenas um único .NET.

Como parte do .NET 5.0 e 6.0, o objetivo é realizar a unificação da plataforma .NET em uma experiência de produto único, permitindo que você escolha apenas as partes da plataforma .NET que deseja usar.

Se você deseja segmentar Mobile e não WebAssembly, não é necessário baixar as ferramentas WebAssembly e vice-versa. Mesmo com ASP.NET Core e WPF, você também terá uma maneira muito mais fácil de adquirir todas as ferramentas .NET e criar e executar os pacotes de tempo de execução necessários na linha de comando.

Na figura a seguir temos uma visão da proposta da unificação que o .NET 5.0 inicia:

O nome .NET 5.0 foi usando ao invés de .NET Core 4.0 por dois motivos:

  1. Os números de versão 4.x foram ignorados para evitar confusão com o .NET Framework 4.x;
  2. O nome "Core" foi removido para enfatizar que esta é a principal implementação do .NET no futuro.;

O .NET 5.0 oferece suporte a mais tipos de aplicativos e plataformas do que o .NET Core ou .NET Framework.

Assim, a ASP.NET Core 5.0 é baseado no .NET 5.0, mas mantém o nome "Core" para evitar confundi-la com a ASP.NET MVC 5.

Da mesma forma, o Entity Framework Core 5.0 mantém o nome "Core" para evitar confusão com o Entity Framework 5 e 6.

Para usar os recursos do .NET core você pode usar :

Destacando que:

Além de ser open source, de agregar muitos novos recursos e melhoramentos o .NET 5 é mais rápido e usa os últimos protocolos de segurança permitindo uma integração perfeita com diversos provedores.

Como desenvolvedor o seu fluxo de trabalho não terá alteração alguma, basta atualizar o VS 2019 para a versão 16.8 e o seu ambiente para .NET 5.0 estará preparado para o desenvolvimento com ASP .NET Core 5.0, EF Core 5.0, Xamarin Forms e demais recursos da plataforma .NET.

 

Referências:


José Carlos Macoratti