Windows Dev Center

.NET für Windows Store-Apps – Übersicht

.NET Framework enthält eine Teilmenge verwalteter Typen, mit denen Sie Windows Store-Apps mit C# oder Visual Basic erstellen können. Diese Teilmenge verwalteter Typen wird als .NET für Windows Store-Apps bezeichnet und ermöglicht .NET Framework-Entwicklern, Windows Store-Apps innerhalb einer vertrauten Programmierumgebung zu erstellen. Typen, die nicht mit der Entwicklung von Windows Store-Apps verknüpft sind, sind in dieser Teilmenge nicht enthalten.

Sie verwenden diese verwalteten Typen mit Typen aus der Windows-Runtime-API, um Windows Store-Apps zu erstellen. In der Regel werden Sie keine Unterschiede zwischen der Verwendung verwalteter Typen und der Verwendung der Windows-Runtime-Typen feststellen, außer dass die verwalteten Typen innerhalb von Namespaces verbleiben, die mit System beginnen, und die Windows-Runtime-Typen innerhalb von Namespaces, die mit Windows beginnen. Zusammen bieten .NET für Windows Store-Apps und Windows-Runtime den vollständigen Satz von Typen und Membern, die zum Entwickeln von Windows Store-Apps mit C# oder Visual Basic verfügbar sind.

Beim Design der Teilmenge von verwalteten Typen und Membern wurde der Fokus klar auf die Windows Store-App-Entwicklung gesetzt. Deshalb wurde Folgendes ausgelassen:

  • Typen und Member, die sich nicht für die Entwicklung von Windows Store-Apps eignen (beispielsweise Konsolen- und ASP.NET-Typen).

  • Veraltete Typen

  • Typen, die sich mit Windows-Runtime-Typen überschneiden.

  • Typen und Member, die Betriebssystemfunktionen umschließen (beispielsweise EventLog und Leistungsindikatoren).

  • Member, die zu Verwirrung führen (wie die Close-Methode auf E/A-Typen).

In einigen Fällen ist ein Typ, der in einer .NET Framework-Desktop-App verwendet wird, in .NET für Windows Store-Apps nicht vorhanden. Stattdessen können Sie einen Typ aus der Windows-Runtime verwenden. Beispielsweise ist die System.IO.IsolatedStorage.IsolatedStorageSettings-Klasse nicht in .NET für Windows Store-Apps enthalten. Die Windows.Storage.ApplicationDataContainer-Klasse stellt jedoch ein ähnliches Verhalten zum Speichern von App-Einstellungen bereit. Beispiele für allgemeine Änderungen, die Sie möglicherweise vornehmen müssen, sind im Abschnitt Konvertieren von vorhandenem .NET Framework-Code enthalten.

Der gesamte Satz von Assemblys für .NET für Windows Store-Apps wird automatisch in Ihrem Projekt referenziert, wenn Sie eine Windows Store-App mit C# oder Visual Basic erstellen. Daher können Sie alle Typen verwenden, die von .NET für Windows Store-Apps in Ihrem Projekt unterstützt werden, ohne zusätzliche Aktionen durchführen zu müssen. Eine Liste der kombinierten Namespaces, die von .NET für Windows Store-Apps und Windows-Runtime bereitgestellt werden (gruppiert nach Funktionsbereich), finden Sie im Abschnitt .NET Framework- und Windows Runtime-Namespaces.

Eine Liste der Namespaces und Typen, die in der .NET Framework-Teilmenge enthalten sind, finden Sie unter .NET für Windows Store-Apps – APIs.

Sie können auch ein Portable Klassenbibliothek-Projekt erstellen, um eine .NET Framework-Bibliothek zu entwickeln, die von einer Windows Store-App verwendet werden kann. Das Projekt muss .NET für Windows Store-Apps als eine der Zielplattformen enthalten. Eine Portable Klassenbibliothek ist besonders nützlich, wenn Sie Klassen entwickeln möchten, die von Apps für verschiedene Plattformtypen, beispielsweise einer Windows Phone-App, einer Desktop-App und einer Windows Store-App verwendet werden können. Weitere Informationen finden Sie unter Plattformübergreifende Entwicklung mit der portablen Klassenbibliothek.

Dieses Thema enthält die folgenden Abschnitte:

Die folgenden Themen enthalten Informationen zum Konvertieren anderer Teile Ihrer App in die Windows Runtime:

