Dans une situation où l'interface de l'interface utilisateur est construite à l'aide du nouveau style d'applications Metro pour Windows 8 et que vous souhaitez qu'elle communique avec une application .NET exécutée sur le bureau sur la même machine locale (par exemple, une application de service Windows).
Quelles formes de communication interprocessus sont disponibles entre l'application Metro et l'application de bureau?
Merci à Pavel Minaev de l'équipe Visual Studio, qui a fourni quelques informations initiales ici dans un commentaire, cité:
Selon Martyn Lovell, il n'y a aucun mécanisme délibéré pour cela, et certains qui pourraient être utilisés pour cela sont intentionnellement restreints. Les canaux nommés ne sont pas là, par exemple, ni les fichiers mappés en mémoire. Il existe des sockets (y compris des sockets serveur), mais lors de la connexion à localhost, vous ne pouvez vous connecter qu'à la même application. Vous pouvez utiliser des fichiers normaux dans l'un des "dossiers connus" partagés (Documents, Images, etc.), mais c'est un hack assez grossier qui nécessite une interrogation et qui est visible par l'utilisateur. - Pavel Minaev commentant cette question
Donc, à défaut d'approches normales, je pensais utiliser des services Web ou lire / écrire dans une base de données afin d'obtenir une certaine forme de communication, ce qui semble excessif lorsque les processus s'exécutent sur la même machine.
Ce que je tente ici a-t-il un sens? Je peux voir la nécessité pour une application de métro d'être l'interface utilisateur frontale d'un service existant qui s'exécute sur le bureau. Ou est-il préférable d'utiliser simplement WPF pour l'interface utilisateur frontale exécutée sur le bureau (c'est-à-dire une application non métropolitaine).