.NET Core - Bibliothèque de classes portable

Dans ce chapitre, nous discuterons de ce qu'est PCL (Portable Class Library), et aussi pourquoi nous avons besoin de PCL. Pour comprendre ce concept, ouvrons le dossier de projet de bibliothèque de classes que nous avons créé dans le chapitre précédent.

Dans ce dossier, vous pouvez voir qu'en plus des fichiers project.json et CS, nous avons également un fichier * .xproj, et c'est parce que Visual Studio configure le type de projet .NET Core comme * .xproj au lieu de * .csproj.

Comme mentionné par Microsoft, * .xproj disparaîtra, mais il est toujours présent dans l'outillage de l'aperçu 2. Comme nous l'avons vu, cette application UWP utilise le * .csproj.

Maintenant, il n'est en fait pas possible d'obtenir * .csproj comme référence et * .xproj et cette fonctionnalité ne sera pas implémentée parce que * .xproj sera déplacé.

Donc, à la place, nous avons besoin d'une bibliothèque de classes qui peut être partagée entre l'application console et l'application UWP et voici PCL.

Qu'est-ce que PCL

Comprenons maintenant ce qu'est PCL -

  • Le projet Bibliothèque de classes portable vous permet d'écrire et de créer des assemblys gérés qui fonctionnent sur plusieurs plates-formes .NET Framework.

  • Vous pouvez créer des classes qui contiennent du code que vous souhaitez partager dans de nombreux projets, comme la logique métier partagée, puis référencer ces classes à partir de différents types de projets.

  • Il peut également vous aider à créer rapidement et facilement des applications et des bibliothèques multiplateformes pour les plates-formes Microsoft.

  • Les bibliothèques de classes portables peuvent vous aider à réduire le temps et les coûts de développement et de test du code.

  • Utilisez ce type de projet pour écrire et créer des assemblys .NET Framework portables, puis référencer ces assemblys à partir d'applications qui ciblent plusieurs plates-formes telles que Windows et Windows Phone, etc.

Supprimons maintenant la bibliothèque de classes que nous avons créée à partir de l'Explorateur de solutions. En même temps, supprimez-le du dossier Solution et ajoutez un nouvel élément de projet.

Sélectionnez le Visual C# → Windows modèle dans le volet gauche et sélectionnez Bibliothèque de classes (portable) dans le volet central.

Entrez StringLibrary dans le champ de nom et cliquez sur OK pour créer ce projet.

Nous devons maintenant sélectionner les frameworks cibles à référencer. Sélectionnons un instant Windows Universal et ASP.NET Core puis nous le reciblerons. Cliquez surOK.

Vous pouvez voir qu'il a créé un nouveau projet au format PCF. Faisons maintenant un clic droit sur le projet StringLibrary dans l'Explorateur de solutions et sélectionnez Propriétés.

Cliquez sur Target .NET Platform Standard.

Cliquez sur Oui; c'est maintenant la même bibliothèque de classes avec une petite différence. La différence est qu'il peut également être utilisé par UWP, car il contient un fichier * .csproj au lieu de * .xproj.

Ajoutons maintenant une nouvelle classe; pour cela, vous devez faire un clic droit sur le projet dans l'Explorateur de solutions et sélectionnerAdd → Class...

Sélectionnez la classe dans le volet central et entrez StringLib.cs dans le champ de nom, puis cliquez sur Add. Une fois la classe ajoutée, remplacez le code suivant dans le fichier 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); 
      } 
   } 
}

Construisons ce projet de bibliothèque de classes portable et il devrait se compiler sans erreur. Nous devons maintenant ajouter une référence à cette bibliothèque de classes portable dans notre projet de console. Alors, développez FirstApp et cliquez avec le bouton droit sur Références et sélectionnezAdd Reference…

Dans la boîte de dialogue Gestionnaire de références, sélectionnez StringLibrary qui est notre projet de bibliothèque de classes portable, puis cliquez sur OK.

Vous pouvez voir que la référence StringLibrary est ajoutée au projet de console et qu'elle peut également être vue dans le fichier project.json.

Vous pouvez maintenant exécuter à nouveau l'application et vous verrez la même sortie.

Utilisons maintenant les autres méthodes d'extension de votre bibliothèque de classes portable dans votre projet. La même bibliothèque portable sera également utilisée dans votre application UWP.