In der Regel konvertieren Sie nicht einfach eine vorhandene .NET Framework-App in eine Windows Store-App, sondern entwerfen die .NET Framework-App für eine bessere Benutzerfreundlichkeit neu. Allerdings ist es auch möglich, dass Sie nur Teile einer vorhandenen .NET Framework-App für eine Verwendung in einer neuen Windows Store-App konvertieren. Beim Konvertieren von vorhandenem .NET Framework-Code sollten Sie die folgenden Änderungen beachten, die Sie möglicherweise in der Windows Store-App vornehmen müssen:

BR230302.collapse_all(de-de,VS.120).gifÄnderungen der Benutzeroberfläche

Wenn Sie Benutzeroberflächencode aus einer Silverlight-basierten Anwendung oder Windows Phone-App konvertieren, können Sie oftmals die gleichen Benutzeroberflächentypen verwenden. Die Typen befinden sich jetzt jedoch in den Windows.UI.Xaml-Namespaces und nicht in den System.Windows-Namespaces. Diese neuen Benutzeroberflächentypen ähneln den vorherigen Benutzeroberflächentypen von .NET Framework, allerdings enthalten sie einige andere Member.

Ersetzen

mit

Benutzeroberflächentypen in System.Windows.*-Namespaces

Benutzeroberflächentypen in Windows.UI.Xaml.*-Namespaces

(Die Border-Klasse befindet sich z. B. im Namespace Windows.UI.Xaml.Controls.)

Weitere Informationen zum Portieren von Benutzeroberflächencode finden Sie unter Migrieren einer Windows Phone 7-App in eine Windows Store-App mit XAML.

BR230302.collapse_all(de-de,VS.120).gifE/A-Änderungen

Die E/A-Typen enthalten neue Member, um das neue await-Schlüsselwort im asynchronen Programmiermodell zu unterstützen.

Ersetzen

mit

System.IO.Stream.BeginRead- und EndRead-Methoden

System.IO.Stream.ReadAsync-Methode

Ein Beispiel finden Sie unter ReadAsync(Byte[], Int32, Int32).

System.IO.Stream.BeginWrite- und EndWrite-Methoden

System.IO.Stream.WriteAsync-Methode

Ein Beispiel finden Sie unter WriteAsync(Byte[], Int32, Int32).

Close()-Methode in E/A-Klassen.

Dispose()-Methode in E/A-Klassen.

- oder -

