Einzelnen Beitrag anzeigen

CodeX

Registriert seit: 30. Okt 2004
471 Beiträge
 
Delphi 12 Athens
 
#4

AW: Kommunikation zwischen Delphi und Metro App (WCF?)

  Alt 9. Sep 2012, 13:55
Vielen Dank für Deine Antwort! Ich freue mich, dass ich nicht der einzige bin, den die Thematik interessiert.

WCF (Windows Communication Foundation) ist eine reine .NET-Technologie, die Du von Delphi aus gar nicht ansprechen kannst.
Ohoh, das ist aber nicht gut. Ich dachte, da es sich um DLLs handelt, lassen sich deren Schnittstellen auch ganz normal verwenden. Wie sieht's dann statt dessen mit WWSAPI aus? Eine kurze Recherche zeigte, dass es das native Äquivalent zu WCF ist.
Letztlich ist es ja nur eine HTTP-Kommunikation. Der besagte MetropolisSvc-Service aus XE3 kommuniziert ja scheinbar auch nur per REST.
Dazu gleich mal zwei Fragen:
  1. Ich finde leider keine verlässliche aktuelle Aussage von Microsoft, dass Metro-Apps mit einem lokalen Webserver kommunizieren dürfen. Vor ca. einem Jahr hieß es noch, dass dies nicht erlaubt sei. Es scheint mir aber so, als wäre diese Einschränkung aufgehoben worden. Findet jemand eine Quelle dazu?
  2. Was ist die simpelste Möglichkeit, über meine Anwendung eine REST-Schnittstelle bereitzustellen? Hier wird "DataSnap REST Application" verwendet. Ich finde das nicht in meinem Delphi XE. Muss/Kann man das nachinstallieren?
Als alternative würde ich hergehen, und eine Kommunikation via TCP/IP (z.B. mit den Indy-Komponenten) aufbauen.
Problematisch wird höchstens, dass die Metro-Apps in dem Moment suspended werden, in dem sie verlassen wird. Das heisst in genau dem Moment wo die App gewechselt wird, steht der Prozess (und zwar 'hart' - wenn ein Halbes Netzwerk-Paket abgearbeitet wurde, dann wird die andere hälfte erst weiter bearbeitet, wenn die App wieder in den Vordergrund kommt).
Woher hast Du diese Information? Ausprobiert? Gelesen? Kommt das irgendwo im Video?
Warum sollte die Metro-App nicht mehr im Vordergrund sein, wenn sie über TCP/IP kommuniziert?

Zudem darf sich eine Metro-App an und für sich nicht darauf verlassen, dass auf der gleichen Maschine ein bestimmter Dienst läuft (und ein Dienst nicht, dass eine Metro-App läuft).
Gut, das ist ein anderes Problem. Da muss/kann man sich irgendwie mit arrangieren.

In diesem Video hier wird das Konzept gut beschrieben: http://channel9.msdn.com/Events/BUIL...2011/TOOL-789C (Vor allem irgendwo bei ca. ±47 Minuten).
Das Video ist auf jeden Fall eine gute Info, danke! Ich habe mir jetzt nur 15min an der besagten Stelle angeschaut, werde es mir aber noch komplett anschauen. Allerdings muss ich sagen, dass der Typ wohl nur über ein bestimmtes Teil-Thema gut Bescheid weiß. Die meisten Fragen zur Interoperabilität beantwortet er mit "I don't know. Go talk with the Windows guys", zudem ist das Video schon 1 Jahr alt (seit dem hat sich an den Schnittstellen und Spezifikationen noch einiges geändert). Da sollte man also vorsichtig sein.
Nur Delphi schafft es, einem ein Lächeln zu schenken, wenn man sich beim Schreiben von := vertippt und stattdessen ein :) erscheint.
  Mit Zitat antworten Zitat