2012-12-10 7 views

Antwort

28

Nachteile von verknüpften Dateien:

  • als Link hinzufügen kann hart sein, besonders zu pflegen, wie Sie mehrere Projekte und viele Quelldateien skalieren. Tooling (z. B. Project Linker für Visual Studio 2010 oder Halten von ALT beim Ziehen in Visual Studio 2012) können dies vereinfachen.
  • Refactoring-Tools funktionieren nicht mit verknüpften Dateien. Wenn Sie beispielsweise eine Klasse oder eine Methode in einer verknüpften Datei umbenennen, aktualisieren Refactoringtools Verweise auf andere verknüpfte Kopien dieser API nicht.
  • Beim Bearbeiten von Code in einer verknüpften Datei zeigt intellisense möglicherweise APIs an, die nicht auf allen Plattformen verfügbar sind, mit denen die Datei verknüpft ist.
  • In Visual Studio erhalten Sie die Meldung "Dieses Dokument wird von einem anderen Projekt geöffnet", wenn Sie versuchen, eine verknüpfte Datei zu öffnen, die bereits von einem anderen Projekt geöffnet wurde.
  • Sie enden mit einer separaten DLL für jede Plattform. Wenn Sie eine wiederverwendbare Bibliothek erstellen, die Sie für andere freigeben möchten, ist es möglicherweise einfacher, sie zu verteilen, wenn nur eine Version vorhanden ist und keine separate für jede Plattform.

Nachteile von Portable Klassenbibliotheken:

  • Sie sind auf APIs beschränkt, die auf allen Plattformen zur Verfügung stehen Sie zielen. Sie können die bedingte Kompilierung (#if-Anweisungen) nicht verwenden, um Unterschiede zwischen den Plattformen zu umgehen
  • Es kann schwierig sein, herauszufinden, welche APIs auf einer bestimmten Kombination von Plattformen unterstützt werden. Hier ist eine Tabelle, die dabei helfen können: Portable Class Library API List

Für einige Hinweise, wie die Vorteile von Portable Klassenbibliotheken zu nehmen, finden Sie unter:

Während ich Teil der Portable Class Libraries bin (als ein Mitglied des PCL-Teams), sind verknüpfte Dateien auch eine völlig gültige Möglichkeit, Code zu teilen und wenn Sie nicht Wenn Sie nicht auf die Nachteile stoßen, dann gehen Sie weiter und verwenden Sie verknüpfte Quelldateien. Ich verwende meistens Portable Class Libraries, aber ich benutze immer noch verlinkte Quelldateien, wenn PCLs nicht passen.

+2

Diese Antwort sieht gut aus. Ich möchte nur hinzufügen, dass die verknüpfte Dateiroute auch Faktor N-Wartungsprobleme hinzufügt. Als ich die verknüpfte Dateiversion von mvvmcross beibehalten habe, war das Hinzufügen einer neuen Plattform eine entmutigende Aussicht, aber jetzt, wo ich auf PCL-Code umgestiegen bin, überlege ich gerne, ein paar neue Plattformen hinzuzufügen - das Hinzufügen ist nicht so groß oder unangenehm eine Aufgabe. – Stuart

+3

Ich habe gelogen ... Es gibt ein paar weitere Dinge, die ich hinzufügen würde - 1. dass die PCL-Route das Testen fördert und das Testen wesentlich erleichtert; 2. Dass die PCL-Route eine gute Architektur fördert, fördert die Verwendung von Interfaces und Dependency-Injection, während das Verknüpfen von Dateien das statische Verknüpfen mit Klassen und #if-Anweisungen fördert, die später zu anderen Builds führen. – Stuart

+0

Wir haben uns überlegt, auf PCL umzusteigen, aber ich denke, es ist wirklich etwas, worüber man vom ersten Tag an nachdenken muss. – iwayneo

Verwandte Themen