In einer Situation, in der Sie das UI-Frontend mit dem neuen Metro-Stil von Apps für Windows 8 erstellt haben und möchten, dass es mit einer .NET-Anwendung kommuniziert, die auf dem Desktop auf demselben lokalen Computer ausgeführt wird (z. B. einer Windows-Dienst-App).
Welche Formen der Interprozesskommunikation stehen zwischen der Metro-App und der Desktop-App zur Verfügung?
Vielen Dank an Pavel Minaev vom Visual Studio-Team, der hier in einem Kommentar erste Informationen zur Verfügung gestellt hat.
Laut Martyn Lovell gibt es dafür keinen absichtlichen Mechanismus, und einige, die dafür verwendet werden könnten, sind absichtlich eingeschränkt. Named Pipes sind beispielsweise nicht vorhanden, und es sind auch keine Speicherzuordnungsdateien vorhanden. Es gibt Sockets (einschließlich Server-Sockets), aber wenn Sie eine Verbindung zu localhost herstellen, können Sie nur eine Verbindung zu derselben App herstellen. Sie könnten normale Dateien in einem der freigegebenen "bekannten Ordner" (Dokumente, Bilder usw.) verwenden, aber das ist ein ziemlich grober Hack, der eine Abfrage erfordert und für den Benutzer sichtbar ist. - Pavel Minaev kommentiert dieses Problem
Wenn ich also an normalen Ansätzen scheiterte, dachte ich daran, Webdienste zu verwenden oder in eine Datenbank zu lesen / schreiben, um eine Form der Kommunikation zu erreichen. Beides scheint übertrieben, wenn die Prozesse auf demselben Computer ausgeführt werden.
Ist das, was ich hier versuche, sinnvoll? Ich sehe, dass eine Metro-App die Frontend-Benutzeroberfläche für einen vorhandenen Dienst sein muss, der auf dem Desktop ausgeführt wird. Oder ist es besser, WPF nur für die Frontend-Benutzeroberfläche zu verwenden, die auf dem Desktop ausgeführt wird (dh eine Nicht-Metro-App).