Portable Klassenbibliotheken
Das Portable Klassenbibliothek-Projekt ermöglicht es Ihnen, verwaltete Assemblys zu schreiben und zu erstellen, die auf mehr als einer .NET Framework-Plattform funktionieren. Sie können Klassen erstellen, die Code enthalten, den Sie in vielen Projekten verwenden können, z. B. in freigegebener Geschäftslogik. Anschließend können Sie aus verschiedenen Projekttypen auf diese Projekte verweisen.
Mithilfe des Portable Klassenbibliothek-Projekts können Sie portable Assemblys erstellen, die ohne Änderung auf den Plattformen .NET Framework, Silverlight, Windows Phone 7 und Xbox 360 funktionieren. Ohne das Portable Klassenbibliothek-Projekt müssen Sie eine einzelne Plattform als Ziel verwenden und die Klassenbibliothek für andere Plattformen dann manuell überarbeiten. Das Portable Klassenbibliothek-Projekt unterstützt eine Teilmenge der Assemblys von diesen Plattformen und stellt eine Visual Studio-Vorlage bereit, mit der Assemblys erstellt werden können, die ohne Änderung auf diesen Plattformen ausgeführt werden.
Erforderliche Komponenten
Zum Erstellen eines Portable Klassenbibliothek-Projekts müssen Sie diese Komponenten im der folgenden Reihenfolge installieren:
Assemblys
Die folgenden Assemblys sind in einem Portable Klassenbibliothek-Projekt verfügbar:
mscorlib.dll
System.dll
System.Core.dll
System.Xml.dll
System.ComponentModel.Composition.dll
System.Net.dll
System.Runtime.Serialization.dll
System.ServiceModel.dll
System.Xml.Serialization.dll
System.Windows.dll (von Silverlight)
Jedoch werden nicht alle dieser Assemblys auf allen Plattformen unterstützt. In einem Portable Klassenbibliothek-Projekt geben Sie die Plattformen an, die Sie als Ziel verwenden möchten, und nur auf die unterstützten Assemblys für diese Plattformen wird im Projekt verwiesen. Wenn Sie versuchen, auf eine Assembly zu verweisen, die nicht für die als Ziel verwendeten Plattformen unterstützt wird, wird von Visual Studio auf die Inkompatibilität hingewiesen. Die Kernassemblys (mscorlib.dll, System.dll, System.Core.dll und System.Xml.dll) werden auf allen Plattformen unterstützt.
Die folgende Tabelle zeigt, welche Assemblys auf den verfügbaren Plattformen unterstützt werden.
Feature |
Assemblys |
.NET Framework 4 |
Silverlight |
Windows Phone 7 |
Xbox 360 |
---|---|---|---|---|---|
Kern |
mscorlib.dll, System.dll, System.Core.dll, System.Xml.dll |
Ja |
ja |
ja |
ja |
Managed Extensibility Framework (MEF) |
System.ComponentModel.Composition.dll |
Ja |
Ja |
Nein |
Nein |
Netzwerkklassenbibliothek (NCL) |
System.Net.dll |
Ja |
Ja |
Ja |
nein |
Serialisierung |
System.Runtime.Serialization.dll |
Ja |
ja |
ja |
nein |
Windows Communication Foundation (WCF) |
System.ServiceModel.dll |
Ja |
Ja |
Ja |
nein |
XML-Serialisierung |
System.Xml.Serialization.dll |
Ja |
Ja |
Ja |
Nein |
Ansichtsmodell Unterstützung |
System.Windows.dll (von Silverlight) |
Nein |
Ja |
Ja |
Nein |
Portable Klassenbibliothek-Projekte sind auf eine Kombination von Plattformen ausgerichtet. In der folgenden Tabelle werden die Funktionen angezeigt, die für Plattformkombinationen unterstützt werden.
Plattformen |
Unterstützung |
---|---|
Silverlight und Windows Phone 7 |
Alles außer MEF |
.NET Framework 4 und Silverlight |
Alles außer der Unterstützung für Ansichtsmodelle |
.NET Framework 4 und Windows Phone 7 |
Alles außer der Unterstützung für Ansichtsmodelle und MEF |
.NET Framework 4, Silverlight und Windows Phone 7 |
Alles außer der Unterstützung für Ansichtsmodelle und MEF |
Xbox 360 und jede andere Plattform |
Nur Kern |
Suchen der unterstützten Member in der Referenzdokumentation
Sie finden die vom Portable Klassenbibliothek-Projekt unterstützten Member in den Referenzthemen für die .NET Framework-Klassenbibliothek. In der Membertabelle für eine Klasse wird das folgende Portable Klassenbibliothek-Symbol neben den unterstützten Membern angezeigt.
Sie können auch im Abschnitt Versionsinformationen eines Referenzthemas nach einem Hinweis suchen, der angibt, dass ein Typ oder ein Member im Portable Klassenbibliothek-Projekt unterstützt wird.
Unterstützung des Musters Ansichtsmodell
Wenn Sie für Silverlight oder Windows Phone 7 entwickeln, können Sie das Muster Ansichtsmodell in der Lösung implementieren. Die Klassen zum Implementieren dieses Musters befinden sich in der Assembly System.Windows.dll von Silverlight. Die Assembly System.Windows.dll wird nicht unterstützt, wenn Sie ein Portable Klassenbibliothek-Projekt mit .NET Framework 4 oder Xbox 360 als Zielversion erstellen.
Zu den Klassen in dieser Assembly gehören:
System.Collections.ObjectModel.ReadOnlyObservableCollection<T>
System.Collections.Specialized.NotifyCollectionChangedAction
System.Collections.Specialized.NotifyCollectionChangedEventArgs
System.Collections.Specialized.NotifyCollectionChangedEventHandler
.NET Framework 4 enthält ebenfalls diese Klassen, sie sind jedoch in anderen Assemblys als System.Windows.dll implementiert. Um diese Klassen in einem Portable Klassenbibliothek-Projekt zu verwenden, müssen Sie auf System.Windows.dll verweisen, nicht auf die Assemblys, die in der .NET Framework 4-Dokumentation aufgeführt sind.
Erstellen eines Portable Klassenbibliothek-Projekts
Zum Erstellen eines Portable Klassenbibliothek-Projekts erstellen Sie in Visual Studio 2010 ein neues Projekt und wählen die Vorlage Portable Klassenbibliotheken unter Visual C# oder Visual Basic aus. Wenn Sie die Vorlage nicht sehen, stellen Sie sicher, dass Sie die Portable Library Tools installiert haben.
Auswählen der Zielplattformen
Das Portable Klassenbibliothek-Projekt hat standardmäßig die folgenden Zielplattformen:
.NET Framework 4
Silverlight 4
Silverlight für Windows Phone 7
Das Projekt verweist nur auf Assemblys, die von diesen Plattformen unterstützt werden. Klicken Sie zum Auswählen der Zielplattformen im Projektmappen-Explorer mit der rechten Maustaste auf den Portable Klassenbibliothek-Projektnamen, und wählen Sie dann Eigenschaften aus.
Auf der Projekteigenschaftenseite werden die aktuell festgelegten Zielplattformen angezeigt.
Klicken Sie auf Ändern, um Zielplattformen hinzuzufügen oder zu entfernen.
Wenn Sie die Zielplattformen ändern, werden die Assemblys, auf die im Projekt verwiesen wird, dem für die Auswahl unterstützten Satz von Assemblys angepasst. Wenn im Projekt auf Assemblys verwiesen wird, die von keiner der ausgewählten Plattformen unterstützt werden, müssen Sie entweder den Verweis auf die Assembly entfernen oder die Zielplattformen ändern. Im Projektmappen-Explorer werden die nicht unterstützten Assemblys mit einem Ausrufezeichen (!) markiert. Die folgende Abbildung zeigt eine Warnung für Assemblys, die nicht unterstützt werden, wenn die Xbox 360-Plattform zu den Zielplattformen hinzugefügt wird.
Verwenden von Portable Klassenbibliothek
Nachdem Sie das Portable Klassenbibliothek-Projekt erstellt haben, fügen Sie in den anderen Projekten, die das Portable Klassenbibliothek-Projekt benötigen, einfach einen Verweis auf das Projekt hinzu. Sie können entweder auf das Projekt oder auf bestimmte Assemblys verweisen, die die Klassen enthalten, auf die Sie zugreifen möchten.
Erstellen einer Abhängigkeit
Zum Ausführen einer Portable Klassenbibliothek-Anwendung muss ein Update für .NET Framework 4 auf dem Computer installiert sein. Dieses Update wird automatisch mit Visual Studio 2010 SP1 installiert, sodass die Portable Klassenbibliothek-Anwendung ohne weitere Änderung auf dem Computer ausgeführt werden kann, mit dem Sie die Anwendung entwickelt haben. Sie können das Update manuell installieren, um die Anwendung auf einem anderen Computer auszuführen.
Wenn Sie eine .NET Framework 4-Anwendung bereitstellen, die auf eine Portable Klassenbibliothek-Assembly verweist, müssen Sie eine Abhängigkeit vom .NET Framework 4-Update angeben. Durch die Angabe dieser Abhängigkeit stellen Sie sicher, dass das Update mit der Anwendung installiert wird.
Klicken Sie zum Erstellen einer Abhängigkeit mit der ClickOnce-Bereitstellung im Projektmappen-Explorer auf den Projektknoten für das Projekt, das Sie veröffentlichen möchten. (Dies ist das Projekt, mit dem auf das Portable Klassenbibliothek-Projekt verwiesen wird.) Klicken Sie im Menü Projekt auf Eigenschaften, und klicken Sie dann auf die Registerkarte Veröffentlichen. Klicken Sie auf der Seite Veröffentlichen auf Erforderliche Komponenten. Wählen Sie das .NET Framework 4-Update als erforderliche Komponente aus.
Um eine Abhängigkeit mit einem Setup-Projekt zu erstellen, klicken Sie im Projektmappen-Explorer auf das Setup-Projekt. Klicken Sie im Menü Projekt auf Eigenschaften, und klicken Sie dann auf Erforderliche Komponenten. Wählen Sie das .NET Framework 4-Update als erforderliche Komponente aus.
Weitere Informationen zum Bereitstellen von .NET Framework-Anwendungen finden Sie unter Handbuch für die Bereitstellung von .NET Framework für Entwickler.
Bereitstellung mit Silverlight
Wenn Sie eine Portable Klassenbibliothek-Assembly mit einer Silverlight-basierten Anwendung bereitstellen, müssen Sie sicherstellen, dass die minimale erforderliche Laufzeitversion für die Anwendung auf Version 4.0.60129.0 oder höher festgelegt ist. Sie legen den minRuntimeVersion-Parameterwert fest, indem Sie <param name="minRuntimeVersion" value="4.0.60129.0" /> in die Webseite einschließen, die die Silverlight-basierte Anwendung hostet.
<div id="silverlightControlHost">
<object data="data:application/x-silverlight-2,"
type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="ClientBin/SilverlightApplication.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="4.0.60129.0" />
<param name="autoUpgrade" value="true" />
<a href="https://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0"
style="text-decoration:none">
<img src=https://go.microsoft.com/fwlink/?LinkId=161376
alt="Get Microsoft Silverlight" style="border-style:none"/>
</a>
</object>
<iframe id="_sl_historyFrame"
style="visibility:hidden;height:0px;width:0px;border:0px">
</iframe>
</div>
API-Unterschiede in Portable Klassenbibliothek
Um Portable Klassenbibliothek-Assemblys auf allen unterstützten Plattformen kompatibel zu machen, wurden einige Member leicht in Portable Klassenbibliothek geändert. Ausführliche Informationen zu den geänderten Membern und der Art der Änderung finden Sie unter API-Unterschiede in portabler Klassenbibliothek.
Siehe auch
Weitere Ressourcen
API-Unterschiede in portabler Klassenbibliothek
Änderungsprotokoll
Datum |
Versionsgeschichte |
Grund |
---|---|---|
Mai 2011 |
Informationen zur Unterstützung des Musters Ansichtsmodell und zum Erstellen von Abhängigkeiten hinzugefügt. |
Informationsergänzung. |
März 2011 |
Thema hinzugefügt. |
Informationsergänzung. |