Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Windows disponibiliza várias tecnologias que permitem que a sua aplicação forneça funcionalidades a outras aplicações ou consome complementos de terceiros. Este artigo compara as opções de extensibilidade disponíveis para aplicações de ambiente de trabalho do SDK de Aplicações Windows.
Visão geral das opções de extensibilidade
| Tecnologia | Description | A identidade do pacote é necessária | OS mínimo |
|---|---|---|---|
| Serviços de aplicação | Comunicação de pedido/resposta entre aplicações via AppServiceConnection |
Yes | Windows 10 1607 |
| Extensões de aplicações | Modelo de plug-in — a aplicação anfitriã descobre conteúdos de pacotes de extensão | Yes | Windows 10 1607 |
| Extensões de pacotes | Extensibilidade mais ampla ao nível do pacote com uap17:PackageExtension |
Yes | Windows 11 |
| Pacotes opcionais | Pacotes de conteúdo adicionais que complementam uma aplicação principal | Yes | Windows 10 1709 |
| Pacotes de recursos | Ativos de língua, escala e acessibilidade separados por mercado | Yes | Windows 10 |
Escolher a tecnologia certa
Utilize serviços de aplicações quando
- Precisas de comunicação bidirecional entre aplicações separadas.
- A aplicação de consumo envia um pedido e espera por resposta.
- Queres expor uma interface semelhante a uma API para outras aplicações.
Exemplo: Um serviço de tradução que outras aplicações podem usar para traduzir texto.
Usar extensões de aplicação quando
- A sua aplicação precisa de um modelo de plug-ins onde terceiros forneçam conteúdo, temas ou complementos.
- As extensões são descobertas em tempo de execução a partir dos pacotes instalados.
- As extensões fornecem dados ou configuração, não código executável (a execução de código deve usar serviços de aplicação).
Exemplo: Um editor de imagens que descobre pacotes de filtros a partir de pacotes de extensão instalados.
Use extensões de pacote quando
- É preciso uma extensibilidade mais ampla ao nível dos pacotes no Windows 11.
- As extensões precisam de acesso a mais conteúdo do pacote do que o
PublicFoldermodelo permite.
Utilize pacotes opcionais quando
- Tens conteúdo adicional (DLC, funcionalidades premium) distribuído em pacotes separados.
- O conteúdo é escrito pela mesma editora.
Padrões de arquitetura
Serviço de aplicação com descoberta de extensões
Combine extensões de aplicação com serviços de aplicação para uma arquitetura completa de plug-ins:
- A sua aplicação anfitriã usa
AppExtensionCatalogpara descobrir as extensões instaladas. - Cada extensão declara propriedades que descrevem as suas capacidades.
- Quando o utilizador ativa uma extensão, a aplicação anfitriã liga-se ao serviço de aplicação da extensão para comunicação bidirecional.
┌─────────────────┐ ┌──────────────────┐
│ Host app │ │ Extension app │
│ │ │ │
│ AppExtension │◄────►│ AppExtension │
│ Catalog │ │ declaration │
│ │ │ │
│ AppService │◄────►│ AppService │
│ Connection │ │ provider │
└─────────────────┘ └──────────────────┘
Apenas extensão de conteúdo
Para cenários mais simples onde as extensões fornecem conteúdo estático (temas, modelos, ficheiros de dados):
- A aplicação anfitriã deteta extensões através de
AppExtensionCatalog. - Lê ficheiros da extensão
PublicFolder. - Não é necessário nenhum serviço de aplicação.
Diferenças em relação à extensibilidade do UWP
As tecnologias de extensibilidade aqui descritas funcionam da mesma forma nas aplicações de ambiente de trabalho do SDK de Aplicações Windows como no UWP, com um requisito: identidade de pacote MSIX. Todas as funcionalidades de extensibilidade dependem do manifesto do pacote para declarações e do catálogo de pacotes para descoberta.
Se a sua aplicação de ambiente de trabalho não estiver empacotada, não pode usar estas tecnologias de extensibilidade. Considere abordagens alternativas tais como:
- Interfaces de plug-in baseadas em COM
- Descoberta de extensões baseada em sistema de ficheiros
- Tubos nomeados ou outros mecanismos de IPC
Conteúdo relacionado
Windows developer