Windows Phone 7访问云端数据的方式
WP7有多种获取数据的方式,除了使用资源文件和独立存储将数据保存到手机存储卡本身外,还可以通过多种方式来从服务器端或者云端获取数据。
▲WP7手机获取数据的方式
这里将云端访问方式分列为下表所示:
Web Service:顾名思义就是一个运行在Web上的服务。这个服务通过网络为我们的程序提供服务方法。类似一个远程的服务提供者。
比如,一个提供天气预报的网站需要随时更新天气情况,在WEB上挂上一个随时问讯最新天气情况的服务。我们的程序就可以从这个服务上获取到当前最新的天气信息。
说的简单点就是远程信息访问,专业点就是基于XML并利用SOAP协议实现跨平台信息传递的一种技术。
REST:即Representational State Transfer——表述性状态转移。是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。目前新浪微博、淘宝的接口都有基于REST的数据接口。
POX:Plain Old XML,对基本的XML标记语言的一种专称。
JSON:即 JavaScript Object Natation,它是一种轻量级的数据交换格式,它设计为人类可读的,但是也很容易通过计算机进行解析。
OData:OData开放数据协议是微软针对Google的GData推出的,旨在推广Web程序数据库格式标准化的开放数据协议,微软将 OData 定义为基于 HTTP、AtomPub 和 JSON 的协议,增强各种网页应用程序之间的数据兼容性,以提供多种应用、服务和数据商店的信息访问。并且,微软已经正式推出了 OData SDK,包含了 .NET、Java、PHP、Palm WebOS 和 iPhone 的支持。其中 .Net OData 客户端基于 Apache 授权开源。微软多款产品已经支持 OData 包括 SharePoint Server 2010, Excel 2010, Dynamics 等。
SOAP:简单对象访问协议,简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。
在WP7上的Silverlight开发上,微软给我们提供了多种从Web Service上获取数据的方式。分别为:
1. HTTP
2. WCF services
3. WCF Data Services (OData services)
4. Windows Azure Services
下面是各种访问Web Service方式的具体说明:
HTTP
我们可以在WP7上的Silverlight中直接使用System.Net命名空间下的 HttpWebRequest/HttpWebResponse 或 WebClient类,来访问Web Service或者网络服务器上的资源。这些类可以提供HTTP协议向网络访问发起请求。一般来说,我们使用第三方Web服务,并且服务器响应后返回的数据格式为XML 或 JSON时才考虑使用这些使用HTTP协议的类。
下面是新浪微博的返回最新的20条公共微博接口。数据格式为JSON
http://api.t.sina.com.cn/statuses/public_timeline.json?source=appkey&count=5
你可以通过HTTP类来访问该资源以获得相关的数据
WCF Services
WCF是一个建立和访问Web服务的框架。WCF允许你公开一个类作为Web服务以便和Silverlight进行数据的交互。在Windows Phone的Silverlight应用程序中,你可以使用SLsvcUtil.exe这个工具,或者Visual Studio开发环境中的“Add Service Reference”菜单来生成WCF服务的一个本地代理类。WCF服务支持一系列的网络协议(包括HTTP和TCP)以及多种数据格式,比如说SOAP,XML和Atom
WCF Data Services
WCF Data Services,就是以前被称为ADO.NET Data services的数据访问框架,该框架允许你从REST格式的资源中操作数据。WCF Data Services用Open Data Protocol的方式来公开数据。除此之外,如果Windows Phone的Silverlight应用程序需要和sharepoint进行交互,sharepoint 2010可以以WCF Data Services的方式公开数据访问。
WCF Data Services 可以处理所有和HTTP相关的通讯、系列化任务,以及希望将一些数据模式公开为WCF Data Services的实现。这意味着我们的程序可以通过HTTP协议在一个数据服务中执行查询、删除、更新、插入等操作,无论是在同一个域中还是跨域操作。目前在微软的开源网站上已经实现了WP7上的OData功能,相关的类库可以在http://odata.codeplex.com/releases/view/54698下载。
Windows Azure Storage Services
你可以在WP7应用中使用Windows Azure来存储和检索数据,这一点在设备存储容量有限的情况下尤为重要。 Windows Azure 平台为 Windows Phone 提供了多种数据存储方案。Windows Azure storage services为用户提供了一个可靠持久的云存储服务,而且还能根据数据增长或者减少的需求进行动态的调整。访问Windows Azure storage 服务的方式和访问 web service很是类似。
一旦你知道你应用程序的需求,你就可以找出一些较为优秀的方案来和云计算进行交互。下面是各种场景下推荐的网络访问和实现方式:
知晓了这些概念后,接下来我们就将开始真正的Windows Phone 7网络编程实战之旅。内容涉及新浪微博接口的调用、如何实现自定义的WCF Services以便和WP7进行数据交互等。同时类似数据绑定、模板等Silverlight的基础知识也会贯穿始终,让你快速进入WP7开发的大门。
原文地址:http://tech.it168.com/a2011/0308/1163/000001163911_all.shtml