Empfehlungen für .NET Web Service Format / Protokoll für Android, iPhone, etc. Integration

8

Ich erstelle einen Webdienst für meine ASP.NET MVC 3-Website. Idealerweise möchte ich, dass alle Clients (meine Webseiten, iPhone-Anwendung, Android-Anwendung, Windows Phone 7-Anwendung usw.) dieselbe Service-Schicht verwenden, um Daten zu laden und zu speichern.

Ich bin neu in der mobilen Entwicklung und habe mich gefragt, ob es einen bevorzugten Mechanismus - SOAP / JSON / etc - gibt, um ein heterogenes Mobilgeräte-Setup zu verwenden. Insbesondere frage ich mich, ob Android und iOS bessere Bibliotheken / Unterstützung für ein Protokoll als ein anderes haben oder ob die wichtigsten mobilen Plattformen eine starke Unterstützung für alle Protokolle haben. Ich frage mich auch, ob alles in Ordnung ist, wenn es darum geht, diese Dienste zu sichern.

Jeder Rat würde sehr geschätzt werden

Danke

JP

    
JP. 09.09.2011, 15:56
quelle

4 Antworten

14

Ich würde einen REST (ful) Dienst mit JSON vorschlagen.

Sowohl Android als auch iOS haben Bibliotheken, die das Parsen von XML und JSON unterstützen, jedoch sind die JSON-Bibliotheken etwas einfacher zu benutzen und ein wenig schneller.

Mit etwas mehr Aufwand können Sie Ihrem Dienst erlauben, sowohl XML als auch JSON bereitzustellen / zu verwenden.

Es wäre vorzuziehen, SOAP zu vermeiden, da es ausführlicher und nicht so geeignet für mehr bandbreiten- / batterieempfindliche Mobilgeräte ist.

    
Rob 13.09.2011, 03:15
quelle
2

Dies wäre eine große Chance für Sie, WCF-Datendienste a> zusammen mit Entity Framework . Sie können es sehr schnell erstellen und es stellt Ihr Informationsmodell unter Verwendung des internationalen Standards OData sowohl in XML als auch in JSON dar. Die Schnittstelle ist über REST zugänglich. Keine Probleme bei der Interaktion mit Front-End-Technologie, Fat, Web oder mobilen Clients.

UND Sie haben alle Vorteile der Wiederverwendung von C # .NET-Kenntnissen, Visual Studio und erstellten Assemblys, um bei Bedarf auch eine engere Integration mit Windows-Anwendungen zu ermöglichen. Es hat sicherlich den Trick für mich gemacht!

Also:

  1. Erstellen Sie Ihr Anwendungsmodell mit Entity Framework. Entweder die Datenbank zuerst, wenn Sie bereits ein physisches Datenmodell haben, oder das Modell zuerst, wenn Sie von vorne anfangen.
  2. Setzen Sie das erstellte Informationsmodell mit WCF-Dataservices (5 Zeilen Code) frei

Sie finden eine Anleitung unter: Ссылка

Glückliche Kodierung!

    
kroonwijk 16.09.2011 11:52
quelle
1

Ich habe fast die gleiche Situation und was mache ich, ich mache WCFrest-Dienste für Android und iPhone.

Im Hinblick auf die Sicherheit verwende ich einen rollenbasierten Mitgliedschaftsanbieter. Also habe ich einen Benutzer für die mobilen Clients mit der Rolle 'Mobile Clients' erstellt und gebe die Benutzer-ID (GUID) als 'API-Schlüssel' an den Android- und iPhone-Entwickler.

Der iPhone- und Android-Entwickler muss den 'API-Schlüssel' in der Kopfzeile der Anfrage senden.

bevor ich irgendeine Methode in meinem WCF ausführe, prüfe ich den API-Schlüssel und überprüfe auch, ob die Anfrage von einem Android- oder iPhone-Gerät stammt.

Ich hoffe, das wird Ihnen ein wenig helfen, Ihre Entwicklung zu planen ..:)

    
kandroid 13.09.2011 19:37
quelle
0

Versuchen Sie es mit ksoap2 und lassen Sie Ihre WCF-Dienste die basalHTTP-Bindung verwenden.

Wenn Sie nur primitive Typen als Parameter haben, sollte das sehr einfach sein. Mit etwas Arbeit können Sie es auch für komplexere Typen verwenden.

    
Muzikant 17.09.2011 04:58
quelle

Tags und Links