Portable Class Libraryの導入により、開発者は複数のプラットフォーム間で互換性のある単一のライブラリをリリースできます。これの欠点は、PCLが、指定されたすべてのプラットフォーム間で互換性のあるクラスの最も低い共通セットに自分自身を減らす必要があることです。
特定のプラットフォームの長所と機能を試してみたい場合(または特定のプラットフォームにのみ存在するクラスにアクセスしたい場合)、次のいずれかを実行する必要があると思います。
- 「ベース」クラスのセットをポータブルクラスライブラリとしてリリースし、それに基づいてプラットフォーム固有のライブラリを付属させます。
- 1つの例として、MVVMライブラリがあります。共通の基本クラスを単一のポータブルクラスライブラリ(「MyCustomMvvm.dll」という名前)としてリリースし、「MyCustomMvvm.Extras.WPF.dll」および「MyCustomMvvm.Extras」の形式でいくつかの追加のプラットフォーム機能をリリースします。 .WP7.dll、 "など...または:
- 「リンクされた」ソースファイルと#ifステートメントを使用してプラットフォーム固有の機能を条件付きでコンパイルし、プラットフォームごとに個別のプロジェクトを保持します。
- この例では、すべてのライブラリのファイル名は同じ( "MyCustomMvvm.dll")ですが、ソリューション内のプラットフォーム固有のプロジェクトを使用して構築された、プラットフォームごとに個別のコピーがあります。
私の質問は:それらは2つのオプションだけですか?明らかに「より良い」オプションはありますか?