Em uma situação em que você constrói o front-end da interface do usuário usando o novo estilo Metro de aplicativos para Windows 8 e gostaria que ele se comunicasse com um aplicativo .NET em execução na área de trabalho na mesma máquina local (por exemplo, um aplicativo de serviço do Windows).
Quais formas de comunicação entre processos estão disponíveis entre o aplicativo metro e o aplicativo de desktop?
Agradecemos a Pavel Minaev, da equipe do Visual Studio, que forneceu algumas informações iniciais aqui em um comentário, citando:
Segundo Martyn Lovell, não existe nenhum mecanismo deliberado para isso, e alguns que poderiam ser usados para isso são intencionalmente restritos. Os pipes nomeados não estão lá, por exemplo, nem os arquivos mapeados na memória. Existem soquetes (incluindo soquetes de servidor), mas ao conectar-se ao host local, você pode conectar-se apenas ao mesmo aplicativo. Você pode usar arquivos normais em uma das "pastas conhecidas" compartilhadas (Documentos, Imagens, etc.), mas esse é um hack razoavelmente grosseiro que requer pesquisa e fica visível para o usuário. - Pavel Minaev comentando sobre esta questão
Por isso, falhando nas abordagens normais, eu estava pensando em usar serviços da Web ou ler / gravar em um banco de dados para obter alguma forma de comunicação, que parece um exagero quando os processos estão em execução na mesma máquina.
O que estou tentando aqui faz sentido? Percebo a necessidade de um aplicativo de metrô ser a interface do usuário de front-end para um serviço existente em execução na área de trabalho. Ou é melhor usar apenas o WPF para a interface do usuário front-end em execução na área de trabalho (por exemplo, um aplicativo não metropolitano).