Deklarieren und instanziieren Sie das E/A-Objekt in einer using- (C#) oder Using-Anweisung (Visual Basic), um sicherzustellen, dass sie ordnungsgemäß freigegeben ist, beispielsweise:

using (StreamReader sr = 
  new StreamReader(await passedFile.OpenStreamForReadAsync()))
{
    while ((nextLine = await sr.ReadLineAsync()) != null)
    {
        contents.Append(nextLine);
    }
}

System.IO.File.ReadAllText-Methode

Die ReadTextAsync-Methode befindet sich z. B. in der Windows.Storage.PathIO-Klasse.

Code zum Abrufen und Öffnen einer Datei

public static async void ReadFileSamples()
{
  // Read a file from package
  StorageFolder packageFolder = 
      ApplicationModel.Package.Current.InstalledLocation;
  StorageFile packagedFile = 
      await packageFolder.GetFileAsync("FileInPackage");

  // Read a file from AppData
  StorageFolder localFolder = ApplicationData.Current.LocalFolder;
  StorageFile localFile = 
    await localFolder.GetFileAsync("FileInAppData");
}

BR230302.collapse_all(de-de,VS.120).gifSpeicheränderungen

Anstatt die System.IO.IsolatedStorage-Klasse zu verwenden, verwenden Sie die Typen in den Windows.Storage-Namespaces, um lokale Daten und Dateien zu speichern.

Ersetzen

mit

System.IO.IsolatedStorage.IsolatedStorageFile-Klasse

Die LocalFolder-Eigenschaft in der Windows.Storage.ApplicationData-Klasse

ApplicationData.Current.LocalFolder

System.IO.IsolatedStorage.IsolatedStorageSettings-Klasse

Die LocalSettings-Eigenschaft in der Windows.Storage.ApplicationData-Klasse

ApplicationData.Current.LocalSettings

Weitere Informationen finden Sie unter Zugreifen auf App-Daten mit der Windows-Runtime (Windows-Runtime-Apps).

BR230302.collapse_all(de-de,VS.120).gifNetzwerkänderungen

Ersetzen

mit

System.Net.WebClient-Klasse

HttpClient -Klasse für das Senden von HTTP-Anforderungen und Empfangen von HTTP-Antworten

- oder -

Typen im Windows.Networking.BackgroundTransfer-Namespace zum Hochladen oder Herunterladen großer Datenmengen

Typen im System.Net.Sockets-Namespace

Typen im Windows.Networking.Sockets-Namespace

Verwandte URIs, wenn Sie an Windows-Runtime-Typen übergeben werden.

Absolute URIs

Weitere Informationen finden Sie unter Übergeben eines URI an die Windows-Runtime.

Ausnahmebehandlungscode, der die UriFormatException-Ausnahme abfängt.

Code, der die FormatException-Ausnahme abfängt. Dies ist die übergeordnete Klasse von UriFormatException.

BR230302.collapse_all(de-de,VS.120).gifThreadingänderungen

Einige der Threadingmember von .NET Framework haben sich geändert, und einige Typen sind nun in der Windows-Runtime-API verfügbar.

Ersetzen

mit

System.Threading.Thread.MemoryBarrier-Methode

Interlocked.MemoryBarrier -Methode im System.Threading-Namespace

System.Threading.Thread.ManagedThreadId-Eigenschaft

Environment.CurrentManagedThreadId -Eigenschaft im System-Namespace

System.Threading.Thread.CurrentCulture-Eigenschaft

CultureInfo.CurrentCulture -Eigenschaft im System.Globalization-Namespace

System.Threading.Thread.CurrentUICulture-Eigenschaft

CultureInfo.CurrentUICulture -Eigenschaft im System.Globalization-Namespace

System.Threading.Timer-Klasse

Windows.System.Threading.ThreadPoolTimer-Klasse

System.Threading.ThreadPool-Klasse

Windows.System.Threading.ThreadPool-Klasse

Code, der Arbeit für den Pool in Warteschlangen einreiht.

Task.Run(() => 
{ 
  // work goes here
});

Code, der Arbeit für den Pool in Warteschlangen einreiht und auf den Abschluss wartet.

await Task.Run(() => 
{ 
  // work goes here
});

Code, der eine Arbeitsaufgabe mit langer Laufzeit erstellt.

Task.Factory.StartNew(() => 
{ 
  // work goes here
}, TaskCreationOptions.LongRunning);

BR230302.collapse_all(de-de,VS.120).gifReflektionsänderungen

Die meisten Member aus der System.Type-Klasse wurden in die System.Reflection.TypeInfo-Klasse verschoben. Sie können das TypeInfo-Objekt abrufen, indem Sie die System.Reflection.IntrospectionExtensions.GetTypeInfo(System.Type)-Methode aufrufen. Diese Methode ist eine Erweiterungsmethode für Type.

Ersetzen

mit

type.Assembly

type.GetTypeInfo().Assembly

type.GetMethods(BindingFlags.DeclaredOnly)

type.GetTypeInfo().DeclaredMethods

type.GetMethod("MethodName", BindingFlags.DeclaredOnly)

type.GetTypeInfo().GetDeclaredMethod("MethodName")

type.GetNestedTypes()

type.GetTypeInfo().DeclaredNestedTypes

System.Delegate.CreateDelegate-Methode

MethodInfo.CreateDelegate -Methode

Weitere Informationen finden Sie unter Reflektion in .NET Framework für Windows Store-Apps in der MSDN Library.

BR230302.collapse_all(de-de,VS.120).gifSicherheitsänderungen

Viele der Typen für Sicherheits-, Authentifizierungs- und Kryptografievorgänge sind über Windows-Runtime-Typen verfügbar. Eine vollständige Liste der Sicherheitsnamespaces, die für Windows Store-Apps verfügbar sind, finden Sie in der Sicherheitsnamespace-Liste weiter unten in diesem Thema.

BR230302.collapse_all(de-de,VS.120).gifRessourcenänderungen

Für Windows Store-Apps erstellen Sie eine einzelne Ressourcendatei anstelle des Nabe und Speiche-Modells, das in Desktop-Apps verwendet wird. Außerdem verwenden Sie die Ressourcentypen im Windows.ApplicationModel.Resources- und Windows.ApplicationModel.Resources.Core-Namespace anstelle des System.Resources-Namespaces.

Weitere Informationen finden Sie unter Erstellen und Abrufen von Ressourcen in Windows Store-Apps.

BR230302.collapse_all(de-de,VS.120).gifAusnahmeänderungen

In einigen Fällen löst ein verwalteter Typ eine Ausnahme aus, die nicht in .NET für Windows Store-Apps enthalten ist. In diesen Fällen können Sie die übergeordnete Klasse der Ausnahme abfangen, die nicht enthalten ist. In einer Desktop-App fangen Sie die UriFormatException-Ausnahme beispielsweise ab, um einen ungültigen URI zu bearbeiten. In einer App im Windows Store wird die FormatException-Ausnahme hingegen abgefangen, da UriFormatException nicht in .NET für Windows Store-Apps enthalten ist. FormatException ist die übergeordnete Klasse von UriFormatException.

BR230302.collapse_all(de-de,VS.120).gifWCF-Änderungen

In Windows Store-Apps können Sie die Clientfunktionen der Windows Communication Foundation (WCF) nutzen, um Daten von einem WCF-Dienst abzurufen, aber Sie können keinen WCF-Dienst erstellen, um Daten bereitzustellen.

BR230302.collapse_all(de-de,VS.120).gifÄnderungen an allgemeinen .NET Framework-Typen

Ersetzen

mit

System.Xml.XmlConvert.ToDateTime-Methode

XmlConvert.ToDateTimeOffset -Methode

System.ICloneable-Schnittstelle

Eine benutzerdefinierte Methode, die den entsprechenden Typ zurückgibt.

System.Array.AsReadOnly- und System.Collections.Generic.List<T>.AsReadOnly-Methode

Eine neue Instanz der ReadOnlyCollection-Klasse, die wie folgt erstellt wurde:

new ReadOnlyCollection<string>(selectedList)

In den meisten Fällen entwickeln Sie Windows Store-Apps mit .NET Framework-Typen und Windows-Runtime-Typen ohne besondere Berücksichtigung oder Konvertierung. In einigen Fällen aber stellt .NET Framework Erweiterungsmethoden bereit, um die Interaktion zwischen .NET Framework-Typen und Windows-Runtime-Typen zu vereinfachen. Diese Erweiterungsmethoden finden sich in folgenden Klassen:

  • WindowsRuntimeStreamExtensions – zum Konvertieren zwischen verwalteten Streams und Windows-Runtime-Streams.

  • WindowsRuntimeStorageExtensions – zum Öffnen von Windows-Runtime-Dateien und -Ordnern als verwaltete Streams.

  • WindowsRuntimeBufferExtensions – zum Konvertieren in und von IBuffer.

In den folgenden Abschnitten sind die Namespaces nach Funktionen aufgelistet, die in .NET für Windows Store-Apps und Windows-Runtime bereitgestellt werden.

BR230302.collapse_all(de-de,VS.120).gifAuflistungen

BR230302.collapse_all(de-de,VS.120).gifKern

BR230302.collapse_all(de-de,VS.120).gifDaten und Inhalt

BR230302.collapse_all(de-de,VS.120).gifGeräte

BR230302.collapse_all(de-de,VS.120).gifDiagnose

BR230302.collapse_all(de-de,VS.120).gifDateien und Ordner

BR230302.collapse_all(de-de,VS.120).gifGlobalisierung

BR230302.collapse_all(de-de,VS.120).gifGrafik

BR230302.collapse_all(de-de,VS.120).gifManaged Extensibility Framework (MEF)

Zum Installieren der folgenden Namespaces öffnen Sie das Projekt in Visual Studio 2012 oder höher, und wählen Sie NuGet-Pakete verwalten aus dem Menü Projekt aus. Suchen Sie anschließend online nach dem Microsoft.Composition-Paket.

BR230302.collapse_all(de-de,VS.120).gifMedien

BR230302.collapse_all(de-de,VS.120).gifNetzwerk

BR230302.collapse_all(de-de,VS.120).gifPräsentation

BR230302.collapse_all(de-de,VS.120).gifDrucken

BR230302.collapse_all(de-de,VS.120).gifReflektion

BR230302.collapse_all(de-de,VS.120).gifRessourcen

BR230302.collapse_all(de-de,VS.120).gifSicherheit

BR230302.collapse_all(de-de,VS.120).gifSoziales Netzwerk

BR230302.collapse_all(de-de,VS.120).gifThreading

BR230302.collapse_all(de-de,VS.120).gifBenutzeroberflächenautomatisierung

BR230302.collapse_all(de-de,VS.120).gifBenutzerinteraktion

BR230302.collapse_all(de-de,VS.120).gifSprachen und Compiler

Anzeigen:
© 2015 Microsoft