Übersicht über .NET für Store-Apps
Markieren Sie das Kontrollkästchen Englisch, um die englische Version dieses Artikels anzuzeigen. Sie können den englischen Text auch in einem Popup-Fenster einblenden, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

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

 

.NET Framework enthält eine Teilmenge verwalteter Typen, mit denen Sie Windows 8.x Store-Apps mit C# oder Visual Basic erstellen können. Diese Teilmenge verwalteter Typen wird als .NET für Windows 8.x Store-Apps bezeichnet und ermöglicht .NET Framework-Entwicklern, Windows 8.x Store-Apps innerhalb einer vertrauten Programmierumgebung zu erstellen. Typen, die nicht mit der Entwicklung von Windows 8.x 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 8.x 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 8.x Store-Apps und Windows-Runtime den vollständigen Satz von Typen und Membern, die zum Entwickeln von Windows 8.x 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 8.x Store-App-Entwicklung gesetzt. Deshalb wurde Folgendes ausgelassen:

  • Typen und Member, die sich nicht für die Entwicklung von Windows 8.x 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 System.Diagnostics.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 8.x 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 8.x Store-Apps enthalten, aber die Windows.Storage.ApplicationDataContainer-Klasse stellt ä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 8.x Store-Apps wird automatisch in Ihrem Projekt referenziert, wenn Sie eine Windows 8.x Store-App mit C# oder Visual Basic erstellen. Daher können Sie alle Typen verwenden, die von .NET für Windows 8.x 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 8.x 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-Apps.

Sie können auch ein Portable Klassenbibliothek-Projekt erstellen, um eine .NET Framework-Bibliothek zu entwickeln, die von einer Windows 8.x 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 8.x Store-App verwendet werden können. Siehe Plattformübergreifende Entwicklung mit der portablen Klassenbibliothek.

Dieses Thema enthält die folgenden Abschnitte zu .NET für Windows-Runtime:

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 8.x 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 8.x Store-App konvertieren. Beim Konvertieren von vorhandenem .NET Framework-Code sollten Sie die folgenden Änderungen beachten, die Sie möglicherweise in der Windows 8.x Store-App vornehmen müssen:

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.

replace

mit

Benutzeroberflächentypen in System.Windows.*-Namespaces

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

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

 

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

 

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

replace

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 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");
}

 

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

replace

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 Anwendungsdaten.

replace

mit

System.Net.WebClient-Klasse

System.Net.Http.HttpClient-Klasse für das Senden von HTTP-Anforderungen und Empfangen von HTTP-Antworten

- oder -

Typen im Windows.Networking.BackgroundTransfer-Namespace zum Hoch- 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.

 

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

replace

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);

 

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.

replace

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 Reflection in the .NET Framework for Windows Store Apps in der MSDN Library.

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 8.x Store-Apps verfügbar sind, finden Sie in der Sicherheitsnamespace-Liste weiter unten in diesem Thema.

Für Windows 8.x 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 im Windows.ApplicationModel.Resources.Core-Namespace anstelle des System.Resources-Namespace.

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

In einigen Fällen löst ein verwalteter Typ eine Ausnahme aus, die nicht in .NET für Windows 8.x 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 Windows 8.x Store-App aber fangen Sie die FormatException-Ausnahme ab, da UriFormatException nicht in .NET für Windows 8.x Store-Apps enthalten ist. FormatException ist die übergeordnete Klasse von UriFormatException.

In Windows 8.x 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.

replace

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 System.Collections.ObjectModel.ReadOnlyCollection<T>-Klasse, die wie folgt erstellt wurde:

new ReadOnlyCollection<string>(selectedList)

In den meisten Fällen entwickeln Sie Windows 8.x 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:

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

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.

Anzeigen:
© 2016 Microsoft