Erweitern der App mit Diensten, Erweiterungen und Paketen
Es gibt viele Technologien in Windows 10, mit denen Sie Ihre App erweitern und in Komponenten aufgliedern können. Anhand dieser Tabelle können Sie bestimmen, welche Technologie Sie je nach Anforderungen verwenden sollten. Anschließend folgt eine kurze Beschreibung der Szenarien und Technologien.
Szenario | Ressourcenpaket | Objektpaket | Optionale Pakete | Einfaches Bundle | App-Erweiterung | App Service | Streaming-Installation |
---|---|---|---|---|---|---|---|
Code-Plug-Ins von Drittanbietern | ✔️ | ||||||
Prozessinterne Code-Plug-Ins | ✔️ | ||||||
UX-Objekte (Zeichenfolgen/Bilder) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ||
On Demand-Inhalte (z. B. zusätzliche Ebenen) |
✔️ | ✔️ | ✔️ | ||||
Separate Lizenzierung und Erwerb | ✔️ | ✔️ | ✔️ | ||||
App-interner Erwerb | ✔️ | ✔️ | |||||
Optimieren der Installationszeit | ✔️ | ✔️ | ✔️ | ✔️ | |||
Reduzieren des Datenträgerbedarfs | ✔️ | ✔️ | |||||
Optimieren der Paketierung | ✔️ | ✔️ | ✔️ | ||||
Reduzieren der Veröffentlichungszeit | ✔️ | ✔️ | ✔️ | ✔️ |
Szenariobeschreibungen (die Zeilen in der obigen Tabelle)
Plug-Ins von Drittanbietern
Code, den Sie aus dem Store herunterladen und von Ihrer App ausführen können. Beispielsweise Erweiterungen für den Microsoft Edge-Browser.
Inproc-Code-Plug-Ins
Code, der in Einem Prozess mit Ihrer App ausgeführt wird. Kann auch Inhalte enthalten. Da der Code im Prozess ausgeführt wird, wird eine höhere Vertrauensebene angenommen. Sie können diese Art von Erweiterbarkeit für einen Drittanbieter nicht verfügbar machen.
UX-Ressourcen (Zeichenfolge/Bilder)
Benutzeroberflächenressourcen wie lokalisierte Zeichenfolgen, Bilder und alle anderen UI-Inhalte, die Sie basierend auf dem Gebietsschema oder einem anderen Grund berücksichtigen möchten.
On Demand-Inhalte
Inhalte, die Sie zu einem späteren Zeitpunkt herunterladen möchten. Beispielsweise In-App-Käufe, mit denen Sie neue Ebenen, Skins oder Funktionen herunterladen können.
Separate Lizenzierung und Erwerb
Die Möglichkeit, den Inhalt unabhängig von der App zu lizenzieren und zu erwerben.
In-App-Erwerb
Gibt an, ob programmgesteuerte Unterstützung zum Abrufen der Inhalte innerhalb der App vorhanden ist.
Optimieren der Installationszeit
Bietet Funktionen, um die Zeit zu verringern, die zum Abrufen der App aus dem Store und zum Starten der Ausführung benötigt wird.
Verringern Des Datenträgerbedarfs Reduziert die Größe einer App, indem nur erforderliche Apps oder Ressourcen eingeschlossen werden.
Optimieren der Verpackung Optimiert den App-Verpackungsprozess für große oder komplexe Apps.
Verringern Sie die Veröffentlichungszeit , um die Zeit zu minimieren, die zum Veröffentlichen Ihrer App im Store, in der lokalen Freigabe oder auf dem Webserver benötigt wird.
Technologiebeschreibungen (die Spalten in der obigen Tabelle)
Ressourcenpaket
Ressourcenpakete sind reine Bestandspakete, die es Ihrer Anwendung ermöglichen, sich an verschiedene Anzeigegrößen und Systemsprachen anzupassen. Das Ressourcenpaket zielt auf die Benutzersprache, die Systemskalierung und die DirectX-Features ab, so dass die Anwendung auf eine Vielzahl von Benutzerszenarien zugeschnitten werden kann. Obwohl ein App-Paket mehrere Ressourcen enthalten kann, lädt das Betriebssystem nur die relevanten Ressourcen pro Benutzergerät herunter und spart so Bandbreite und Speicherplatz.
Bestandspaketpakete sind eine gängige, zentrale Quelle ausführbarer dateien oder nicht ausführbarer Dateien für die Verwendung durch Ihre App. Dabei handelt es sich in der Regel um nicht prozessor- oder sprachspezifische Dateien. Dies kann beispielsweise eine Sammlung von Bildern in einem Bestandspaket und Videos in einem anderen Bestandspaket enthalten, die beide von der App verwendet werden. Wenn Ihre Anwendung mehrere Architekturen und mehrere Sprachen unterstützt, könnten diese Ressourcen in das Architektur- oder Ressourcenpaket aufgenommen werden. Dies bedeutet jedoch auch, dass die Ressourcen mehrmals in den verschiedenen Architekturpaketen dupliziert werden und Speicherplatz beansprucht. Wenn Bestandspakete verwendet werden, müssen sie nur einmal in das gesamte App-Paket aufgenommen werden. Weitere Informationen finden Sie in der Einführung in Bestandspakete .
Optionale Pakete
Optionale Pakete werden verwendet, um die ursprüngliche Funktionalität eines App-Pakets zu ergänzen oder zu erweitern. Es ist möglich, eine App zu veröffentlichen, gefolgt von der Veröffentlichung optionaler Pakete zu einem späteren Zeitpunkt, oder gleichzeitiges sowohl die App wie auch optionale Pakete zu veröffentlichen. Durch die Erweiterung Ihrer App über ein optionales Paket haben Sie die Vorteile der Verteilung und Monetarisierung von Inhalten als separates App-Paket. Optionale Pakete sollen in der Regel vom ursprünglichen App-Entwickler entwickelt werden, da sie (im Gegensatz zu App-Erweiterungen) mit der Identität der Haupt-App ausgeführt werden. Je nachdem, wie Sie Ihr optionales Paket definieren, können Sie Code, Ressourcen oder Code und Ressourcen aus Ihrem optionalen Paket in Ihre Haupt-App laden. Wenn Sie Ihre App mit Inhalten verbessern müssen, die separat monetarisiert, lizenziert und verteilt werden können, sind optionale Pakete möglicherweise die richtige Wahl für Sie. Details zur Implementierung finden Sie unter Optional-Pakete und zugehöriger Satzerstellung.
Flat Bundle Flat Bundle-App-Pakete ähneln regulären App-Bündeln, mit der Ausnahme, dass das Flat Bundlenur Verweise auf diese App-Pakete enthält, anstatt alle App-Pakete in den Ordner einzuschließen. Indem es Verweise auf App-Pakete anstelle der Dateien selbst enthalten, reduziert ein Flat-Bundle den Zeitaufwand für das Packen und Herunterladen einer App.
App-Erweiterung
App-Erweiterungen ermöglichen Ihrer UWP-App das Hosten von Inhalten, die von anderen UWP-Apps bereitgestellt werden. Sie können schreibgeschützte Inhalte dieser Apps ermitteln und enumerieren und darauf zugreifen.
Wenn eine App Erweiterungen unterstützt, kann jeder Entwickler eine Erweiterung für die App übermitteln. Daher muss die Host-App robust sein, wenn sie eine Erweiterung lädt, mit der sie noch nicht vorab getestet wurde. Erweiterungen sollten als nicht vertrauenswürdig betrachtet werden.
Anwendungen können keinen Code aus Erweiterungen laden. Wenn Sie Codeausführung benötigen, sollten Sie App Services in Betracht ziehen.
App Service
Windows-App-Dienste ermöglichen die App-zu-App-Kommunikation, indem Ihre UWP-App Dienste für eine andere universelle Windows-App bereitstellt. Mit App-Diensten können Sie Dienste ohne Benutzeroberfläche erstellen, die Apps auf demselben Gerät und ab Windows 10, Version 1607, auch auf Remotegeräten aufrufen können. Weitere Informationen finden Sie unter Erstellen und Verwenden eines App Service.
App-Dienste sind UWP-Apps, die Dienste für andere UWP-Apps bereitstellen. Sie sind analog zu Webdiensten auf einem Gerät. Ein App-Dienst wird als Hintergrundaufgabe in der Host-App ausgeführt und kann seine Dienste auch anderen Apps bereitstellen. Beispielsweise kann der Barcode-Scanner eines App-Dienstes auch anderen Apps nützlich sein. Oder eine Enterprise-App-Suite verfügt über einen allgemeinen App-Dienst für die Rechtschreibprüfung, der für die anderen Apps in der Suite verfügbar ist.
Streaminginstallation von UWP-Apps
Die Streaminginstallation ist eine Möglichkeit, die Bereitstellung Ihrer App an Benutzer zu optimieren. Anstatt darauf zu warten, dass die gesamte App heruntergeladen wird, bevor man sie nutzen kann, können die Benutzer mit der App arbeiten, sobald ein erforderlicher Teil heruntergeladen wurde. Es liegt an Ihnen als Entwickler, Ihre App in einen erforderlichen Abschnitt für die grundlegende Aktivierung und den Start sowie in zusätzliche Inhalte für den Rest der App zu segmentieren. Weitere Informationen und Implementierungsdetails finden Sie unter UWP App Streaming Install .
Weitere Informationen
Erstellen und Verwenden eines App-Diensts
Einführung in Bestandspakete
Paketerstellung mit dem Verpackungslayout
Optionale Pakete und die Erstellung zugehöriger Sätze
Entwickeln mit Bestandspaketen und Paketfaltung
Installieren von UWP-App-Streaming
Flat-Bundle-App-Pakete
Windows.ApplicationModel.AppService-Namespace
Windows.ApplicationModel.Extensions-Namespace