How To Xamarin – Teil 1: „Portable Class Library (PCL)” vs. “Shared Projects“

kommentiert 0
gelesen 151

Bereits bei der Erstellung eines Xamarin-App-Projektes gibt es zwei Auswahlmöglichkeiten: „Portable Class Library (PCL)“ oder „Shared Projects“. Es gibt nur sehr wenige Gründe für die Verwendung von „Shared Projects“ in Xamarin-Forms-Anwendungen. PCL’s sind in den meisten Szenarien die bevorzugte Methode.

„PCL-Projekte“ sind leichter zu pflegen, zu testen und übersichtlicher als „Shared-Projekte“. Der größte Vorteil und Unterschied ist, dass keine Compiler-Direktiven verwendet werden müssen, um dem Compiler zu sagen, welcher Codeabschnitt zu welcher Plattform gehört. Jede Plattform, die unterstützt werden soll, hat in dieser Solution ein eigenes Projekt, das den jeweiligen plattformspezifischen Code beinhaltet. Im Projekt, welches den teilbaren Code beinhaltet, wird eine Referenz zum jeweiligen plattformspezifischen Projekt angelegt, um darauf zugreifen zu können.

„Shared-Projekte“ dagegen können in einem kleinen Projekt eine schöne, brauchbare Lösung sein. Arbeitet man allerdings in einem Entwicklerteam oder an einer umfangreicheren App, kommt es zu Schwierigkeiten mit der Wartbarkeit des Projekts. Bei einem „Shared-Projekt“ wird der plattformspezifische Code in die gleichen Dateien geschrieben, wie der Code der zwischen den Plattformen geteilt werden kann. Um dem Compiler nun zu sagen, welcher Codeabschnitt nur bei iOS/Android/WindowsPhone berücksichtigt werden soll, werden Compiler-Direktiven eingefügt. Als vereinfachtes Beispiel wird hier durch Compiler-Direktive plattformabhängig ein anderer Pfad verwendet:

In meinem nächsten Blog-Beitrag erkläre ich euch, wie ihr die Benutzeroberfläche mit Xamarin auf verschiedene mobile Endgeräte anpassen könnt.

Wer jetzt schon mehr Infos zu Xamarin haben möchte, kann sich auch meinen ausführlichen Bericht dazu durchlesen.

Quelle:

  • https://xamarinhelp.com/portable-class-library-pcl-vs-shared-projects/
Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*Pflichtfelder

*