Rozšíření aplikace o služby, rozšíření a balíčky

Windows poskytuje několik technologií, které vaší aplikaci umožňují poskytovat funkce jiným aplikacím nebo využívat doplňky třetích stran. Tento článek porovnává dostupné možnosti rozšiřitelnosti pro desktopové aplikace Windows App SDK.

Přehled možností rozšiřitelnosti

Technologie Description Požadovaná identita balíčku Minimální operační systém
App Services Komunikace požadavků a odpovědí mezi aplikacemi prostřednictvím AppServiceConnection Ano Windows 10 1607
Rozšíření aplikací Model modulu plug-in – hostitelská aplikace zjišťuje obsah z balíčků rozšíření Ano Windows 10 1607
Rozšíření balíčků Širší rozšiřitelnost na úrovni balíčků s využitím uap17:PackageExtension Ano Windows 11
Volitelné balíčky Další balíčky obsahu, které doplňují hlavní aplikaci Ano Windows 10 1709
Balíčky prostředků Jazykové zdroje, zdroje pro měřítko a přístupnost oddělené podle trhu Ano Systém Windows 10

Volba správné technologie

Použijte aplikační služby, když

  • Potřebujete obousměrnou komunikaci mezi samostatnými aplikacemi.
  • Aplikace příjemce odešle požadavek a čeká na odpověď.
  • Chcete zpřístupnit rozhraní podobné rozhraní API pro jiné aplikace.

Příklad: Služba překladu, kterou můžou ostatní aplikace volat k překladu textu.

Používejte rozšíření aplikací, když

  • Vaše aplikace potřebuje model modulů plug-in, kde třetí strany poskytují obsah, motivy nebo doplňky.
  • Rozšíření jsou zjištěna za běhu z nainstalovaných balíčků.
  • Rozšíření poskytují data nebo konfiguraci, ne spustitelný kód (spouštění kódu by mělo používat aplikační služby).

Příklad: Editor obrázků, který zjišťuje balíčky filtrů z nainstalovaných balíčků rozšíření.

Použití rozšíření balíčků v případech, kdy

  • Pro Windows 11 potřebujete širší rozšiřitelnost na úrovni balíčků.
  • Rozšíření potřebují přístup k více obsahu balíčku, než PublicFolder model umožňuje.

Používejte volitelné balíčky, když

  • Máte další obsah (DLC, prémiové funkce) distribuovaný jako samostatné balíčky.
  • Obsah je vytvořený stejným vydavatelem.

Vzory architektury

App Service s vyhledáváním rozšíření

Kombinujte rozšíření aplikací se službami aplikací pro kompletní architekturu zásuvných modulů:

  1. Vaše hostitelská aplikace používá AppExtensionCatalog ke zjišťování nainstalovaných rozšíření.
  2. Každé rozšíření deklaruje vlastnosti, které popisují jeho schopnosti.
  3. Když uživatel aktivuje rozšíření, hostitelská aplikace se připojí ke službě App Service rozšíření pro obousměrnou komunikaci.
┌─────────────────┐      ┌──────────────────┐
│   Host app       │      │  Extension app    │
│                  │      │                   │
│ AppExtension     │◄────►│ AppExtension      │
│   Catalog        │      │   declaration     │
│                  │      │                   │
│ AppService       │◄────►│ AppService        │
│   Connection     │      │   provider        │
└─────────────────┘      └──────────────────┘

Pouze rozšíření obsahu

Pro jednodušší scénáře, kdy rozšíření poskytují statický obsah (motivy, šablony, datové soubory):

  1. Hostitelská aplikace zjišťuje rozšíření prostřednictvím AppExtensionCatalog.
  2. Čte soubory z přípony PublicFolder.
  3. Není potřeba žádná aplikační služba.

Rozdíly od rozšiřitelnosti UPW

Technologie rozšiřitelnosti popsané zde fungují stejným způsobem jako desktopové aplikace Windows App SDK jako v UPW s jedním požadavkem: identita balíčku MSIX. Všechny funkce rozšiřitelnosti spoléhají na manifest balíčku pro deklarace a katalog balíčků ke zjišťování.

Pokud je vaše desktopová aplikace rozbalená, nemůžete tyto technologie rozšiřitelnosti použít. Zvažte alternativní přístupy, například:

  • Rozhraní zásuvných modulů na bázi COM
  • Zjišťování přípon založených na systému souborů
  • Pojmenované kanály nebo jiné mechanismy IPC