.NET Core - Biblioteca de Classes Portátil

Neste capítulo, discutiremos o que é PCL (Biblioteca de Classes Portátil) e também por que precisamos de PCL. Para entender esse conceito, vamos abrir a pasta do projeto da biblioteca de classes que criamos no capítulo anterior.

Nesta pasta, você pode ver que, além dos arquivos project.json e CS, também temos o arquivo * .xproj, e isso porque o Visual Studio configurou o tipo de projeto .NET Core como * .xproj em vez de * .csproj.

Conforme mencionado pela Microsoft, * .xproj será removido, mas ainda está aqui nas ferramentas de visualização 2. Como vimos, esse aplicativo UWP usa o * .csproj.

Agora, na verdade, não é viável fazer com que * .csproj faça referência e * .xproj e essa funcionalidade não será implementada porque * .xproj será removido.

Em vez disso, precisamos de uma biblioteca de classes que pode ser compartilhada entre o aplicativo de console e o aplicativo UWP e aí vem o PCL.

O que é PCL

Vamos agora entender o que é PCL -

  • O projeto Biblioteca de Classes Portátil permite que você escreva e crie assemblies gerenciados que funcionam em mais de uma plataforma .NET Framework.

  • Você pode criar classes que contenham o código que deseja compartilhar em muitos projetos, como lógica de negócios compartilhada e, em seguida, fazer referência a essas classes de diferentes tipos de projetos.

  • Ele também pode ajudá-lo a criar aplicativos e bibliotecas de plataforma cruzada para plataformas Microsoft de forma rápida e fácil.

  • Bibliotecas de classes portáteis podem ajudá-lo a reduzir o tempo e os custos de desenvolvimento e teste de código.

  • Use este tipo de projeto para escrever e construir assemblies portáteis do .NET Framework e, em seguida, fazer referência a esses assemblies de aplicativos que visam várias plataformas, como Windows e Windows Phone, etc.

Vamos agora remover a biblioteca de classes que criamos do Solution Explorer. Ao mesmo tempo, exclua-o da pasta Solução e adicione um novo item de projeto.

Selecione os Visual C# → Windows modelo no painel esquerdo e selecione Class Library (Portable) no painel do meio.

Insira StringLibrary no campo do nome e clique em OK para criar este projeto.

Agora precisamos selecionar as estruturas de destino para fazer referência. Vamos selecionar Windows Universal e ASP.NET Core por um momento, então vamos redirecioná-lo. CliqueOK.

Você pode ver que foi criado um novo projeto em formato PCF. Vamos agora clicar com o botão direito do mouse no projeto StringLibrary no Gerenciador de Soluções e selecionar Propriedades.

Clique em Target .NET Platform Standard.

Clique em Sim; agora é a mesma biblioteca de classes com uma pequena diferença. A diferença é que ele também pode ser usado pela UWP, porque contém o arquivo * .csproj em vez de * .xproj.

Vamos agora adicionar uma nova classe; para isso, você precisa clicar com o botão direito no projeto no Solution Explorer e selecionarAdd → Class...

Selecione a classe no painel do meio e digite StringLib.cs no campo do nome e clique em Add. Depois que a classe for adicionada, substitua o código a seguir no arquivo StringLib.cs.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
  
namespace StringLibrary { 
   public static class StringLib { 
      public static bool StartsWithUpper(this String str) { 
         if (String.IsNullOrWhiteSpace(str)) 
            return false; 
         Char ch = str[0]; 
         return Char.IsUpper(ch); 
      } 
      public static bool StartsWithLower(this String str) { 
         if (String.IsNullOrWhiteSpace(str)) 
            return false; 
         Char ch = str[0]; 
         return Char.IsLower(ch); 
      } 
      public static bool StartsWithNumber(this String str) { 
         if (String.IsNullOrWhiteSpace(str)) 
            return false; 
         Char ch = str[0]; 
         return Char.IsNumber(ch); 
      } 
   } 
}

Vamos construir este projeto de biblioteca de classes portátil e ele deve ser compilado sem erros. Agora precisamos adicionar referência a esta biblioteca de classes portátil em nosso projeto de console. Portanto, expanda FirstApp e clique com o botão direito em References e selecioneAdd Reference…

Na caixa de diálogo Reference Manager, selecione StringLibrary, que é o nosso projeto de biblioteca de classes portátil, e clique em OK.

Você pode ver que a referência StringLibrary é adicionada ao projeto do console e também pode ser vista no arquivo project.json.

Agora você pode executar o aplicativo novamente e verá a mesma saída.

Vamos agora usar os outros métodos de extensão de sua biblioteca de classes portátil em seu projeto. A mesma biblioteca portátil também será consumida em seu aplicativo UWP.