none
Fragen zu WCF (Smartphone-App) RRS feed

  • 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

    Dienstag, 17. November 2015 13:04

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

    Dienstag, 24. November 2015 09:39

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.

    Mittwoch, 18. November 2015 11:01
  • 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

    Dienstag, 24. November 2015 09:39