.NET Core - przenośna biblioteka klas

W tym rozdziale omówimy, czym jest PCL (przenośna biblioteka klas), a także dlaczego potrzebujemy języka PCL. Aby zrozumieć tę koncepcję, otwórzmy folder projektu biblioteki klas, który utworzyliśmy w poprzednim rozdziale.

W tym folderze widać, że oprócz plików project.json i CS mamy również plik * .xproj, a to dlatego, że typ projektu programu Visual Studio .NET Core to * .xproj zamiast * .csproj.

Jak wspomniała firma Microsoft, * .xproj zostanie wycofany, ale nadal jest dostępny w narzędziach w wersji zapoznawczej 2. Jak już omówiliśmy, aplikacja UWP używa * .csproj.

Teraz w rzeczywistości nie jest możliwe pobranie * .csproj do odniesienia i * .xproj, a ta funkcja nie zostanie zaimplementowana, ponieważ * .xproj zostanie usunięty.

Zamiast tego potrzebujemy biblioteki klas, którą można udostępniać między aplikacją konsoli i aplikacją UWP, a tutaj jest PCL.

Co to jest PCL

Zrozummy teraz, czym jest PCL -

  • Projekt Portable Class Library umożliwia pisanie i tworzenie zestawów zarządzanych, które działają na więcej niż jednej platformie .NET Framework.

  • Możesz tworzyć klasy zawierające kod, który chcesz udostępniać w wielu projektach, na przykład udostępnioną logikę biznesową, a następnie odwoływać się do tych klas z różnych typów projektów.

  • Może również pomóc w szybkim i łatwym tworzeniu aplikacji i bibliotek wieloplatformowych dla platform firmy Microsoft.

  • Przenośne biblioteki klas mogą pomóc zredukować czas i koszty tworzenia i testowania kodu.

  • Użyj tego typu projektu, aby pisać i tworzyć przenośne zestawy .NET Framework, a następnie odwoływać się do tych zestawów z aplikacji przeznaczonych dla wielu platform, takich jak Windows i Windows Phone itp.

Usuńmy teraz bibliotekę klas, którą utworzyliśmy z Eksploratora rozwiązań. W tym samym czasie usuń go z folderu Solution i dodatkowo dodaj nowy element projektu.

Wybierz Visual C# → Windows szablon w lewym okienku i wybierz Biblioteka klas (przenośna) w środkowym okienku.

Wpisz StringLibrary w polu nazwy i kliknij OK aby stworzyć ten projekt.

Teraz musimy wybrać ramy docelowe do odniesienia. Wybierzmy na chwilę Windows Universal i ASP.NET Core, a następnie przekierujemy go. KliknijOK.

Możesz zobaczyć, że utworzył nowy projekt w formacie PCF. Teraz kliknij prawym przyciskiem myszy projekt StringLibrary w Eksploratorze rozwiązań i wybierz opcję Właściwości.

Kliknij docelowy standard platformy .NET.

Kliknij Tak; jest to teraz ta sama biblioteka klas z jedną drobną różnicą. Różnica polega na tym, że może być również używany przez UWP, ponieważ zawiera plik * .csproj zamiast * .xproj.

Dodajmy teraz nową klasę; w tym celu kliknij prawym przyciskiem myszy projekt w Eksploratorze rozwiązań i wybierzAdd → Class...

Wybierz klasę w środkowym okienku i wejdź StringLib.cs w polu nazwy, a następnie kliknij Add. Po dodaniu klasy zamień następujący kod w pliku 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); 
      } 
   } 
}

Zbudujmy ten projekt przenośnej biblioteki klas i powinien skompilować się bez błędów. Teraz musimy dodać odniesienie do tej przenośnej biblioteki klas w naszym projekcie konsoli. Rozwiń więc FirstApp i kliknij prawym przyciskiem myszy Referencje i wybierzAdd Reference…

W oknie dialogowym Menedżer odwołań wybierz opcję StringLibrary, która jest naszym projektem przenośnej biblioteki klas, a następnie kliknij przycisk OK.

Możesz zobaczyć, że odwołanie StringLibrary jest dodawane do projektu konsoli i można je również zobaczyć w pliku project.json.

Możesz teraz ponownie uruchomić aplikację i zobaczysz te same dane wyjściowe.

Użyjmy teraz innych metod rozszerzających twojej przenośnej biblioteki klas w twoim projekcie. Ta sama przenośna biblioteka będzie również używana w aplikacji UWP.