日期:2014-05-16 浏览次数:20618 次
日前,Azure移动服务发布了对HTML应用的支持。至此,移动服务的完整框架已经完全浮出水面,我们可以回顾一下移动服务的完整框架,以及它和微软传统的Web框架之间的关联。
移动服务是微软针对移动开发推出的最新框架,其主要功能是:
下图是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比较好