.NET Core - Libreria di classi portabile

In questo capitolo discuteremo cos'è PCL (Portable Class Library) e anche perché abbiamo bisogno di PCL. Per comprendere questo concetto, apriamo la cartella del progetto della libreria di classi che abbiamo creato nel capitolo precedente.

In questa cartella, puoi vedere che oltre ai file project.json e CS abbiamo anche il file * .xproj, e questo perché Visual Studio imposta il tipo di progetto .NET Core come * .xproj invece di * .csproj.

Come accennato da Microsoft, * .xproj non sarà più disponibile, ma è ancora presente negli strumenti di anteprima 2. Come abbiamo visto, l'applicazione UWP usa * .csproj.

Ora in realtà non è possibile ottenere * .csproj come riferimento e * .xproj e tale funzionalità non verrà implementata perché * .xproj verrà spostato.

Quindi, invece, abbiamo bisogno di una libreria di classi che può essere condivisa tra l'app console e l'app UWP e qui arriva PCL.

Cos'è PCL

Cerchiamo ora di capire cos'è PCL -

  • Il progetto Portable Class Library consente di scrivere e creare assembly gestiti che funzionano su più piattaforme .NET Framework.

  • È possibile creare classi che contengono codice che si desidera condividere in molti progetti, come la logica aziendale condivisa, e quindi fare riferimento a tali classi da diversi tipi di progetti.

  • Può anche aiutarti a creare app e librerie multipiattaforma per piattaforme Microsoft in modo rapido e semplice.

  • Le librerie di classi portatili possono aiutarti a ridurre i tempi ei costi di sviluppo e test del codice.

  • Utilizzare questo tipo di progetto per scrivere e creare assembly .NET Framework portatili, quindi fare riferimento a tali assembly da app destinate a più piattaforme come Windows e Windows Phone e così via.

Ora rimuoviamo la libreria di classi che abbiamo creato da Esplora soluzioni. Allo stesso tempo, eliminalo dalla cartella Soluzione e aggiungi ulteriormente un nuovo elemento del progetto.

Seleziona il Visual C# → Windows modello nel riquadro sinistro e selezionare Libreria di classi (portatile) nel riquadro centrale.

Immettere StringLibrary nel campo del nome e fare clic OK per creare questo progetto.

Ora dobbiamo selezionare i framework di destinazione a cui fare riferimento. Selezioniamo Windows Universal e ASP.NET Core per un momento, quindi lo reindirizzeremo. ClicOK.

Puoi vedere che ha creato un nuovo progetto in formato PCF. Facciamo ora clic con il pulsante destro del mouse sul progetto StringLibrary in Esplora soluzioni e seleziona Proprietà.

Fare clic su Target .NET Platform Standard.

Fare clic su Sì; ora è la stessa libreria di classi con una piccola differenza. La differenza è che può essere utilizzato anche da UWP, perché contiene il file * .csproj anziché * .xproj.

Aggiungiamo ora una nuova classe; per questo, è necessario fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e selezionareAdd → Class...

Seleziona la classe nel riquadro centrale ed entra StringLib.cs nel campo del nome e quindi fare clic su Add. Una volta aggiunta la classe, sostituire il codice seguente nel file 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); 
      } 
   } 
}

Costruiamo questo progetto di libreria di classi portabile e dovrebbe essere compilato senza errori. Ora dobbiamo aggiungere un riferimento a questa libreria di classi portabile nel nostro progetto console. Quindi, espandi FirstApp e fai clic con il pulsante destro del mouse su Riferimenti e selezionaAdd Reference…

Nella finestra di dialogo Gestione riferimenti, selezionare StringLibrary, che è il nostro progetto di libreria di classi portabile, e quindi fare clic su OK.

Puoi vedere che il riferimento StringLibrary viene aggiunto al progetto della console e può essere visto anche nel file project.json.

Ora puoi eseguire nuovamente l'applicazione e vedrai lo stesso output.

Usiamo ora gli altri metodi di estensione della tua libreria di classi portabile nel tuo progetto. La stessa libreria portatile verrà utilizzata anche nell'applicazione UWP.