Neste artigo veremos os conceitos do compartilhando de código na plataforma .NET Core. |
Com o advento do .NET Core a Microsoft agora possui um framework multiplataforma onde podemos desenvolver aplicativos para três frameworks e plataformas diferentes :
.NET Framework
.NET Core
Xamarin
O .NET Framework é usado para desenvolvimento de aplicações Windows usando Windows Forms , WPF e de aplicações Web usando ASP .NET MVC.
O .NET Core é open-source e multiplataforma e suporta UWP e as bibliotecas da ASP .NET Core. A UWP é usada para criar aplicação Windows 10 e a ASP .NET Core é usada para criar aplicações Web para Windows, Linux e Mac.
O Xamarin é um framework que permite criar aplicações nativas para Android, iOS e Windows Phone.(Alguém ai usa Windows Phone)
Esses
frameworkss usam bibliotecas de classes de frameworks diferentes. Isso significa
que o código escrito em um framework não pode ser usado com os outros
framewowks. Por exemplo, um aplicativo console desenvolvido com o .NET Framework
não pode ser executado no .NET Core ou vice-versa. Assim, o compartilhamento de
código não é permitido.
Seria legal escrever código uma vez e compartilhar com outros aplicativos com
diferentes frameworks .NET.
Não é mesmo ?
Para resolver esse problema de compartilhamento de código, temos três abordagens a seguir:
Criar uma biblioteca de classes portátil (PCL) para compartilhar código com outras estruturas .NET não é uma novidade na plataforma .NET.
O tipo de projeto Portable Class Library ou biblioteca de classes portátil no Visual Studio ajudou a criar aplicativos para multiplas plataformas e bibliotecas para plataformas da Microsoft de forma rápida e fácil.
Usar a abordagem PCL pode ajudar a reduzir o tempo e os custos com desenvolvimento e testes de código. Usávamos esse tipo de projeto para gravar e compilar assemblies .NET Framework portáteis e, em seguida, referenciar os assemblies de aplicativos destinados a várias plataformas, como o .NET Framework, iOS ou Mac.
Essa abordagem era muito usada para criar projetos Xamarin Forms antes do advento do .NET Standard 2.0.
No Visual Studio 2019 agora temos diversas opções conforme mostra a figura a seguir:
Atualmente a estratégia de compartilhamento de código mais indica é o .NET Standard.
O .NET Standard é uma especificação formal de APIs da plataforma .NET que devem estar disponíveis em todas as implementações do .NET. A motivação por trás do .NET Standard é estabelecer maior uniformidade no ecossistema do .NET. A especificação é mantida por implementadores do .NET, especificamente Microsoft (inclui o .NET Framework, .NET Core e Mono) e Unity.
O .NET Standard permite os seguintes cenários:
As diversas implementações da plataforma .NET se destinam a versões específicas do .NET Standard. Cada versão de implementação do .NET anuncia a versão mais alta do .NET Standard a qual ela dá suporte, uma afirmação que significa que também há suporte para versões anteriores.
Por exemplo, o .NET Framework 4.6 implementa o .NET Standard 1.3, o que significa que ele expõe todas as APIs definidas nas versões 1.0 a 1.3 do .NET Standard. Da mesma forma, o .NET Framework 4.6.1 implementa o .NET Standard 1.4, enquanto o .NET Core 1.0 implementa o .NET Standard 1.6.
Qual versão do .NET Standard usar ?
Ao escolher uma versão do .NET Standard, você deve considerar a seguinte compensação:
Em geral, a Microsoft recomenda que você direcione para a versão menos recente possível do .NET Standard. Portanto, depois de localizar a versão mais recente do .NET Standard para a qual você pode direcionar, execute estas etapas:
.NET Standard e PCL
O .NET Standard é o substituto das PCLs (Bibliotecas de classe portáteis) , e aprimora a experiência de criar bibliotecas portáteis, selecionando um BCL padrão e estabelecendo maior uniformidade entre as implementações do .NET como resultado. Uma biblioteca direcionada ao .NET Standard é uma PCL ou uma “PCL baseada no .NET Standard”. PCLs existentes são "PCLs baseadas em perfil".
Os perfis do .NET Standard e da PCL foram criados para finalidades semelhantes, mas também diferem de maneiras básicas.
Semelhanças:
Diferenças:
O .NET Standard é compatível com um subconjunto de perfis de PCL. O .NET Standard 1.0, 1.1 e 1.2 se sobrepõem, cada um, com um conjunto de perfis de PCL.
Na próxima parte do artigo veremos como atender múltiplos Frameworks.
(disse Jesus) - "Porque por tuas palavras serás
justificado, e por tuas palavras serás condenado."
Mateus 12:37
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
NET Core - Padrão Repositório - Macoratti
Conceitos - .NET Framework versus .NET Core - Macoratti
NET Core ou .NET Framework - Macoratti
NET Core 3.0 e Visual Studio 2019 - Macoratti
https://docs.microsoft.com/pt-br/dotnet/standard/net-standard