Xamarin Forms - Compartilhando código com .NET Standard - I

 Neste artigo eu vou apresentar a nova forma de compartilhar código usando a .NET Standard nas aplicações Xamarin Forms. Esse recurso esta disponível nativamente a partir da versão 15.5 do Visual Studio.

Vou iniciar com a definição de PCL, .NET Standard e .NET Core:

PCL - Bibliotecas que visam um conjunto de plataformas (possuem o "menor denominador comum" de APIs dessas plataformas). Então, ao escrever usando uma PCL, você está dizendo que eu quero atingir a plataforma A, B, C, etc.
.NET Standard -  É um conjunto de API "padrão" em vez de uma plataforma. Então, basicamente, você não se importa com as plataformas, apenas com o padrão (versão 1.3, 1.6 ...), e, seu código funcionará em todas as plataformas que o suportam.
.NET Core - Não confunda o .NET Core com outra versão do framework .NET. Ele é um ambiente de runtime baseado na plataforma .NET que esta em conformidade com a definição da API .NET Standard.

Ao criar um projeto Xamarin Forms você tinha duas opções para compartilhar o código entre as plataformas:

Pois a partir da versão 15.5 do Visual Studio a opção Portable Class Library (PCL) foi substituida pela .NET Standard:

Outra novidade é que agora você pode escolher as plataformas para quais você vai criar o seu projeto.

Acrescente também que agora todos os novos templates de projetos multiplataforma usurão o PackageReference, uma nova maneira de gerenciar pacotes NuGet diretamente no arquivo .csproj. Assim, agora  você só precisa definir os NuGets de nível superior que seu aplicativo consome e não precisa mais lidar com as dependências que seus pacotes fazem referência.

Para gerenciar pacotes, você pode continuar usando o NuGet Package Manager ou editar diretamente o seu .csproj para adicionar :

<ItemGroup>
     <PackageReference Include = "Xamarin.Forms" Version = "2.4.0.282" />
</ ItemGroup>

A .NET Standard como estratégia de compartilhar código

A Biblioteca .NET Standard é uma especificação formal das APIs .NET que se destina a estar disponível em todos os runtimes .NET. A motivação por trás da .NET Standard é estabelecer maior uniformidade no ecossistema .NET. O ECMA 335 continua a estabelecer uniformidade para o comportamento de tempo de execução do .NET, mas não há especificações semelhantes para as bibliotecas de classe base .NET (BCL) para as implementações da biblioteca .NET.

Pense na .NET Standard como uma única biblioteca com uma API uniforme para todas as plataformas .NET incluindo .NET Core. Assim, você agora pode criar uma única biblioteca e usá-la a partir de qualquer runtime que de suporte ao .NET Standard Plataform.

Então agora você pode desenvolver escolhendo a opção .NET Standard, o que amplia as opções de desenvolvimento do seu ambiente Xamarin Forms.

Uma biblioteca de classes .Net Core é baseada no .Net Standard. Se você quiser implementar uma biblioteca portátil no .Net Framework, .Net Core e Xamarin, escolha uma Biblioteca .Net Standard.

Dessa forma, a  .Net Core, o .NET Framework e o Xamarin agora implementam o padrão .Net Standard.(Na versão 2.0)

Concluimos que .Net Core, Xamarin e .Net Framework podem, portanto, ser identificados como sabores do .Net Standard.

E como uma imagem valem mais que mil palavras, tínhamos o seguinte cenário fragmentado :

Com a .NET Standard agora temos :

Implementação da biblioteca .NET Standard permite o compartilhamento de código entre diferentes sabores .NET.

Concluindo :

  • A .NET Standard é um conjunto de APIs que todas as plataformas .NET devem implementar. Isso une as plataformas .NET e evita a fragmentação futura.

  • A .NET Standard resolve o problema de compartilhamento de código para desenvolvedores .NET em todas as plataformas trazendo todas as APIs que você espera e ama em todos os ambientes que você precisa: aplicativos de desktop, aplicativos e jogos móveis e serviços em nuvem:

  • A .NET Standard 2.0 esta implementada pelo .NET Framework, .NET Core e Xamarin. Para o .NET Core, isso adiciona muitas das APIs existentes que foram solicitadas.

  • A .NET Standard 2.0 inclui um limite de compatibilidade para os binários do .NET Framework, aumentando o conjunto de bibliotecas com as quais você pode fazer referência em suas bibliotecas .NET Standard.

Nota:  Lembre-se que quanto maior a versão da .NET Standard mais APIs estão disponíveis, e quanto menor a versão mais plataformas serão atingidas.

Para saber as versões do .NET Standard e as plataformas atingidas bem como o mapeando para do.NET Standard para a PCL acesse este link : https://github.com/dotnet/standard/blob/master/docs/versions.md

No próximo artigo eu vou mostrar como criar uma aplicação Xamarin Forms usando um plugin de terceiro usando no .NET Standard.

'E Jesus lhe disse: Vai, a tua fé te salvou. E logo viu, e seguiu a Jesus pelo caminho. '
Marcos 10:52
 

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 ?

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti