Utöka din app med tjänster, tillägg och paket

Windows innehåller flera tekniker som gör att din app kan tillhandahålla funktioner till andra appar eller använda tillägg från tredje part. I den här artikeln jämförs tillgängliga utökningsalternativ för Windows App SDK skrivbordsappar.

Översikt över utökningsalternativ

Teknologi Description Paketidentitet krävs Lägsta operativsystem
Apptjänster Meddelande om begäran/svar mellan appar via AppServiceConnection Yes Windows 10 1607
Apptillägg Plugin-modell – värdappen identifierar innehåll från tilläggspaket Yes Windows 10 1607
Pakettillägg Bredare utökningsbarhet på paketnivå med uap17:PackageExtension Yes Windows 11
Valfria paket Ytterligare innehållspaket som kompletterar en huvudapp Yes Windows 10 1709
Resurspaket Språk-, skal- och tillgänglighetstillgångar avgränsade efter marknad Yes Windows 10

Välja rätt teknik

Använda apptjänster när

  • Du behöver dubbelriktad kommunikation mellan separata appar.
  • Konsumentappen skickar en begäran och väntar på ett svar.
  • Du vill exponera ett API-liknande gränssnitt för andra appar.

Exempel: En översättningstjänst som andra appar kan anropa för att översätta text.

Använd apptillägg när

  • Din app behöver en plugin-modell där tredje part tillhandahåller innehåll, teman eller tillägg.
  • Tillägg upptäcks under körning från installerade paket.
  • Tillägg tillhandahåller data eller konfiguration, inte körbar kod (kodkörning bör använda apptjänster).

Exempel: En bildredigerare som identifierar filterpaket från installerade tilläggspaket.

Använd pakettillägg när

  • Du behöver bredare utökningsbarhet på paketnivå på Windows 11.
  • Tillägg behöver åtkomst till mer paketinnehåll än vad modellen PublicFolder tillåter.

Använd valfria paket när

  • Du har ytterligare innehåll (DLC, premiumfunktioner) distribuerat som separata paket.
  • Innehållet har skapats av samma utgivare.

Arkitekturmönster

App Service med identifiering av tillägg

Kombinera apptillägg med apptjänster för en fullständig plugin-arkitektur:

  1. Värdappen använder AppExtensionCatalog för att identifiera installerade tillägg.
  2. Varje tillägg deklarerar egenskaper som beskriver dess funktioner.
  3. När användaren aktiverar ett tillägg ansluter värdappen till tilläggets apptjänst för dubbelriktad kommunikation.
┌─────────────────┐      ┌──────────────────┐
│   Host app       │      │  Extension app    │
│                  │      │                   │
│ AppExtension     │◄────►│ AppExtension      │
│   Catalog        │      │   declaration     │
│                  │      │                   │
│ AppService       │◄────►│ AppService        │
│   Connection     │      │   provider        │
└─────────────────┘      └──────────────────┘

Endast innehållstillägg

För enklare scenarier där tillägg tillhandahåller statiskt innehåll (teman, mallar, datafiler):

  1. Värdappen upptäcker tillägg via AppExtensionCatalog.
  2. Den läser filer från tilläggets PublicFolder.
  3. Ingen apptjänst behövs.

Skillnader från utökningsbarhet för UWP

De utökningstekniker som beskrivs här fungerar på samma sätt i Windows App SDK skrivbordsappar som i UWP, med ett krav: MSIX-paketidentitet. Alla utökningsfunktioner förlitar sig på paketmanifestet för deklarationer och paketkatalogen för identifiering.

Om ditt skrivbordsprogram inte är paketerat kan du inte använda dessa utbyggnadstekniker. Överväg alternativa metoder som:

  • COM-baserade plugin-gränssnitt
  • Filsystembaserad upptäckt av tillägg
  • Namngivna rör eller andra IPC-mekanismer