日期:2014-05-16  浏览次数:20637 次

Windows Azure 移动服务简介

日前,Azure移动服务发布了对HTML应用的支持。至此,移动服务的完整框架已经完全浮出水面,我们可以回顾一下移动服务的完整框架,以及它和微软传统的Web框架之间的关联。

移动服务是微软针对移动开发推出的最新框架,其主要功能是:

  • 为移动应用提供云端数据存取支持
  • 后台服务全部运行在Windows Azure上,由Azure提供数据存储和数据处理能力
  • 使用JSON+HTTP实现客户端和服务端的通信
  • 为不同类型的客户端,如Android/Windows Phone/iOS,提供访问代理库。这样,各种移动应用直接调用原生代码API即可访问Azure移动服务,而无需进行数据序列化处理
  • 提供网页客户端,网页应用可以使用javascript库访问Azure移动服务

下图是Azure移动服务的简要架构。移动服务的核心是数据库以及提供JSON的Web接口服务。移动服务可以自动把数据库的表暴露为JSON形式的REST API接口,同时,这个接口的内部逻辑还可以通过node.js代码进行定制,比如进行数据校验、数据处理等。客户端可以采用多种形式,如HTML或者各种移动设备的原生代码。Azure移动服务为各种设备和HTML提供了访问代理,客户端应用调用这些代理即可进行数据查询和修改,不需要进行任何网络和协议的处理。从MVC的视角来看,移动服务提供了Model层,而View和control层都在客户端实现。

我们可以回顾下微软传统的一些框架,对比下他们与Azure移动服务的差异:

跟这个框架最类似的,就是Silverlight+RIA框架。Silverlight是微软前几年推出的框架,主要是与Flash竞争,希望提供通用的富客户端方案。该框架也通过Silverlight实现V+C,而把M放在服务端。这个框架与移动服务相比,所有的东西都“重”一些。在客户端需要Silverlight和.net框架,在传输上使用WCF(XML),在服务端使用.NET和RIA,在数据存储上使用Entity framework。这个框架功能十分强大,适合于企业级PC应用的开发

另外一个框架,是.NET Web API/WCF框架。这个框架较少涉及客户端的内容,而是提供REST接口,方便各种客户端工具访问。这个框架是.NET下编写移动应用的主要框架

而最后一个框架,是传统的.NET框架。客户端只提供View的能力,而Model和Control在服务端通过.NET实现。

通过对比,我们不难得出各种场景下的合适框架

框架 应用场景 开发语言
Azure移动服务 移动应用快速开发 javascript+客户端编程
Silverlight+.NET RIA PC上富客户端 .NET, ASP.NET, Silverlight
ASP.NET Web API或WCF 移动应用、Web服务 .NET, ASP.NET
ASP.NET 传统Web应用 .NET, ASP.NET

 

针对移动应用的开发,主要有Azure移动服务和ASP.NET WCF两种框架。其中后者需要开发者了解.NET,门槛较高。而Azure移动服务的开发只需要了解javascript和客户端编程,省去了中间厚重的堆栈,不需要了解Web协议,不需要了解数据库编程,连SQL也不需要写。适合快速上手和快速开发。当然,如果服务端的业务逻辑比较复杂,那么Azure移动服务的javacript编程就有些吃力了,还是用ASP.NET比较好