ドキュメントが少しわかりにくいので、ここで少し明確にしようとしました。
Portable Classライブラリは、プログラマーがXbox 360、Windows Phone、Silverlight、.NET Framework(4以降)などの複数のプラットフォームで実行されるプロジェクトを作成できるように構築されています。これは、選択したターゲットプラットフォームでサポートされていない特定のAPIを省略することで実行され、.NetFrameworkの使用可能な機能の一部が失われます。
つまり、Portable class library
とNormalのどちらを選択するclass library
かは、プロジェクトのターゲットプラットフォームによって異なります。アプリをWindowsオペレーティングシステムを搭載したXboxおよびデスクトップコンピューターで動作させたい場合は、時間を節約してPCLを使用することをお勧めします。ただし、通常のクラスライブラリで問題なく動作します。
詳細については、ドキュメントページをご覧ください。
現在、PCLに取って代わる.NetStandardと呼ばれる新しいオープンソーステクノロジーがあります。.NET Standardは、デスクトップアプリケーション、モバイルアプリとゲーム、クラウドサービスなど、必要な環境全体に期待し、愛するすべてのAPIを提供することで、すべてのプラットフォームにわたる.NET開発者のコード共有の問題を解決します。
- .NET Standardは、すべての.NETプラットフォームが実装する必要のあるAPIのセットです。これにより、.NETプラットフォームが統合され、将来の断片化が防止されます。
- .NET Standard 2.0は、.NET Framework、.NET Core、およびXamarinによって実装されます。.NET Coreの場合、これにより、要求された既存のAPIの多くが追加されます。
- .NET Standard 2.0には、.NET Frameworkバイナリ用の互換性シムが含まれており、.NETStandardライブラリから参照できるライブラリのセットが大幅に増えています。
- .NET Standardは、マルチプラットフォームの.NETライブラリを構築するためのツールストーリーとして、ポータブルクラスライブラリ(PCL)に取って代わります。
.NET Standard APIの定義は、GitHubのdotnet/standardリポジトリで確認できます。
参照