Benutzer mit den meisten Antworten
Fragen zu WCF (Smartphone-App)

Frage
-
Hallo,
ich habe Fragen für ein besseres Verständnis.
Zu Hause auf einem PC läuft ein C#/WPF/WCF-Programm. Auf die Daten will ich mit einer eigenen Smartphone-App (HTML5/JavaScript) zugreifen.1. Kann ich mit der Smartphone-App über Router/VPN und WCF auf den PC zugreifen (http://localhost:8080/...)? Wo gibt es Beispiele?
2. Kann der WCF-Dienst auch dann von der Smartphone-App genutzt werden, wenn es ein selbsthosteter Dienst (also nicht IIS) ist?
2. Soll der WCF-ServiceHost nach jedem Datenaustausch wieder geschlossen werden oder soll dieser erst geschlossen werden, wenn das Programm beendet wird?
3. Ist es sinnvoll REST einzusetzen?
Alexander
Antworten
-
Hallo,
Zu Frage 1:
Das hängt davon ab, ob dein PC aus dem Internet erreichbar ist. Das wiederum ist abhängig davon, ob Du eine statische IP Adresse hast und wie dein PC, Modem, Router, etc. konfiguriert sind.
Es gibt auch Services, welche eine statische IP simulieren, so wie dieser hier: http://www.noip.com/free
Zu Frage 2:
Wie der Dienst gehostet ist spielt keine Rolle.
Zu Frage 3:
Den WCF ServiceHost würde ich laufen lassen.
Zu Frage 4:
REST ist das zeitgemässe Paradigma für WebServices. Ob Du REST oder SOAP einsetzt ist eigentlich Geschmacksache. Von mobilen Geräten her ist der Aufruf von REST oft einfacher.
Mit Deiner Aufstellung hast Du einige Problempunkte:
- Die Erreichbarkeit von Deinem Server (PC)
- Der WebService läuft nur, wenn die WPF Anwendung läuft
Vieleich wäre es sinnvoll, das Backend für deine mobile app von deiner WPF Anwendung zu trennen. D.h. Du hättest dann eine Datenbank, welche von der WPF Anwendung benützt wird und zusätzlich hättest Du einen WCF Service oder ein Web API Projekt, welches ebenfalls auf die Daten zugreift und diese für die App zur Verfügung stellt.
Überlege Dir auch ob Du die Azure Cloud benützen willst. Diese bietet gewisse Services "AppService", "Mobile Services", die für genau das ausgelegt sind, was Du machen willst. Dann hättest Du die Probleme oben erschlagen und bekämst erst noch unterstützung für Skalierung, Security, Offline-Fähigkeit, etc...
Gruss MM
PS: Please mark as answer if helpful. Thanks!
Blog: http://www.manuelmeyer.net
Twitter: https://twitter.com/manumeyer1- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 27. November 2015 09:15
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 4. Dezember 2015 08:30
Alle Antworten
-
Hallo AlexanderRi,
ich werde Dir gern helfen, aber ich kann es leider nicht. Ich werde die Kollegen diesbezüglich konsultieren. Hoffentlich wird folgender Link Deinem Fall hilfreich sein.
https://msdn.microsoft.com/en-us/library/bb840031.aspx?f=255&MSPPError=-2147217396
Gruß
Aleksander
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
-
Hallo,
Zu Frage 1:
Das hängt davon ab, ob dein PC aus dem Internet erreichbar ist. Das wiederum ist abhängig davon, ob Du eine statische IP Adresse hast und wie dein PC, Modem, Router, etc. konfiguriert sind.
Es gibt auch Services, welche eine statische IP simulieren, so wie dieser hier: http://www.noip.com/free
Zu Frage 2:
Wie der Dienst gehostet ist spielt keine Rolle.
Zu Frage 3:
Den WCF ServiceHost würde ich laufen lassen.
Zu Frage 4:
REST ist das zeitgemässe Paradigma für WebServices. Ob Du REST oder SOAP einsetzt ist eigentlich Geschmacksache. Von mobilen Geräten her ist der Aufruf von REST oft einfacher.
Mit Deiner Aufstellung hast Du einige Problempunkte:
- Die Erreichbarkeit von Deinem Server (PC)
- Der WebService läuft nur, wenn die WPF Anwendung läuft
Vieleich wäre es sinnvoll, das Backend für deine mobile app von deiner WPF Anwendung zu trennen. D.h. Du hättest dann eine Datenbank, welche von der WPF Anwendung benützt wird und zusätzlich hättest Du einen WCF Service oder ein Web API Projekt, welches ebenfalls auf die Daten zugreift und diese für die App zur Verfügung stellt.
Überlege Dir auch ob Du die Azure Cloud benützen willst. Diese bietet gewisse Services "AppService", "Mobile Services", die für genau das ausgelegt sind, was Du machen willst. Dann hättest Du die Probleme oben erschlagen und bekämst erst noch unterstützung für Skalierung, Security, Offline-Fähigkeit, etc...
Gruss MM
PS: Please mark as answer if helpful. Thanks!
Blog: http://www.manuelmeyer.net
Twitter: https://twitter.com/manumeyer1- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 27. November 2015 09:15
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 4. Dezember 2015 08:30