.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.