Einzelnen Beitrag anzeigen

mjustin

Registriert seit: 14. Apr 2008
3.005 Beiträge
 
Delphi 2009 Professional
 
#6

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

  Alt 9. Sep 2012, 15:37
Meinst Du, weil mal per SOAP die WCF-Schnittstelle bedienen kann und per REST nicht?
Dann als Vorlage einfach "SOAP Server Application" nehmen?
Der erste deiner beiden Links (http://msdn.microsoft.com/en-us/library/hh556233.aspx) besagt, dass WCF nun auch nicht mehr empfohlen wird:

Zitat:
Use the WinRT syndication APIs instead of those exposed by WCF. For more information see, WinRT Syndication API
Typisch Microsoft

Diese API scheint Atom und RSS zu unterstützen.

Das sind zum Glück offene Standards.

Aber da ich kein Windows 8 und das passende Visual Studio habe, kann ich nicht sagen ob WCF nicht mehr geht bzw. auf lokale Server zugreifen kann.

WCF Clients können problemlso auf nicht-.NET Webservices zugreifen, die entsprechend konfiguriert sind - zum Beispiel in Java mittels JAX-WS).
Die naheliegende Frage wäre ja dann, wie ich das für Delphi konfigurieren kann?
In Delphi kann man da leider nicht viel konfigurieren. Ich habe z.B. Microsoft Dynamics CRM nur über einen C# Proxy anbinden können. Daher ist die Alternative RSS / Atom eigentlich nicht so schlecht, die jetzt von Microsoft empfohlen wird.

Alternativ können natürlich auch andere Methoden der Interprozesskommunikationen benutzt werden, also Named Pipes, Memory Mapped Files, oder Message Queues (MSMQ und Co.)
Ich war der Meinung, dass zumindest die ersten beiden Optionen bei Metro nicht erlaubt seien!?
Sorry, das bezog sich nur auf die Verbindung zwischen dem C# Service und der Delphi Anwendung, nicht die Verbindung Metro -> Service.

Für die "beste" Lösung ist natürlich wichtig zu wissen, wie die Kommunikation aussehen soll - ob der Modern UI App Client Anfragen an die Delphi Anwendung senden soll, oder auch von Delphi aktiv Nachrichten an die Modern UI App übermittelt werden sollen.
Ich wäre erstmal glücklich, wenn der aktive Weg von Metro -> Delphi funktionieren würde. Damit hätte ich gut 90% meiner Usecases abgedeckt. Die restlichen 10% würde ich danach zwar auch noch gerne angehen, aber ich glaube das ist noch ein ganz neues Fass. Irgendwelche Möglichkeiten für Push-Benachrichtigungen wird es ja hoffentlich geben. Diese Möglichkeit würde ich mir gerne nicht verbauen.
Für den Weg Metro -> Request -> Delphi -> Response -> Metro ist RSS / Atom geeignet, da es Web-basiert ist.

Duplex WCF funktioniert laut Stackoverflow nicht mit Metro, aber es soll angeblich möglich sein eine Metro App mit weitgehenden Rechten für Internetkommunikation auszustatten (http://stackoverflow.com/a/7507232/80901).

Wichtig ist noch die Frage der Topologie: soll die Delphi Anwendung der "Server" für viele Metro-Clients sein (1:N), oder sollen peer-to-peer Verbindungen (von einer Metro App zu einem Delphi Prozess, also 1:1) hergestellt werden?

p.s. in diesem FAQ wird erwähnt, dass es aus Metro Anwendungen keine localhost Verbindungen geben kann (ausser zur gleichen App):

How can a Metro app in Windows 8 communicate with a backend desktop app on the same machine?

Das bedeutet, die Delphi App muss auf einem anderen Rechner installiert sein.

p.p.s:

zu WCF Funktionen in Metro: WCF in Metro apps – supported functionality
Michael Justin
habarisoft.com

Geändert von mjustin ( 9. Sep 2012 um 15:46 Uhr)
  Mit Zitat antworten Zitat