AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Kommunikation zwischen Delphi und Metro App (WCF?)
Thema durchsuchen
Ansicht
Themen-Optionen

Kommunikation zwischen Delphi und Metro App (WCF?)

Offene Frage von "CodeX"
Ein Thema von CodeX · begonnen am 9. Sep 2012 · letzter Beitrag vom 13. Sep 2012
Antwort Antwort
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.643 Beiträge
 
#1

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

  Alt 9. Sep 2012, 10:03
Leider bekomme ich das nicht so recht mit meinem Delphi XE nachvollzogen. Ich weiß nichtmal, wie ich an "Add Reference" kommen soll. Da wird sich seit Veröffentlichung der Artikel vor 5 Jahren wohl ein bisschen was verändert haben...

Kann mir da bitte jemand weiterhelfen?
Äh, nein. Die beiden Artikel beziehen sich auf Delphi 2007, und zwar dort für Delphi .NET. Delphi für .NET wurde dann 2009 durch Oxygene for .NET aka Delphi Prism ersetzt.
Das heisst in XE ist das Zeug gar nicht mehr drin - da müsstest Du schon Prism / Oxygene nehmen. WCF (Windows Communication Foundation) ist eine reine .NET-Technologie, die Du von Delphi aus gar nicht ansprechen kannst.

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).

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).

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).
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
CodeX

Registriert seit: 30. Okt 2004
475 Beiträge
 
Delphi 12 Athens
 
#2

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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz