App-Daten (Windows-Runtime-Apps)

Applies to Windows and Windows Phone

Windows-Runtime-Apps speichern Daten an verschiedenen Speicherorten. Der richtige Speicherort für die Daten ist vom Szenario und davon abhängig, ob die App in HTML5 und JavaScript oder in XAML mit Visual C++-Komponentenerweiterungen (C++/CX), C# oder Microsoft Visual Basic oder mit Microsoft DirectX mit C++ geschrieben wurde. Wir erläutern alle Speichermedien und heben die Szenarien hervor, in denen die einzelnen Medien optimal funktionieren.

App-Datentypen

Es gibt zwei Datentypen, die häufig von Apps verwaltet werden oder mit denen sie regelmäßig interagieren:

  • App-Daten

    Dies sind Daten, die von der App selbst erstellt und verwaltet werden. Dabei handelt es sich um änderbare Daten, die spezifisch für die internen Funktionen oder die Konfiguration einer bestimmten App sind. Sie beinhalten den Laufzeitstatus, Referenzinhalte (beispielsweise die Wörterbuchdefinitionen in einer Wörterbuch-App) und andere Einstellungen. App-Daten sind an die Existenz der App gebunden und nur für die jeweilige App von Bedeutung.

  • Benutzerdaten

    Dies sind Daten, die vom Benutzer beim Verwenden einer App erstellt und verwaltet werden. Dazu zählen Dokument- oder Mediendateien, E-Mail- oder Kommunikationstranskripte oder Datenbankeinträge mit vom Benutzer erstellten Inhalten. Beachten Sie, dass die vom Benutzer ausgewählten Einstellungen oder App-Konfigurationsoptionen nicht als Benutzerdaten, sondern als App-Daten betrachtet werden. Benutzerdaten können für mehrere Apps nützlich oder von Bedeutung sein. Häufig handelt es sich dabei um Daten, die der Benutzer unabhängig von der App selbst ändern oder als Entität übertragen möchte (z. B. ein Dokument).

Speichern Sie App-Daten für Windows-Runtime-Apps in Datenspeichern, die vom System für diesen Zweck bereitgestellt werden und die für die jeweilige App und den jeweiligen Benutzer spezifisch sind. Anschließend können diese Datenspeicher vom System verwaltet und von anderen Apps und anderen Benutzern isoliert werden. Das System behält diese Datenspeicher bei, wenn der Benutzer ein Update für die App installiert. Wenn der Benutzer die App deinstalliert, entfernt das System zudem die Inhalte dieser Datenspeicher vollständig und auf saubere Art und Weise. Speichern Sie keinesfalls App-Daten an Speicherorten, die für Benutzerdaten vorgesehen sind, um diese Eigenschaften zu umgehen.

Da die Lebensdauer der App-Datenspeicher an die Lebensdauer der App gebunden ist, speichern Sie Benutzerdaten wie Dokumente oder Medien keinesfalls in Datenspeichern, die für App-Daten vorgesehen sind. Speichern Sie diese Informationen stattdessen in den Benutzerbibliotheken und auf Microsoft OneDrive.

In der Tabelle werden die verschiedenen Datenspeicherorte, die für die App verfügbar sind, die jeweiligen Beschränkungen und die empfohlenen Verwendungszwecke zusammengefasst. Je nach Kontext des Dokuments ist der Zugriff auf einige Datenspeicherorte in Windows-Runtime-Apps, für die JavaScript verwendet wird, eingeschränkt. Sämtliche Beschränkungen der Speicherplatzgröße unterliegen zudem den Einschränkungen, die sich durch die Gesamtgröße des Speichermediums ergeben.

Benutzerdaten

DatenspeicherortVerfügbar fürFeatures und BeschränkungenEmpfohlene Verwendung

Bibliotheken mit Zugriff durch Windows-Runtime StorageFile und file pickers

  • Windows-Runtime-Apps mit JavaScript (lokaler Kontext)
  • Windows Store-Apps mit C++, C# oder Visual Basic
  • Windows Store-Apps mit DirectX mit C++
  • Laden und Speichern von Dateien in den Benutzerbibliotheken
  • Asynchrone API
  • Keine Größenbeschränkung
  • Datei- und Ordnerauswahl:
    • Verwenden Sie eine Datei- und Ordnerauswahl, um dem Benutzer die Auswahl oder Erstellung der Datei zu ermöglichen.
  • Programmgesteuerter Zugriff:
    • Erfordert eine Funktion im Paketmanifest für die einzelnen Bibliotheken. Ausnahme: Downloads, bei denen die App schreiben oder geschriebene Inhalte lesen darf.
    • Erfordert eine Erweiterung des gewünschten Dateityps im Paketmanifest für Dateien, die für "Dokumente" oder entfernbare Speicherorte geöffnet werden können.

Wird für Benutzerdaten verwendet, die die Lebensdauer der App überdauern sollen oder die unabhängig vom Benutzer verwaltet werden.

OneDrive

  • Windows-Runtime-Apps mit JavaScript
  • Windows Store-Apps mit C++, C# oder Visual Basic
  • Windows Store-Apps mit DirectX
  • Unterstützt die Speicherung von Benutzerdaten in der Cloud und ist für mehrere Geräteplattformen verfügbar
  • Eine REST- und JSON-basierte (JavaScript Object Notation) API
  • Beschränkt auf eine ordnungsgemäß definierte Liste mit unterstützten Dateiformaten
  • Ermöglicht den Zugriff auf Inhalte, die von anderen Benutzern freigegeben wurden
  • Größenkontingent basiert auf Benutzerkonto

Wird für Benutzerdaten verwendet, auf die der Benutzer von mehreren Geräten, Plattformen oder Apps zugreifen möchte.

HTML5-Datei-API

  • Windows-Runtime-Apps mit JavaScript (Webkontext und lokaler Kontext)
  • Windows Store-Apps mit C++, C# oder Visual Basic
  • Windows Store-Apps mit DirectX
  • Webstandard

Nur für Szenarien bevorzugt, die das Hoch- und Herunterladen von Dateien beinhalten. Verwenden Sie für Übertragungen, die auch dann fortgesetzt werden, wenn die App nicht aktiv ist, die Windows-Runtime BackgroundTransfer aus dem lokalen Kontext.

 

Zusätzlich zu den in dieser Tabelle beschriebenen Speicheroptionen können Sie auch Datenbanklösungen von Drittanbietern sowie Cloudspeicherlösungen verwenden.

App-Daten

DatenspeicherortVerfügbar fürFeatures und BeschränkungenEmpfohlene Verwendung

Anwendungsdaten-APIs in der Windows-Runtime

  • Windows-Runtime-App mit JavaScript (lokaler Kontext)
  • Windows Store-Apps mit C++, C# oder Visual Basic
  • Windows Store-Apps mit DirectX
  • Stellt einen lokalen Datenspeicher und einen Roamingdatenspeicher bereit
  • Stellt zudem einen temporären Datenspeicher bereits, der in die Datenträgerbereinigung durch das System einbezogen wird
  • Unterstützt stark strukturierte Inhalte (Einstellungen)
  • Unterstützt zusammengesetzte Typen (eine Reihe von Einstellungen, die als Atomeinheit verwaltet werden)
  • Unterstützt unstrukturierte Daten (Dateien)
  • Verwendung einer synchronen API für Einstellungen
  • Verwendung einer asynchronen API für Dateien
  • Einstellungen sind auf 8 KB pro Einstellung bzw. auf 64 KB pro zusammengesetzter Einstellung begrenzt. Es wird empfohlen, Daten mit weniger als 1 MB zu speichern
  • Keine Größenbeschränkung für Dateien
  • Roamingdateien und -einstellungen sind gemäß Definition im ApplicationData.RoamingStorageQuota pro Paket in ihrer Gesamtgröße beschränkt, anderenfalls erfolgt kein Roaming
  • Das System verwaltet den Zeitpunkt der Roamingausführung, um die Bandbreite und Batterienutzungsdauer zu erhalten. Bei der Einstellung "HighPriority" erfolgt das Roaming mit höherer Frequenz als bei anderen Einstellungen.
  • Keine Größenbeschränkung für temporäre Daten

Wird für Einstellungen und unstrukturierte Datendateien verwendet.

IndexedDB

  • Windows-Runtime-App mit JavaScript (Webkontext und lokaler Kontext)
  • ISAM-Speichertechnologie
  • Indizierte oder sequenzielle Cursornavigation
  • Speicherbegrenzung auf 250 MB pro App
  • Für Laufwerke mit einer Kapazität von weniger als 30 GB ist der Speicher für alle installierten Apps auf 375 MB begrenzt
  • Für Laufwerke mit einer Kapazität von 30 GB oder mehr ist der Speicher für alle installierten Apps auf 4 % der Laufwerksgröße oder 20 GB begrenzt (je nachdem, welcher Wert der kleinere ist)
  • Webbasierte Webkontextseiten können IndexedDB nur verwenden, wenn sich die URL der Seite im ApplicationContentUriRules-Abschnitt des App-Paketmanifests befindet, es sei denn, Sie legen auf der Startseite der App das meta-Tag "ms-enable-external-database-usage" fest.

Wird für strukturierte und indizierte Datenspeicher, die ausschließlich von JavaScript genutzt werden, verwendet. Dient vornehmlich der Zwischenspeicherung von Szenarien.

Extensible Storage Engine (ESE)

  • Beliebige Apps, der Entwickler muss die Aufrufe jedoch in ein Windows-Runtime-Objekt einschließen, bevor die Verwendung durch Nicht-C/C++-Aufrufer möglich ist
  • ISAM-Speichertechnologie
  • Indizierte oder sequenzielle Cursornavigation
  • Transaktionsdaten
  • Robuste Datenkonsistenz selbst bei Systemabstürzen
  • Zwischenspeicherung Daten für ein schnelles Abrufen
  • Skalierbar auf große Größen, im Allgemeinen auf über 50 GB
  • Speicherung in einer flachen Binärdatei, Verschiebung auf einen Datenträger anhand alternativer Methoden (beispielsweise mit den Windows-Runtime-ApplicationData-APIs)
  • Es werden nur C/C++-APIs bereitgestellt

Wird für strukturierte und indizierte Datenspeicher verwendet, die von C/C++ genutzt werden, oder in ein von einem Entwickler erstelltes Windows-Runtime-Objekt eingeschlossen.

HTML5-Webspeicher

  • Windows-Runtime-App mit JavaScript (Webkontext und lokaler Kontext)
  • Windows Store-Apps mit C++, C# oder Visual Basic (mit dem WebView-Steuerelement)
  • Verwendet Zeichenfolgenschlüssel-Wertepaare
  • Webstandard
  • Isolation vom Browsercache auf Benutzer- und App-weiser Basis
  • Synchrone API
  • Es gilt eine Größenbeschränkung von 10 MB

Verwenden Sie localStorage, wenn Sie in einem Webkontext einen kleinen Speicher benötigen und die Windows-Runtime nicht verfügbar ist. Verwenden Sie keinesfalls sessionStorage, da sie nur im Arbeitsspeicher vorhanden ist und die Beendigung der App nicht überdauert. Verwenden Sie diese Methode nur für die kurzzeitige Speicherung, für die höchstwahrscheinlich keine Unterbrechungsgefahr aufgrund dessen besteht, dass der Benutzer die App verlässt.

WinJS.Application.sessionState

  • Windows-Runtime-App mit JavaScript (lokaler Kontext)
  • JavaScript-Objekt mit App-definierten Eigenschaften
  • Automatische Speicherung durch die Windows-Bibliothek für JavaScript beim Anhalten in den lokalen ApplicationData
  • Keine Größenbeschränkungen.

Wird nur als Speicherort für den App-Übergangsstatus bevorzugt, wenn die App angehalten und beendet wird, um den Vorgang in demselben Zustand fortzusetzen.

WinJS.Application.local-Statusspeicher

  • Windows-Runtime-App mit JavaScript (Webkontext und lokaler Kontext)
  • Komfortables Einschließen für ApplicationData
  • In einem Webkontext wird eine speicherinterne Implementierung verwendet

Wird für JavaScript verwendet, das sowohl in einem Webkontext als auch in einem lokalen Kontext ausgeführt werden muss.

WinJS.Application.roaming-Statusspeicher

  • Windows-Runtime-App mit JavaScript (Webkontext und lokaler Kontext)
  • Komfortables Einschließen für ApplicationData
  • In einem Webkontext wird eine speicherinterne Implementierung verwendet

Wird für JavaScript verwendet, das sowohl in einem Webkontext als auch in einem lokalen Kontext ausgeführt werden muss.

 

Zusätzlich zu den in dieser Tabelle beschriebenen Speicheroptionen können Sie auch Datenbanklösungen von Drittanbietern sowie Cloudspeicherlösungen verwenden.

Server

Wenn die App mit Websites und Webdiensten interagiert, kann sie andere Datenspeicherorte verwenden:

DatenspeicherortVerfügbar fürFeatures und BeschränkungenEmpfohlene Verwendung

HTML5-Anwendungscache

  • Windows-Runtime-App mit JavaScript (Webkontext und lokaler Kontext)
  • Windows-Runtime-Apps mit JavaScript (mit einem webbasierten Anwendungscache-Manifest)
  • Webstandard
  • Ermöglicht den Vorabruf webbasierter App-Markups, Skripte, Stylesheets und Ressourcen für eine erleichterte Offlineverwendung
  • Lokale Kontextseiten können zum Abrufen von Ressourcen, die keinen Code enthalten, nur einen webbasierten Anwendungscache verwenden. Sie können damit beispielsweise Bilder, Audio-, Video- oder XML-Dateien für die Offlineverwendung abrufen.
  • Schreiben per Skript nicht möglich
  • Damit eine Seite im Webkontext auf den Anwendungscache zugreifen kann, muss die URL der Seite zum ApplicationContentUriRules-Abschnitt des App-Paketmanifests hinzugefügt werden. Seiten im lokalen Kontext unterliegen dieser Anforderung nicht.

Wird verwendet, wenn die Inhalte schreibgeschützt sind, von einem Webserver bereitgestellt werden und der Zugriff auf die Inhalte auch dann möglich sein muss, während das Gerät offline ist. Obwohl der HTML5-Anwendungscache zum Bereitstellen individualisierter Inhalte verwendet werden kann, dient er in erster Linie als Zwischenspeicherungsstrategie für den Offlinezugriff auf Daten.

Cookies

  • Windows-Runtime-App mit JavaScript (Webkontext und lokaler Kontext)
  • Windows Store-Apps mit C++, C# oder Visual Basic (mit dem WebView-Steuerelement)
  • Apps, für die IXMLHTTPRequest2 verwendet wird
  • Webstandard
  • Isolation vom Browsercache auf Benutzer- und App-weiser Basis
  • 4-KB-Größenbeschränkung pro Cookie; unbeschränkte Anzahl Cookies
  • Cookies an und von einer Seite im lokalen Kontext für das Web via XHR unterliegen den normalen Regeln für die domänenübergreifende Cookiefreigabe im Web

Wird für Daten verwendet, die bei jeder Anforderung an einen Webserver freigegeben werden müssen.

Clouddienste, OpenData-Dienste und Clouddatenbanken

  • Beliebige Apps
  • Ermöglicht eine vollständige Clouddatenbanklösung
  • Ermöglicht serverseitig ausgelöste oder periodische Verarbeitungen
  • Features sind von der Clouddienstübernahme abhängig

Bevorzugte Methode beim Arbeiten mit Inhalten, die sehr umfangreich sind, die von einer Drittanbieterquelle generiert wurden oder die sowohl auf einer Website als auch in der App angezeigt werden.

 

 

 

Anzeigen:
© 2015 Microsoft