.NET Core - Portable Class Library

In diesem Kapitel werden wir diskutieren, was PCL (Portable Class Library) ist und warum wir PCL benötigen. Um dieses Konzept zu verstehen, öffnen wir den Klassenordner-Projektordner, den wir im vorherigen Kapitel erstellt haben.

In diesem Ordner können Sie sehen, dass wir neben den Dateien project.json und CS auch die Datei * .xproj haben. Dies liegt daran, dass Visual Studio den .NET Core-Projekttyp als * .xproj anstelle von * .csproj einrichtet.

Wie von Microsoft erwähnt, wird * .xproj verschwinden, aber es ist immer noch hier in der Vorschau 2. Wie wir bereits erwähnt haben, verwendet die UWP-Anwendung die * .csproj.

Jetzt ist es tatsächlich nicht möglich, * .csproj als Referenz und * .xproj zu erhalten, und diese Funktionalität wird nicht implementiert, da * .xproj ausgezogen wird.

Stattdessen benötigen wir eine Klassenbibliothek, die von der Konsolen-App und der UWP-App gemeinsam genutzt werden kann. Hier kommt PCL.

Was ist PCL?

Lassen Sie uns jetzt verstehen, was PCL ist -

  • Mit dem Projekt Portable Class Library können Sie verwaltete Assemblys schreiben und erstellen, die auf mehr als einer .NET Framework-Plattform funktionieren.

  • Sie können Klassen erstellen, die Code enthalten, den Sie für viele Projekte freigeben möchten, z. B. gemeinsam genutzte Geschäftslogik, und dann auf diese Klassen aus verschiedenen Projekttypen verweisen.

  • Sie können damit auch schnell und einfach plattformübergreifende Apps und Bibliotheken für Microsoft-Plattformen erstellen.

  • Mit tragbaren Klassenbibliotheken können Sie Zeit und Kosten für die Entwicklung und das Testen von Code reduzieren.

  • Verwenden Sie diesen Projekttyp, um tragbare .NET Framework-Assemblys zu schreiben und zu erstellen, und verweisen Sie dann auf diese Assemblys aus Apps, die auf mehrere Plattformen wie Windows und Windows Phone usw. abzielen.

Entfernen wir nun die von uns erstellte Klassenbibliothek aus dem Projektmappen-Explorer. Löschen Sie es gleichzeitig aus dem Ordner "Lösung" und fügen Sie ein neues Projektelement hinzu.

Wähle aus Visual C# → Windows Vorlage im linken Bereich und wählen Sie im mittleren Bereich die Option Klassenbibliothek (tragbar).

Geben Sie StringLibrary in das Namensfeld ein und klicken Sie auf OK um dieses Projekt zu erstellen.

Jetzt müssen wir die Ziel-Frameworks auswählen, auf die verwiesen werden soll. Lassen Sie uns für einen Moment Windows Universal und ASP.NET Core auswählen, dann werden wir es neu ausrichten. KlickenOK.

Sie können sehen, dass ein neues Projekt im PCF-Format erstellt wurde. Klicken Sie jetzt im Projektmappen-Explorer mit der rechten Maustaste auf das StringLibrary-Projekt und wählen Sie Eigenschaften.

Klicken Sie auf den Target .NET Platform Standard.

Klicken Sie auf Ja. Es ist jetzt dieselbe Klassenbibliothek mit einem kleinen Unterschied. Der Unterschied besteht darin, dass es auch von UWP verwendet werden kann, da es die Datei * .csproj anstelle von * .xproj enthält.

Fügen wir nun eine neue Klasse hinzu. Dazu müssen Sie im Projektmappen-Explorer mit der rechten Maustaste auf Projekt klicken und auswählenAdd → Class...

Wählen Sie im mittleren Bereich die Klasse aus und geben Sie ein StringLib.cs in das Namensfeld und dann auf klicken Add. Ersetzen Sie nach dem Hinzufügen der Klasse den folgenden Code in der Datei 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); 
      } 
   } 
}

Lassen Sie uns dieses tragbare Klassenbibliotheksprojekt erstellen und es sollte fehlerfrei kompiliert werden. Jetzt müssen wir in unserem Konsolenprojekt einen Verweis auf diese tragbare Klassenbibliothek hinzufügen. Erweitern Sie also FirstApp, klicken Sie mit der rechten Maustaste auf Referenzen und wählen SieAdd Reference…

Wählen Sie im Dialogfeld Referenzmanager die Option StringLibrary aus, bei der es sich um unser portables Klassenbibliotheksprojekt handelt, und klicken Sie dann auf OK.

Sie können sehen, dass die StringLibrary-Referenz zum Konsolenprojekt hinzugefügt wird und auch in der Datei project.json angezeigt wird.

Sie können die Anwendung jetzt erneut ausführen und sehen dieselbe Ausgabe.

Lassen Sie uns jetzt die anderen Erweiterungsmethoden Ihrer tragbaren Klassenbibliothek in Ihrem Projekt verwenden. Dieselbe tragbare Bibliothek wird auch in Ihrer UWP-Anwendung verwendet.