我正在编写一个移动应用程序,这个移动应用程序将与Azure中的服务器通信以获取数据,并可能推送一些。
现在,我总是记得我打算写一个简单的RESTful Web服务来处理所有这些,并在Azure上的一个网站上托管它 - 但是,我已经发现了他们的移动服务,我并不完全确定我明白它的用途。
看着它,它似乎是关于从你那里提取服务器上运行的代码,以及你所追求的是你得到的东西?所以它对我来说没什么用,因为我的Web服务将依赖于逻辑等返回数据。但是,移动服务直接处理推送通知的能力很好(使用Azure网站有多难)通过移动服务发送推送通知?)
然而,我想知道我是否遗漏了什么?我宁愿不必重新发明这样的轮子,移动服务会做我需要的,特别是因为我将使用Xamarin并且有一个很好的组件可以与移动服务交谈......
由于
答案 0 :(得分:5)
我面临同样的问题:我应该使用Azure移动服务还是推送自己的REST服务。以下是我迄今为止所做的一些发现。
使用Azure移动服务,有一个后端运行一组程序集,您的代码最终依赖于这些程序集。在您开始使用与Microsoft主机版本不兼容的其他程序集的版本之前,这很好。对我来说,这是一个重大的痛苦。仅此问题让我怀疑是否要使用Azure移动服务。如果您自己创建REST服务,我不希望您遇到这些问题。 See this link for details.
您应该注意Azure移动服务绑定到单个Azure区域:如果Azure区域失败,则需要手动迁移到另一个Azure区域。这可能不是您的项目的问题。如果你想在多个地区运行,我认为推出自己的REST服务会更容易。
关于推送通知,您可以在不使用移动服务的情况下执行此操作。请参阅以下链接:
Azure移动服务支持自动扩展功能。如果您自己创建REST服务,则需要创建自己的扩展逻辑。您可以使用Azure的REST API扩展VM,但这比使用移动服务更多。
Azure移动服务支持身份验证。如果您自己创建REST服务,则需要查看单独的框架来执行此操作。
如果您使用移动服务,您可能会通过Visual Studio向导创建ASP.NET Web API。有一些例子和教程,很棒。但是,即使您推出自己的服务,也可以构建其他框架。一个例子是ServiceStack,如果你想制作自己的REST服务,我会强烈考虑。我认为ServiceStack也可以帮助进行身份验证。
如果您使用移动服务,您将更加强大的自己与Azure。通过滚动自己的REST服务,以后可能更容易移动到另一个基础架构。