Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 在多个移动平台上设计消费服务_.net_Iphone_Android_Web Services_Windows Phone 7 - Fatal编程技术网

.net 在多个移动平台上设计消费服务

.net 在多个移动平台上设计消费服务,.net,iphone,android,web-services,windows-phone-7,.net,Iphone,Android,Web Services,Windows Phone 7,我正在为一些数据构建和设计一个(大部分)只读接口。我将使用ASP.NETMVC构建一个psudo restful API。我想知道是否有人可以提供一些资源来为各种移动平台构建完整的客户端应用程序,如iPhone、Android、Blackberry、Windows mobile等 我认为提供XML数据将是最简单和最普遍的,但是以objective-C为例解析XML对我来说听起来并不有趣,但也许有一些好的库可以帮助简化这项任务 换句话说,什么formt最快在客户端实现?iPhone或Android

我正在为一些数据构建和设计一个(大部分)只读接口。我将使用ASP.NETMVC构建一个psudo restful API。我想知道是否有人可以提供一些资源来为各种移动平台构建完整的客户端应用程序,如iPhone、Android、Blackberry、Windows mobile等

我认为提供XML数据将是最简单和最普遍的,但是以objective-C为例解析XML对我来说听起来并不有趣,但也许有一些好的库可以帮助简化这项任务


换句话说,什么formt最快在客户端实现?iPhone或Android有JSON PARRS吗?我知道有.NETJSON解析器,但不确定其他平台是否有更好的格式?还是我应该坚持使用纯XML,并在每个平台上以不同的方式处理它?

我曾经在iPhone上解析过XML。如果您正在寻找DOM解析器,我建议您选择第三方库。使用方便,性能良好。 如果您正在寻找基于流的解析器,iphonesdk中的NSXMLParser类将是不错的选择。 JSON被认为比XML更轻量级,因此更适合移动设备。有用于iPhone JSON解析的第三方库。你需要用谷歌搜索它们

坚持使用纯XML并处理它 在每个平台上都不同


这确实是唯一的前进之路。没有神奇的跨平台框架,如果有,它仍然会存在。

除非您有充分的理由使用XML,否则请使用JSON。web服务的绝大多数响应都可以使用JSON进行充分描述,并且有许多库(至少在iPhone上,我假设在Android等平台上也是如此)允许您在2-3行代码中将JSON解析为本机数据结构

在iPhone平台上,可以轻松解析JSON


我想问题是:假设您正在使用的每个客户机平台都有一个JSON解析框架,那么使用XML来证明必须编写3行以上的解析代码有什么好处?在大多数情况下,没有优势。

使用Json,所有移动平台都有Json解析器。对于Android来说,这可能不是最有效的解决方案,但可能是最实用的


Android本机支持XML,但不支持Json。换句话说,我想说的是Android手机配备了硬件加速的XML解析器(基本上是他们自己专用的一小块硅),但说到Json解析,Android手机没有,所以他们必须使用他们的CPU来完成这项工作。从理论上讲,这意味着Android解析Json将比解析XML使用更多的CPU周期、更多的能量,因此需要更多的电池。也就是说,不要落入过早优化的陷阱,很有可能,无论存在什么差异,都可能对您的用例场景无关紧要(不要相信我的话,只要在您的应用程序完成后使用您的探查器即可)

您可以创建一个WCF REST服务,以json和xml两种格式公开结果,并根据设备选择更适合设备功能的格式。而且,这比创建ASP.MVC“伪restful API”要好

WCF服务如下所示:

[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);
}

您可以找到一个创建WCF Rest服务的好例子

您能提供一些关于硬件中XML加速的信息或指针吗?我以前从未听说过。也从未听说ARM有xml accel IP。