Xamarin Forms -  Compartilhando código entre Plataformas


 Neste artigo vou apresentar as estratégias de compartilhamendo de código entre plataformas no Xamarin Forms.

O Xamarin.Forms permite que você crie aplicativos que sejam executados em Android, iOS e Windows a partir de um único código base C#. Isso é possível porque, no seu núcleo, o Xamarin.Forms permite o compartilhamento de código entre plataformas de todo o código para a interface do usuário e todo o código que não é específico da plataforma.

Existem diferentes maneiras de compartilhar código entre plataformas, cada um com seus prós e contras. Vejamos as mais importantes:

Compartilhando código com Portable Class Library (PCL)

Como o nome indica, Portable Class Libraries (PCL) são bibliotecas que podem ser consumidas em múltiplas plataformas. Mais especificamente, elas podem ser consumidas em múltiplas plataformas somente se eles direcionar um subconjunto de APIs disponíveis em todas essas plataformas.

As PCLs existem há muitos anos e elas certamente não são exclusivos do Xamarin. Na verdade, elas podem ser usadas ​​em muitos outros
cenários de desenvolvimento. Por exemplo, uma PCL pode ser usada para compartilhar uma arquitetura Model-View-ViewModel entre um projeto WPF e um projeto UWP. As características mais importantes de um PCL são os seguintes:

• Produzem um assembly compilado, reutilizável .dll.
• Podem fazer referência a outras bibliotecas e ter dependências, como pacotes NuGet.
• Podem conter arquivos XAML para a definição da interface do usuário e arquivos C#.
• Não podem expor o código que alavanca APIs específicas de uma determinada plataforma, caso contrário eles não seriam mais portáteis.
• São uma boa escolha quando você precisa implementar padrões arquitetônicos, como MVVM, factory, inversão de controle (IoC) com injeção de dependência e sevice locator.

Compartilhando código com Shared Projects ou projetos compartilhados

Os Shared Projects ou Projetos compartilhados, bem como PCLs, não são específicos do Xamarin e existem há muitos anos. Os projetos compartilhados são essencialmente um sortimento variado de arquivos que podem ser compartilhados com outros projetos.

A seguir, uma lista das características mais importantes de um projeto compartilhado, destacando também a Diferenças de uma PCL:

• Eles não produzem um assembly .dll compilado e reutilizável.
• Não podem fazer referência a outras bibliotecas e ter dependências, como pacotes NuGet.
• Eles podem conter arquivos XAML para a definição da interface do usuário e arquivos C #.
• Eles podem conter o código específico da plataforma que pode usar a compilação condicional e diretivas do pré-processador.

Compartilhando Código com .NET Standard libraries

O .NET Standard fornece um conjunto de especificações formais para APIs que todas as plataformas de desenvolvimento .NET, como o .NET Framework, o .NET Core e o Mono, devem implementar.

Isto permite unificar plataformas .NET e evita a fragmentação futura. Ao criar uma biblioteca padrão .NET, você assegurará que seu código seja executado em qualquer plataforma .NET sem a necessidade de selecionar qualquer destino. Isso também resolve um problema comum com as bibliotecas portáteis, uma vez que todas as bibliotecas portáteis podem segmentar um conjunto diferente de plataformas, o que implica incompatibilidade potencial entre bibliotecas e projetos.

No momento que escrevo este artigo, a versão 2.0 do .NET Standard está disponível com o objetivo de unificar o .NET Framework, .NET Core e Mono.

Com Xamarin.Forms no Visual Studio 2017, a versão 1.3 ou 1.6 talvez seja a escolha mais indicada. O Visual Studio 2017 não inclui o .NET Standard como uma estratégia de compartilhamento de código ao criar uma nova solução Xamarin.Forms. (Até o momento...pois a nova versão do VS 2017 deverá trazer novidades neste quesito)

Atualmente, usando a versão 15.3 do Visual Studio, o que podemos fazer é converter um projeto Portable Class Library em uma biblioteca .NET Standard.

Nas próximas versões do Visual Studio devemos esperar que o .NET Standard venha substituir o projeto PCL.

E a vida eterna é esta: que te conheçam, a ti só, por único Deus verdadeiro, e a Jesus Cristo, a quem enviaste. 
João 17:3

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:


José Carlos Macoratti