.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 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 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, aber die Windows.Storage.ApplicationDataContainer-Klasse bietet ein ähnliches Verhalten beim Speichern von App-Einstellungen. 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 – unterstützte 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 erhalten Sie unter Portable Klassenbibliotheks-Übersicht.
Dieses Thema enthält die folgenden Abschnitte:
Konvertieren von vorhandenem .NET Framework-Code
Erweiterungsmethoden zum Konvertieren von Typen
.NET Framework- und Windows Runtime-Namespaces
Konvertieren von vorhandenem .NET Framework-Code
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:
Änderungen der Benutzeroberfläche
E/A-Änderungen
Speicheränderungen
Netzwerkänderungen
Threadingänderungen
Reflektionsänderungen
Sicherheitsänderungen
Ressourcenänderungen
Ausnahmeänderungen
WCF-Änderungen
Änderungen an allgemeinen .NET Framework-Typen
Ä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 (beispielsweise befindet sich die Border-Klasse im Windows.UI.Xaml.Controls-Namespace) |
Weitere Informationen zum Portieren von Benutzeroberflächencode finden Sie unter Migrieren einer Windows Phone 7-App zu XAML.
E/A-Änderungen
Die E/A-Typen enthalten neue Member, um das neue await-Schlüsselwort im asynchronen Programmiermodell zu unterstützen.
Speicherä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
|
System.IO.IsolatedStorage.IsolatedStorageSettings-Klasse |
Die LocalSettings-Eigenschaft in der Windows.Storage.ApplicationData-Klasse
|
Weitere Informationen finden Sie unter Anwendungsdaten.
Netzwerkänderungen
Ersetzen |
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. |
Threadingä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 |
|
System.Threading.ThreadPool-Klasse |
|
Code, der Arbeit für den Pool in Warteschlangen einreiht. |
|
Code, der Arbeit für den Pool in Warteschlangen einreiht und auf den Abschluss wartet. |
|
Code, der eine Arbeitsaufgabe mit langer Laufzeit erstellt. |
|
Reflektionsä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.
Sicherheitsä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.
Ressourcenä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 aus den Windows.ApplicationModel.Resources- und Windows.ApplicationModel.Resources.Core-Namespaces und nicht aus dem System.Resources-Namespace.
Weitere Informationen finden Sie unter Erstellen und Abrufen von Ressourcen in Windows Store-Apps.
Ausnahmeä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.
WCF-Ä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.
Ä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-Methoden |
Eine neue Instanz der System.Collections.ObjectModel.ReadOnlyCollection<T>-Klasse, die wie folgt erstellt wurde:
|
Erweiterungsmethoden zum Konvertieren von Typen
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:
System.IO.WindowsRuntimeStreamExtensions – zum Konvertieren zwischen verwalteten Streams und Windows-Runtime-Streams.
System.IO.WindowsRuntimeStorageExtensions – zum Öffnen von Windows-Runtime-Dateien und -Ordnern als verwaltete Streams.
System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeBufferExtensions – zum Konvertieren in und von IBuffer.
.NET Framework- und Windows-Runtime-Namespaces
In den folgenden Abschnitten sind die Namespaces nach Funktionen aufgelistet, die in .NET für Windows Store-Apps und Windows-Runtime bereitgestellt werden.
Auflistungen
Kern
Daten und Inhalt
Geräte
Diagnose
Dateien und Ordner
Globalisierung
Grafik
Managed Extensibility Framework (MEF)
Zum Installieren der folgenden Namespaces öffnen Sie das Projekt in Visual Studio 2012, und wählen Sie NuGet-Pakete verwalten aus dem Menü Projekt. Suchen Sie anschließend online nach dem Microsoft.Composition-Paket.
Medien
Netzwerk
Präsentation
Reflektion
Ressourcen
Sicherheit
Soziales Netzwerk
Threading
Benutzeroberflächenautomatisierung
Benutzerinteraktion
Sprachen und Compiler
Siehe auch
Konzepte
.NET für Windows Store-Apps – unterstützte APIs
Erstellen von Windows-Runtime-Komponenten in C# und Visual Basic
Weitere Ressourcen
.NET Framework-Unterstützung für Windows Store-Apps und Windows-Runtime