2010-04-27 1 views
2

Je construis et conçois une interface (pour la plupart) en lecture seule pour certaines données. Je vais utiliser ASP.NET MVC pour construire une API apaisante. Je me demande si quelqu'un peut fournir des ressources pour créer des applications client complètes pour diverses plates-formes mobiles, iPhone, Android, Blackberry, Windows Mobile, etc.Conception d'un service pour la consommation sur plusieurs plates-formes mobiles

Je pense que servir des données XML va être le le plus simple et universel, mais l'analyse de XML dans l'objectif-C, par exemple, ne me semble pas amusante, mais peut-être y at-il de bonnes bibliothèques pour faciliter cette tâche? En d'autres termes, quel formt sera le plus rapide à mettre en œuvre du côté client? Y a-t-il des parsrs JSON pour iPhone ou Android? Je sais qu'il existe des parseurs .NET JSON, mais je ne suis pas sûr des autres plates-formes - existe-t-il un autre format qui pourrait être amélioré? Ou devrais-je m'en tenir au XML pur et le traiter différemment sur chaque plate-forme?

Répondre

1

Vous pouvez créer un service WCF REST qui expose les résultats dans les deux formats, json et xml, et selon le périphérique, vous pouvez sélectionner le format qui correspond le mieux aux capacités du périphérique.Aussi, c'est bien mieux que de créer et ASP.MVC "API pseudo-reposant".

Le service WCF ressemblerait à ceci:

[ServiceContract] 
public interface IService 
{ 
    [OperationContract] 
    [WebInvoke(
     Method = "GET", 
     ResponseFormat = WebMessageFormat.Xml, 
     BodyStyle = WebMessageBodyStyle.Wrapped, 
     UriTemplate = "DoWork/xml/{ID}/{Filter}")] 
    void DoWork(int ID, string Filter); 

    [OperationContract] 
    [WebInvoke(
     Method = "GET", 
     ResponseFormat = WebMessageFormat.Json, 
     BodyStyle = WebMessageBodyStyle.Wrapped, 
     UriTemplate = "DoWork/json/{ID}/{Filter}")] 
    void DoWorkJson(int ID, string Filter); 
} 

Vous pouvez trouver un bon exemple pour la création d'un service de repos WCF here.

0

J'ai travaillé avec l'analyse XML sur iPhone. Si vous cherchez un parseur DOM, KissXML est une bibliothèque tierce que je vous suggère d'utiliser. C'est facile à utiliser et la performance est bonne. Si vous recherchez un analyseur basé sur les flux, les classes NSXMLParser dans le SDK iPhone seraient bonnes. JSON est considéré comme plus léger que XML et donc plus adapté aux appareils mobiles. Il existe une bibliothèque tierce pour l'analyse JSON pour iPhone. Vous auriez besoin de google pour eux.

0

bâton avec XML pur et de traiter avec elle sur chaque plate-forme différente

C'est vraiment la seule voie à suivre. Il n'y a pas de framework multi-plateforme magique, et s'il y en avait, ce serait toujours banned from the iPhone.

0

Sauf si vous avez une très bonne raison d'utiliser XML, utilisez JSON. La grande majorité des réponses d'un web-service peut être décrite de manière adéquate en utilisant JSON, et il existe un certain nombre de bibliothèques (au moins sur l'iPhone, je suppose que c'est la même chose sur Android et autres) qui vous permettent d'analyser JSON structures de données natives dans 2-3 lignes de code.

Sur la plate-forme iPhone, json-framework vous permet d'analyser JSON en toute simplicité. Je suppose que la question est: En supposant qu'il existe une structure d'analyse JSON pour chaque plate-forme client que vous utilisez, quel avantage obtenez-vous en utilisant XML qui justifie d'avoir à écrire plus de 3 lignes de code pour l'analyse? Pour la majorité des cas, il n'y a aucun avantage.

0

Utilisez Json, toutes les plates-formes mobiles ont des analyseurs Json. Pour Android, ce n'est peut-être pas la solution la plus efficace, mais c'est probablement la plus pragmatique. Android natif prend en charge XML, mais pas Json. En d'autres termes, ce que j'essaie de dire, c'est que les téléphones Android sont équipés d'un analyseur XML accéléré par le matériel (leur propre petit morceau de silicium dédié), mais en ce qui concerne l'analyse JSON, les téléphones Android ne l'ont pas. ils doivent donc utiliser leur processeur pour faire ce travail. En théorie, cela signifiera qu'Android utilisera plus de cycles CPU, plus d'énergie, et donc plus de batterie, pour analyser Json, que pour analyser XML. Cela étant dit, ne tombez pas dans le piège de l'optimisation prématurée, les chances sont, quelle que soit la différence sera probablement insignifiant pour votre scénario de cas d'utilisation (et ne me prenez pas au mot, utilisez votre profileur une fois que votre application est fini).

+1

Pouvez-vous donner des informations ou des pointeurs à l'accélération XML dans le matériel s'il vous plaît? Je n'en ai jamais entendu parler auparavant. Aussi jamais entendu dire que ARM a xml accel IP. – piotr

Questions connexes