GaphP

Portable Class Library

Fala pessoal!

Hoje vamos falar sobre a Portable Class Library (PCL) que já possui uma grande utilização no “mundo .net” e não se restringe ao Xamarin.

Basicamente, a Portable Class Library, é um projeto de biblioteca de classes que facilita a criação de aplicativos multiplataformas de maneira mais produtiva reutilizando os componentes desenvolvidos na mesma.

Apresentando a Portable Class Library

A Portable Class Library se limita a ser compatível com as plataformas que se beneficiarão de suas classes. Podemos configurar isso ao criar a Portable Class Library. Como o exemplo abaixo:

Criando uma Portable Class Library

A Portable Class Library a ser criada dará suporte às plataformas selecionadas. Isso significa que todo o código contido neste projeto possuirá dependências comuns entre as plataformas descritas.

No mundo de desenvolvimento mobile, com a existência de várias plataformas, torna-se necessário otimizar o nosso tempo de desenvolvimento e gerenciamento de unidades de código. Como o Xamarin nos permite desenvolver para diversas plataformas utilizando uma única linguagem, o C#, temos um enorme ganho em várias áreas. Aliado a este modelo de desenvolvimento proposto pelo Xamarin, também temos a utilização de PCLs.

Sendo assim, ao desenvolver nossas aplicações, podemos compartilhar nossos códigos entre as plataformas. Existem duas formas de compartilhar nosso código que é utilizando bibliotecas PCL o Shared Asset Projects.

  • PCL –  A Portable Class Library ,como dito anteriormente, é um projeto que é compartilhado entre as plataformas e que contém as particularidades comuns entre elas, que é importante para definir quais plataformas a PCL poderá atender. Em um projeto podem haver vários PCLs.
    • Como benefícios temos:
      • Código compartilhado
      • Facilita a refatoração por refletir em todos os projetos que consumem a PCL
    • Desvantagens:
      • Por ser compartilhado entre múltiplas plataformas, recursos específicos de cada plataformas não podem ser referenciados neste projeto.
      • Alguns recursos como DLLImport ou System.IO.File não estão disponíveis.
  • Shared Asset Projects – É um recurso interessante. Como saída, não produz uma DLL específica, mas sua compilação é feita dentro de cada projeto em que é referenciada. O interessante desta abordagem é a utilização de diretivas específicas para cada plataforma. Observem o exemplo abaixo:
    var sqliteFilename = "TaskDB.db3";
    #if SILVERLIGHT	
    	var path = sqliteFilename;
    #else
    
    #if __ANDROID__
            string libraryPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal); ;
    #else
            string documentsPath = Environment.GetFolderPath (Environment.SpecialFolder.Personal); // Documents folder
    	string libraryPath = Path.Combine (documentsPath, "..", "Library"); // Library folder
    #endif
    

    No exmplo acima, temos algumas definições de variáveis que dependendo da plataforma terá o seu valor sendo definido de formas diferentes;

Com estes dois tipos de projetos temos infinitas possiblidades para desenvolver nossos aplicativos de forma robusta e produtiva. Para ilustrar como o PCL é poderoso, veja o diagrama abaixo:

Gráfico da Portable Class Library no Xamarin

Referência:http://developer.xamarin.com/guides/cross-platform/application_fundamentals/pcl/introduction_to_portable_class_libraries/

No diagrama acima possuimos várias PCLs, cada uma com um objetivo, sendo compartilhada entre diversos projetos de plataformas distintas.

Na criação de um projeto Xamarin.Forms, utilizando o template padrão, já possuímos, basicamente, 4 projetos. Desses, 3 são para plataformas específicas e 1 é um projeto do tipo PCL.

Espero ter esclarecido mais um pouco sobre o PCL e o que ele nos oferece como benefício no desenvolvimento.

Até a próxima.

Portable Class Library 5.00/5 (100.00%) 1 voto

Albert Tanure

Arquiteto de Software com atuação na área de desenvolvimento a 10 anos. Gosto muito de desenvolver, aprender, gadgets e tenho grande disposição para ensinar e compartilhar conhecimento. Atuante na comunidade Xamarin como XSP e comunidade Microsoft como MTAC.

Um comentário em “Portable Class Library

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

%d blogueiros gostam disto: