Dotnet-core-portable-class-library
.NET Core-ポータブルクラスライブラリ
この章では、PCL(Portable Class Library)とは何か、またPCLが必要な理由について説明します。 この概念を理解するために、前の章で作成したクラスライブラリプロジェクトフォルダーを開きましょう。
このフォルダーには、project.jsonファイルとCSファイルに加えて* .xprojファイルもあります。これは、Visual Studioが.NET Coreプロジェクトタイプを* .csprojではなく* .xprojに設定しているためです。
Microsoftが述べたように、。xprojは廃止されますが、まだプレビュー2ツールにあります。 先ほど説明したように、UWPアプリケーションは .csprojを使用します。
- .csprojを参照して* .xprojを取得することは実際には不可能であり、*。xprojがなくなるため、その機能は実装されません。
そのため、代わりにコンソールアプリとUWPアプリの間で共有できるクラスライブラリが必要です。ここにPCLがあります。
PCLとは
ここで、PCLが何であるかを理解しましょう-
- Portable Class Libraryプロジェクトを使用すると、複数の.NET Frameworkプラットフォームで動作するマネージアセンブリを記述およびビルドできます。
- 共有ビジネスロジックなど、多くのプロジェクトで共有するコードを含むクラスを作成し、さまざまなタイプのプロジェクトからそれらのクラスを参照できます。
- また、Microsoftプラットフォーム用のクロスプラットフォームアプリとライブラリをすばやく簡単に構築するのにも役立ちます。
- ポータブルクラスライブラリは、コードの開発とテストの時間とコストを削減するのに役立ちます。
- このプロジェクトタイプを使用して、ポータブル.NET Frameworkアセンブリを記述およびビルドし、WindowsやWindows Phoneなどの複数のプラットフォームを対象とするアプリからそれらのアセンブリを参照します。
ソリューションエクスプローラーから作成したクラスライブラリを削除しましょう。 同時に、ソリューションフォルダーから削除し、さらに新しいプロジェクトアイテムを追加します。
左ペインで Visual C#→Windows テンプレートを選択し、中央ペインで[クラスライブラリ(ポータブル)]を選択します。
名前フィールドにStringLibraryと入力し、[OK]をクリックしてこのプロジェクトを作成します。
次に、参照するターゲットフレームワークを選択する必要があります。 しばらくの間、Windows UniversalとASP.NET Coreを選択してから、ターゲットを変更します。 OK をクリックしてください。
PCF形式で新しいプロジェクトが作成されていることがわかります。 ソリューションエクスプローラーでStringLibraryプロジェクトを右クリックし、[プロパティ]を選択します。
Target .NET Platform Standardをクリックします。
[はい]をクリックします。現在は同じクラスライブラリですが、わずかな違いが1つあります。 違いは、。xprojの代わりに .csprojファイルが含まれているため、UWPでも使用できることです。
新しいクラスを追加しましょう。そのためには、ソリューションエクスプローラーでプロジェクトを右クリックし、[追加]→[クラス…]を選択する必要があります。*
中央のペインでクラスを選択し、名前フィールドに StringLib.cs と入力して、[追加]をクリックします。 クラスを追加したら、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を展開して[参照設定]を右クリックし、[参照の追加…]を選択します
[参照マネージャー]ダイアログボックスで、ポータブルクラスライブラリプロジェクトであるStringLibraryを選択し、[OK]をクリックします。
StringLibrary参照がコンソールプロジェクトに追加され、project.jsonファイルでも参照できることがわかります。
これで、アプリケーションを再度実行でき、同じ出力が表示されます。
プロジェクトでポータブルクラスライブラリの他の拡張メソッドを使用してみましょう。 UWPアプリケーションでも同じポータブルライブラリが使用されます。