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-Inhalt
(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 aus Ihrer App ausführen können. Beispielsweise Erweiterungen für den Microsoft Edge-Browser.

Prozessinterne Code-Plug-Ins

Code, der prozessintern mit Ihrer App ausgeführt wird. Kann auch Inhalte enthalten. Da der Code prozessintern ausgeführt wird, wird eine höhere Vertrauensstufe angenommen. Sie können sich dafür entscheiden, diese Art von Erweiterbarkeit nicht für einen Drittanbieter verfügbar zu machen.

UX-Ressourcen (Zeichenfolge/Bilder)

Benutzeroberflächenressourcen wie lokalisierte Zeichenfolgen, Bilder und alle anderen UI-Inhalte, die Sie basierend auf gebietsschema oder einem anderen Grund berücksichtigen möchten.

On-Demand-Inhalt

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.

App-interner Erwerb

Gibt an, ob programmgesteuerte Unterstützung zum Abrufen der Inhalte aus der App vorhanden ist.

Optimieren der Installationszeit

Bietet Funktionen, um die Zeit zu verkürzen, die benötigt wird, um die App aus dem Store zu beziehen und mit der Ausführung zu beginnen.

Verringern des Datenträgerspeicherbedarfs Reduziert die Größe einer App, indem nur erforderliche Apps oder Ressourcen eingeschlossen werden.

Optimieren der Verpackung Optimiert den App-Paketerstellungsprozess für umfangreiche oder komplexe Apps.

Reduzieren der Veröffentlichungszeit Minimieren Sie die Zeit, 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 Ressourcenpakete, die es Ihrer App ermöglichen, sich an mehrere Anzeigegrößen und Systemsprachen anzupassen. Das Ressourcenpaket zielt auf Benutzersprache, Systemskala und DirectX-Features ab, sodass die App 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, wodurch Bandbreite und Speicherplatz eingespart werden.

Ressourcenpaket Ressourcenpakete sind eine allgemeine, zentralisierte Quelle ausführbarer oder nicht ausführbarer Dateien, die von Ihrer App verwendet werden können. Hierbei handelt es sich in der Regel um nicht prozessor- oder sprachspezifische Dateien. Dies kann beispielsweise eine Sammlung von Bildern in einem Medienobjektpaket und Videos in einem anderen Medienobjektpaket umfassen, die beide von der App verwendet werden. Wenn Ihre App mehrere Architekturen und mehrere Sprachen unterstützt, können diese Ressourcen im Architekturpaket oder Ressourcenpaket enthalten sein. Dies bedeutet aber auch, dass die Ressourcen in den verschiedenen Architekturpaketen mehrfach dupliziert werden und Speicherplatz belegen. Wenn Ressourcenpakete verwendet werden, müssen sie nur einmal in das gesamte App-Paket aufgenommen werden. Weitere Informationen finden Sie unter Einführung in Ressourcenpakete .

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 die App und optionale Pakete gleichzeitig 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 mit der Identität der Standard App ausgeführt werden (im Gegensatz zu App-Erweiterungen). Je nachdem, wie Sie Ihr optionales Paket definieren, können Sie Code, Ressourcen oder Code und Ressourcen aus Ihrem optionalen Paket in Ihre Standard-App laden. Wenn Sie Ihre App mit Inhalten verbessern müssen, die monetarisiert, lizenziert und separat verteilt werden können, sind optionale Pakete möglicherweise die richtige Wahl für Sie. Details zur Implementierung finden Sie unter Optionale Pakete und zugehörige Erstellung von Zugehörigen Sätze.

Flat bundleFlat bundle app packages are similar to regular app bundles, außer dass das flat bundle nur Verweise auf diese App-Pakete enthält, anstatt alle App-Pakete in den Ordner einzubinden. Durch das Enthalten von Verweisen auf App-Pakete anstelle der Dateien selbst reduziert ein flat bundle die Zeit, die zum Packen und Herunterladen einer App benötigt wird.

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 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 Sie Ihrer UWP-App ermöglichen, Dienste für eine andere universelle Windows-App bereitzustellen. 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 Nutzen eines App-Diensts .

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 vielleicht verfügt eine Enterprise-Suite von Apps über einen gemeinsamen App-Dienst zur Rechtschreibprüfung, der für die anderen Apps in der Suite verfügbar ist.

Installation von UWP-App-Streaming

Die Streaminginstallation ist eine Möglichkeit, die Bereitstellung Ihrer App für Benutzer zu optimieren. Anstatt darauf zu warten, dass die gesamte App heruntergeladen wird, bevor Sie sie verwenden können, können Benutzer mit der App interagieren, 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 zusätzliche Inhalte für den Rest der App zu segmentieren. Weitere Informationen und Implementierungsdetails finden Sie unter Installieren von UWP-App-Streaming .

Weitere Informationen

Erstellen und Verwenden eines App-Diensts
Einführung in Bestandspakete
Paketerstellung mit dem Verpackungslayout
Optionale Pakete und die Erstellung zugehöriger Sets
Entwickeln mit Bestandspaketen und Paketfaltung
Installieren von UWP-App-Streaming
Flat-Bundle-App-Pakete
Windows.ApplicationModel.AppService-Namespace
Windows.ApplicationModel.Extensions-Namespace