(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

Plattformübergreifende Entwicklung mit .NET Framework

Das Portable Klassenbibliothek-Projekt in Visual Studio 2012 unterstützt die plattformübergreifende Entwicklung von .NET Framework-Apps.

Verwenden Sie dieses Projekt zum Schreiben und Erstellen von übertragbaren Assemblys, die ohne Änderung auf mehreren Plattformen funktionieren, wie beispielsweise Windows 7, Windows 8, Silverlight, Windows Phone und Xbox 360. Beispielsweise können Sie Klassen erstellen, die freigegebene Geschäftslogik für Desktop-Apps, Windows Store-Apps und mobile Apps enthalten, auf die Sie dann aus Ihren Apps verweisen können.

Das Portable Klassenbibliothek-Projekt unterstützt eine Teilmenge der Assemblys von .NET Framework, Silverlight, .NET für Windows Store-Apps, Windows Phone und Xbox 360 und stellt eine Visual Studio-Vorlage bereit, mit der Sie Assemblys erstellen können, die ohne Änderung auf diesen Plattformen ausgeführt werden. Wenn Sie kein Portable Klassenbibliothek-Projekt verwenden, müssen Sie Assemblys für einen einzelnen App-Typ erstellen und dann die Klassenbibliothek manuell für andere App-Typen überarbeiten. Mit dem Portable Klassenbibliothek-Projekt können Sie die Zeit und die Kosten der Entwicklung und der Tests von Codes reduzieren, indem Sie übertragbare Assemblys erstellen, die über Apps für verschiedene Geräte freigegeben werden.

Hinweis Hinweis

Wenn Sie Visual Studio 2013 verwenden, können die verfügbaren Optionen und Menüs von denen in diesem Artikel beschriebenen abweichen.

Die Funktionen von Portable Klassenbibliothek werden in den folgenden Abschnitten beschrieben:

Wenn Sie eine plattformübergreifende Version von Visual Studio 2012 als Entwicklungsumgebung verwenden, steht Ihnen nahezu alles zur Verfügung, was Sie zum Entwickeln eines Portable Klassenbibliothek-Projekts benötigen. Es ist wichtig zu beachten, dass Portable Klassenbibliothek in einigen Versionen von Visual Studio für einzelne Plattformen nicht verfügbar ist, beispielsweise Visual Studio Express for Windows 8. Wenn Sie für Windows Phone 8 entwickeln möchten, müssen Sie Windows Phone SDK 8.0 zusätzlich zur bereits installierten Version von Visual Studio 2012 installieren.

Wenn Sie die Portable Klassenbibliothek-Tools auf einem Buildcomputer ohne Installation von Visual Studio 2012 installieren möchten, laden Sie die Portable Library Tools herunter und speichern Sie die Downloaddatei (PortableLibraryTools.exe) auf dem Computer. Führen Sie das Installationsprogramm über ein Eingabeaufforderungsfenster aus, und schließen Sie in die Befehlszeile den Schalter /buildmachine ein.

Wenn Sie ein Portable Klassenbibliothek-Projekt erstellen, können Sie mehrere Zielplattformen auswählen. In der folgenden Tabelle sind die verfügbaren Plattformen aufgeführt.

Plattform

Versionen

.NET Framework

.NET Framework 4 und höher

.NET Framework 4.0.3 und höher

.NET Framework 4.5

Silverlight

Silverlight 4 und höher (standardmäßig ausgewählt)

Silverlight 5

Windows Phone

Windows Phone 7 und höher (standardmäßig ausgewählt)

Windows Phone 7.5 und höher

Windows Phone 8

Wichtiger Hinweis Wichtig
Für die Windows Phone 8-Option müssen Sie das Windows Phone SDK 8.0 installieren.

.NET für Windows Store-Apps (*)

Nicht zutreffend

Xbox 360

Nicht zutreffend

Die vier Plattformen oder Versionen, die standardmäßig ausgewählt sind, werden in der Tabelle aufgeführt. Sie können diese Standardplattformen im Dialogfeld Projekteigenschaften ändern, wie im Abschnitt Auswählen der Zielplattformen gezeigt.

Wenn Sie die gewünschten Zielplattformen in einem Portable Klassenbibliothek-Projekt angegeben haben, wird im Projekt automatisch auf die unterstützten Assemblys für diese Plattformen verwiesen. Sie müssen Assemblys nicht hinzufügen oder entfernen. Die Assemblys, auf die verwiesen wird, werden automatisch aktualisiert, wenn Sie die Zielplattformen ändern.

Wenn die Zielplattformen nur .NET Framework 4.5 und .NET für Windows Store-Apps sind, haben Sie Zugriff auf eine viel größere Auswahl an Assemblys, als in anderen Plattformkombinationen verfügbar sind. Dieser größere Satz von Assemblys ist nahezu mit den .NET für Windows Store-Apps identisch, enthält jedoch nicht die Klassen in den Windows.UI.Xaml-Namespaces. Weitere Informationen finden Sie unter .NET für Windows Store-Apps - unterstützte APIs im Windows Developer Center.

Die folgende Tabelle zeigt, welche Funktionen auf den verfügbaren Plattformen und in ihren Versionen unterstützt werden.

Funktion

.NET Framework

Windows Store

Silverlight

Windows Phone

Xbox 360

Kern

LINQ

IQueryable

7.5 und höher

Dynamisches Schlüsselwort

Nur 4.5

Managed Extensibility Framework (MEF)

Netzwerkklassenbibliothek (NCL)

Serialisierung

Windows Communication Foundation (WCF)

MVVM (Model-View-View Model)

Nur 4.5

Datenanmerkungen

Nur 4.0.3 und 4.5

XLINQ

Nur 4.0.3 und 4.5

System.Numerics

Die Typen und Member, die in Portable Klassenbibliothek-Projekten verfügbar sind, werden von mehreren Kompatibilitätsfaktoren beschränkt:

  • Sie müssen über die Zielplattformen freigegeben werden, die Sie ausgewählt haben.

  • Sie müssen sich auf diesen Plattformen in ähnlicher Weise verhalten.

  • Sie dürfen keine Kandidaten für Veraltung sein.

  • Sie müssen jedoch in einer übertragbaren Umgebung einen Sinn ergeben, insbesondere wenn sie nicht übertragbare Member unterstützen.

Beispielsweise enthält das Portable Klassenbibliothek-Projekt aufgrund der Verhaltensunterschiede zwischen den Benutzeroberflächen verschiedener Geräte keine UI-bezogenen Typen oder Member. Sie treffen möglicherweise auch Einschränkungen an, wenn Sie für Plattformen entwickeln, die vor der Einführung von Portable Klassenbibliothek veröffentlicht wurden (wie Xbox-Entwickler, .NET Framework 4 und Windows Phone 7).

Erfahren Sie in den Referenzthemen für die .NET Framework-Klassenbibliothek, welche Member von der Portable Klassenbibliothek unterstützt werden. In der Membertabelle für eine Klasse wird das folgende Portable Klassenbibliothek-Symbol neben den unterstützten Membern angezeigt.

Unterstützt von Portable Library

Beispielsweise stellt das folgende Bild dar, dass die Chars-Eigenschaft in der String-Klasse in Portable Klassenbibliothek unterstützt wird.

Symbol "Unterstützter Member"

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 (siehe Abbildung).

Portable Library-Versionsinformationen

Häufig möchten Sie nicht übertragbare Member von einer übertragbaren Klasse aufrufen. Sie können nicht übertragbare Member nicht direkt aufrufen, da diese Member nicht im Portable Klassenbibliothek-Projekt verfügbar sind. Stattdessen können Sie eine abstrakte Klasse im Portable Klassenbibliothek-Projekt erstellen und diese Klasse von sämtlichem übertragbarem Code verwenden. Im plattformspezifischen Projekt erstellen Sie eine untergeordnete Klasse der abstrakten Klasse und implementieren plattformspezifisches Verhalten.

Im folgenden Beispiel wird eine übertragbare Klasse für das Arbeiten mit lokalen Einstellungen angezeigt. Lokale Einstellungen werden in einer Windows Store-App und in einer Silverlight-App unterschiedlich behandelt, daher stellt die übertragbare Klasse keine Implementierungsdetails bereit.


using System;

namespace ExamplePortableLibrary
{
    public abstract class ExampleLocalSettings
    {
        public abstract void SetLocalValue(string name, object value);

        public static ExampleLocalSettings Instance { get; set; }
    }
}


In dem Portable Klassenbibliothek-Projekt können Sie diese Methode wie folgt verwenden.

ExampleLocalSettings.Instance.SetLocalValue("ExampleSetting", "New value to add");

Fügen Sie in dem Silverlight-Projekt einen Verweis auf die übertragbare Assembly hinzu und erstellen Sie anschließend eine untergeordnete Klasse, die den lokalen Einstellungsvorgang implementiert, der spezifisch ist für eine Silverlight-Umgebung. Im folgenden Beispiel wird eine vollständige Silverlight-Implementierung der ExampleLocalSettings-Klasse gezeigt.


using System;
using System.IO.IsolatedStorage;
using ExamplePortableLibrary;

namespace SilverlightApplication1
{
    class SilverlightImplementation : ExampleLocalSettings
    {
        public override void SetLocalValue(string name, object value)
        {
            IsolatedStorageSettings.ApplicationSettings.Add(name, value);
        }
    }
}


In der App Windows Store fügen Sie einen Verweis auf die übertragbare Assembly hinzu und erstellen anschließend eine untergeordnete Klasse, die den lokalen Einstellungsvorgang implementiert, der für Apps Windows Store spezifisch ist. Im folgenden Beispiel wird eine Implementierung der ExampleLocalSettings-Klasse für eine App Windows Store veranschaulicht.


using System;
using Windows.Storage;
using ExamplePortableLibrary;

namespace App1
{
    class AppImplementation : ExampleLocalSettings
    {
        public override void SetLocalValue(string name, object value)
        {
            ApplicationData.Current.LocalSettings.Values[name] = value;
        }
    }
}


In der Silverlight-App und in der App Windows Store müssen Sie die konkrete Implementierung der untergeordneten Klasse initialisieren und auf die Instance-Eigenschaft festlegen. Normalerweise erstellen Sie diese Instanz, wenn die App beginnt. Im folgenden Beispiel wird die Initialisierung der Silverlight-Implementierung erläutert.

ExampleLocalSettings.Instance = new SilverlightImplementation();

Im folgenden Beispiel wird die Initialisierung der Implementierung der App Windows Store gezeigt.

ExampleLocalSettings.Instance = new AppImplementation();

Zum Erstellen eines Portable Klassenbibliothek-Projekts erstellen Sie in Visual Studio 2012 ein neues Projekt und wählen unter Visual C# oder Visual Basic die Vorlage Portable Klassenbibliothek aus.

Portable Library-Projekt auswählen

Das Portable Klassenbibliothek-Projekt hat standardmäßig die folgenden Zielplattformen:

  • .NET Framework 4.5

  • Silverlight 4 und höher

  • Windows Phone 7 und höher

  • .NET für Windows Store-Apps

Das Projekt verweist nur auf Assemblys, die von diesen Plattformen unterstützt werden. Um die Zielplattformen zu ändern, öffnen Sie im Projektmappen-Explorer das Kontextmenü für das Portable Klassenbibliothek-Projekt, und wählen Sie dann Eigenschaften aus.

Auf der Projekteigenschaftenseite werden auf der Registerkarte Bibliothek die derzeit festgelegten Zielplattformen angezeigt.

Projekteigenschaften

Klicken Sie auf die Schaltfläche Ändern, und aktivieren Sie dann die entsprechenden Kontrollkästchen, um Zielplattformen hinzuzufügen oder zu entfernen.

Ziel ändern

Wenn Sie die Zielplattformen ändern, werden die im Projekt verfügbaren Assemblys 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.

Nachdem Sie das Portable Klassenbibliothek-Projekt erstellt haben, verweisen Sie einfach aus anderen Projekten auf das neue Projekt. Sie können entweder auf das Projekt oder auf bestimmte Assemblys verweisen, die die Klassen enthalten, auf die Sie zugreifen möchten.

Um eine App auszuführen, die auf eine Portable Klassenbibliothek-Assembly verweist, müssen auf dem Computer die erforderlichen Versionen (oder höhere Versionen) der Zielplattformen installiert sein. Visual Studio 2012 enthält alle erforderlichen Frameworks, sodass Sie die App ohne weitere Änderung auf dem Computer ausführen können, auf dem Sie die Anwendung entwickelt haben.

Gg597391.collapse_all(de-de,VS.110).gifBereitstellen einer .NET Framework-App

Wenn Sie eine .NET Framework-App bereitstellen, die auf eine Portable Klassenbibliothek-Assembly verweist, müssen Sie eine Abhängigkeit von der richtigen Version von .NET Framework angeben. Durch die Angabe dieser Abhängigkeit stellen Sie sicher, dass die erforderliche Version mit der App installiert wird. Wenn die Zielplattform .NET Framework 4 oder höher ist, muss auf dem Computer .NET Framework 4 mit einem Update.NET Framework 4.5 installiert sein.

  • Wählen Sie zum Erstellen einer Abhängigkeit mit der ClickOnce-Bereitstellung im Projektmappen-Explorer den Projektknoten für das Projekt aus, das Sie veröffentlichen möchten. (Dies ist das Projekt, mit dem auf das Portable Klassenbibliothek-Projekt verwiesen wird.) Wählen Sie auf der Menüleiste Projekt, Eigenschaften und dann die Registerkarte Veröffentlichen aus. Wählen Sie auf der Seite Veröffentlichen die Option Erforderliche Komponenten aus. Wählen Sie die erforderliche .NET Framework-Version (oder ein Update von .NET Framework 4) als erforderliche Komponente aus.

  • Um eine Abhängigkeit mit einem Setup-Projekt zu erstellen, wählen Sie im Projektmappen-Explorer das Setup-Projekt aus. Wählen Sie auf der Menüleiste Projekt, Eigenschaften und Erforderliche Komponenten aus. Wählen Sie die erforderliche .NET Framework-Version als erforderliche Komponente aus.

Weitere Informationen zum Bereitstellen von .NET Framework-Apps finden Sie unter Handbuch für die Bereitstellung von .NET Framework für Entwickler.

Gg597391.collapse_all(de-de,VS.110).gifBereitstellen einer Silverlight-App

Wenn Sie eine Silverlight-App bereitstellen, die auf eine Portable Klassenbibliothek-Assembly verweist, müssen Sie sicherstellen, dass die minimale erforderliche Laufzeitversion für die App der Zielversion entspricht. Wenn Sie für Silverlight 4 entwickeln, muss die Version 4.0.60129.0 oder höher sein. Sie legen die Version fest, indem Sie <param name="minRuntimeVersion" value="4.0.60129.0" /> wie folgt in die Webseite einschließen, die die Silverlight-App 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="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" 
             style="text-decoration:none">
      <img src=http://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>

Gg597391.collapse_all(de-de,VS.110).gifAPI-Unterschiede in Portable Klassenbibliothek

Um die Kompatibilität von Portable Klassenbibliothek-Assemblys mit allen unterstützten Plattformen sicherzustellen, wurden in Portable Klassenbibliothek einige Member geringfügig geändert. Ausführliche Informationen zu den geänderten Membern und der Art der Änderung finden Sie unter API-Unterschiede in portabler Klassenbibliothek.

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.