.NETCore-ポータブルクラスライブラリ

この章では、PCL(Portable Class Library)とは何か、およびPCLが必要な理由についても説明します。この概念を理解するために、前の章で作成したクラスライブラリプロジェクトフォルダを開いてみましょう。

このフォルダーには、project.jsonファイルとCSファイルに加えて、*。xprojファイルもあることがわかります。これは、VisualStudioが.NETCoreプロジェクトタイプを* .csprojではなく* .xprojとしてセットアップしたためです。

Microsoftが述べたように、*。xprojは廃止されますが、プレビュー2ツールではまだここにあります。すでに説明したように、UWPアプリケーションは* .csprojを使用します。

現在、*。csprojを参照および* .xprojに取得することは実際には不可能であり、*。xprojが移動するため、その機能は実装されません。

その代わりに、コンソールアプリとUWPアプリの間で共有できるクラスライブラリが必要です。PCLが登場します。

PCLとは

PCLとは何かを理解しましょう-

  • Portable Class Libraryプロジェクトを使用すると、複数の.NETFrameworkプラットフォームで動作するマネージアセンブリを作成および構築できます。

  • 共有ビジネスロジックなど、多くのプロジェクト間で共有したいコードを含むクラスを作成し、さまざまなタイプのプロジェクトからそれらのクラスを参照できます。

  • また、Microsoftプラットフォーム用のクロスプラットフォームアプリやライブラリをすばやく簡単に構築するのにも役立ちます。

  • ポータブルクラスライブラリは、コードの開発とテストの時間とコストを削減するのに役立ちます。

  • このプロジェクトタイプを使用して、ポータブル.NET Frameworkアセンブリを作成および構築し、WindowsやWindowsPhoneなどの複数のプラットフォームを対象とするアプリからそれらのアセンブリを参照します。

次に、作成したクラスライブラリをソリューションエクスプローラーから削除します。同時に、Solutionフォルダーから削除し、さらに新しいプロジェクトアイテムを追加します。

を選択 Visual C# → Windows 左側のペインでテンプレートを選択し、中央のペインで[クラスライブラリ(ポータブル)]を選択します。

名前フィールドにStringLibraryと入力し、[ OK このプロジェクトを作成します。

次に、参照するターゲットフレームワークを選択する必要があります。少しの間、WindowsUniversalとASP.NETCoreを選択してから、ターゲットを変更します。クリックOK

PCF形式で新しいプロジェクトが作成されたことがわかります。次に、ソリューションエクスプローラーでStringLibraryプロジェクトを右クリックし、[プロパティ]を選択します。

Target .NET PlatformStandardをクリックします。

[はい]をクリックします。これで同じクラスライブラリになりましたが、わずかな違いが1つあります。違いは、*。xprojの代わりに* .csprojファイルが含まれているため、UWPでも使用できることです。

新しいクラスを追加しましょう。このためには、ソリューションエクスプローラーでプロジェクトを右クリックし、を選択する必要がありますAdd → Class...

中央のペインでクラスを選択し、 StringLib.cs 名前フィールドでクリックします Add。クラスが追加されたら、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); 
      } 
   } 
}

このポータブルクラスライブラリプロジェクトをビルドしてみましょう。エラーなしでコンパイルできます。次に、このポータブルクラスライブラリの参照をコンソールプロジェクトに追加する必要があります。したがって、FirstAppを展開し、[参照]を右クリックして、[参照]を選択します。Add Reference…

[参照マネージャー]ダイアログボックスで、ポータブルクラスライブラリプロジェクトであるStringLibraryを選択し、[ OK

StringLibrary参照がコンソールプロジェクトに追加され、project.jsonファイルでも確認できることがわかります。

これでアプリケーションを再度実行でき、同じ出力が表示されます。

ここで、プロジェクトでポータブルクラスライブラリの他の拡張メソッドを使用しましょう。同じポータブルライブラリがUWPアプリケーションでも使用されます。