Shared Project

Eintrag zuletzt aktualisiert am: 08.07.2014

Shared Project (alias Shared Asset Project) ist ein neuer Projekttyp für gemeinsamen Code und andere Artifakte in mehreren Projekten. Shared Project wurden in Visual Studio 2013 Update 2 eingeführt wurde als Alternative zur Portable Class Library (PCL).

Es geht um die Herausforderung, dass es inzwischen zahlreiche Varianten von Microsoft .NET gibt (.NET Framework, Silverlight, .NET für Windows Apps, Xamarin, .NET für XBox, etc.). Eine Anwendung/App für alle diese .NET-Varianten in einem Visual Studio-Projekt zu schaffen, ist unmöglich.

Der Ansatz der Portable Class Library (PCL) ist es, nur den kleinsten gemeinsamen Nenner aller .NET-Varianten in einem Projekt zu haben. Diese PCl wird in eine DLL kompiliert, die auf allen Plattformen läuft. Darüberhinaus gibt es spezifische Projekte für jede Zielplattform. Die spezifischen Projekte referenzieren die PCL. Leider sind PCLs sehr eingeschränkt, weil sie keinerlei spezifischen Code für eine Plattform enthalten können.

Beim Shared Project gibt es auch die Aufteilung in ein gemeinsames Projekt und plattformspezifischen Code. Das gemeinsame Code wird aber nicht in eine eigenständige DLL kompiliert, sondern nur im Rahmen der plattformspezifischen Projekte kompiliert. So kann hier auch plattformspezifischer Code verwendet werden. Innerhalb des Shared Project kann mit Compilerdirektiven zwischen den verschiedenen Plattformen unterschieden werden.