他の人がすでに書いたように、要するに:
コード(ファイル)レベルでの共有プロジェクトの再利用。フォルダー構造とリソースも考慮に入れます。
アセンブリレベルでのpclの再利用
ここで私が答えからほとんど欠けていたのは、PCLで利用可能な機能の制限に関する情報です。例として、ファイル操作が制限されている(XamarinクロスプラットフォームプロジェクトでFile.IO機能の多くが欠けていた)場合があります。
共有プロジェクトの詳細:
+複数のプラットフォーム(Xamarin iOS、Android、WinPhoneなど)をターゲットにする場合は#ifを使用できます
+各ターゲットプロジェクトで使用可能なすべてのフレームワーク機能(条件付き
でコンパイルする必要があります)oコンパイル時に統合
-やや大きいサイズ結果のアセンブリの
一覧-Visual Studio 2013 Update 2以降が必要
pcl:
+共有アセンブリを生成します+
古いバージョンのVisual Studio(2013 Update 2より前)で使用可能
o動的にリンク
-制限された機能(参照されているすべてのプロジェクトのサブセット)
選択肢がある場合は、共有プロジェクトに参加することをお勧めします。これは一般に、より柔軟で強力です。事前に要件を知っていて、PCLがそれらを満たせる場合は、そのルートを使用することもできます。PCLはまた、プラットフォーム固有のコードを作成できないようにすることで、より明確な分離を強制します(そもそも共有アセンブリに配置するのは適切でない場合があります)。
両方の主な焦点は、複数のプラットフォームをターゲットとする場合です。それ以外の場合は、通常、通常のライブラリ/ dllプロジェクトのみを使用します。