【IT168技术】微软作为软件巨头,经历了windows Mobile平台的失利之后,依靠windows phone7重新杀回了移动互联网市场,同时也将云计算业务和移动平台进行了结合,布局自己的云+端战略。开发者如何才能够开发出自己的windows phone应用和微软云计算平台进行结合呢,以及如何开发一款属于自己的云计算应用呢?IT168移动开发频道的一系列文章将会给带你一步步学习如何开发windows phone平台的云计算应用。
云计算的搞笑故事
中国一留学生去美国打工,当报童,不带计算器,习惯动作抬头望天时心算找零。顾客大为惊讶,纷纷掏出计算器验证,皆无误,也抬头望天,惊恐问:云计算?
上面是一个关于云计算的小段子。云计算在2010突然爆发,目前发展势头已经是如火如荼,如果不提云计算这个概念老总们都不好说自己是混IT界的。目前最让大家印象深刻的应该是360的云查杀了,虽然很多用户不知道云查杀的具体优势是什么,但是他们感觉云已经逐步走进自己的生活。
微软云计算Windows Azure概述
目前微软已经在开发大力推进他们的云计算服务,相对其他参与者对云计算概念的定位,微软所谓的云计算概念更侧重于在互联网环境中提供高度灵活、高度可扩展和高度可操作的应用平台。微软的云计算平台——Windows Azure目前已经初步成型。
Windows Azure上提供与桌面和服务器操作系统一致开发模型和企业级服务,例如提供SQL Services对应SQL Server等,和.NET Services对应BizTalk Server等。这些服务和资源可以直接被运行在Windows Azure上的应用程序调用,或被运行在用户自主数据中心里的、可访问互联网的应用程序所访问,而无需在单独部署。微软的云计算平台允许用户以与本地系统一致的模型开发云计算应用系统,或将原有系统的部分或全部迁移到云中。
▲微软云计算框架
比如说你需要构建一套客户关系系统,那么你需要购买SQL Server和Windows 2008之类的软件!除此之外,一台部署系统的服务器也是必不可少的,无论是租用还是购买,再加上服务器的维护人员、服务器托管等,都是一笔不菲的开销。那么采用微软的云计算服务后,我们可以直接使用微软Windows Azure的CRM服务,以及SQL Serve和Windows后端支持,客户可以最大化地对自己的需求进行定制,你只需要关注具体的业务和程序开发,服务器的维护和托管等都将由微软帮你完成。
在未来的云战略中,微软会把Windows、数据库、Office都放在云里面,大家随时随地都可以使用微软Oficce的产品,以及其他产品。此外,微软的很多服务比如Windows Live,Onlien Services也都是在云计算方面进行开发。同时会利用很多新的技术,用服务来帮助用户做决定。现在,很多人上网购物可能会做很多方面事情都已经在微软云计算考虑的范围内,涉及我们生活的方方面面。
Windows Phone 7和云计算密不可分
作为微软移动战略的重中之重,Windows Phone 7从骨子里就打上了互联网手机的标签,它内置的facebook、twitter、Xbox Live等服务无一不需要网络的支持。目前微软软件商店的程序数量已达9000款之多,目前最少有2000款应用需要网络的支持。这充分说明了移动网络和后端数据对手机应用的重要支持!
▲Windows Phone 7和云计算密不可分
除了微软、IBM、Google等大型巨头在大力推进云计算外,现在越来越多的国内厂商也在逐步开放API,试图构建自己的云平台战略!
目前开放API的包括我们熟知的新浪微博、阿里巴巴、腾讯、京东、优酷等,甚至一些团购网都在积极开放API,以便构建自己的生态圈来获得更多和吸引的用户。这一切都说明云计算服务已经是大势所趋了。
如今我们已经进入社交的时代,网络之间的交互已经变得多维化。每个IT企业和开发人员都不是信息的孤岛,开放和分享已经成为互联网新的主题。就在IT巨头们逐步开放平台的时候,我们开发人员怎么利用云计算平台或者开放API来构建基于云端的WP7应用呢!
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开发的大门。