2012-12-10 10 views

答えて

28

短所:あなたは複数のプロジェクトと多くのソースファイルに拡張、特にとして、維持するのは難しいことができ

  • はリンクとして追加します。ツール(Visual Studio 2010のプロジェクトリンカーやVisual Studio 2012でドラッグしながらAltキーを押しているなど)を使用すると、これを簡単に行うことができます。
  • リファクタリングツールはリンクファイルでは機能しません。たとえば、リンクされたファイルでクラスまたはメソッドの名前を変更すると、リファクタリングツールはそのAPIの他のリンクされたコピーへの参照を更新しません。
  • リンクされたファイルでコードを編集すると、ファイルがリンクされているすべてのプラットフォームで利用できないAPIが表示されることがあります。
  • Visual Studioでは、別のプロジェクトによって既に開かれているリンクファイルを開こうとすると、「このドキュメントは別のプロジェクトによって開かれています」というメッセージボックスが表示されます。
  • 各プラットフォームごとに別々のDLLが作成されます。再利用可能なライブラリを作成して他の人と共有したい場合は、プラットフォームごとに別々のバージョンではなく、バージョンが1つだけあれば配布する方が簡単かもしれません。ポータブルクラスライブラリの

短所:

ポータブルクラスライブラリを活用する方法についていくつかのガイダンスについては、以下を参照してください。

私はポータブルクラスライブラリ(PCLチームのメンバーとして)の一部ですが、リンクされたファイルもコードを共有する完全な有効な方法です。その欠点に気付かないようにしてください。そして、リンクされたソースファイルを使用してください。私は主にポータブルクラスライブラリを使用していますが、PCLが適合しない場合でもリンクされたソースファイルを使用します。

+2

この回答は素晴らしいと思います。私が追加したのは、リンクされたファイルルートにも要因Nのメンテナンスの問題が追加されるということだけです。私がmvvmcrossのリンクファイルバージョンを維持するために使用したときに、新しいプラットフォームを追加するのは難しい見通しでしたが、今ではPCLコードに切り替えました。新しいプラットフォームをいくつか追加することを喜んで考えています - それらを追加することは、仕事。 – Stuart

+3

私は嘘をつきました...私が追加したいと思うことがいくつかあります:1.pclルートはテストを奨励し、テストを大幅に容易にします。 2. pclルートは良いアーキテクチャを奨励します。これはインターフェイスと依存性注入の使用を奨励しますが、ファイルリンクは静的なクラスへのリンクと後で他のビルドを壊す#ifステートメントを促します。 – Stuart

+0

私はPCLに変換してみましたが、実際には1日目から考える必要があると思います。 – iwayneo

関連する問題