2014-09-21 65 views
1

我正在编写一个移动应用程序,并且此移动应用程序将与Azure中的服务器通话以获取数据,并可能推送一些服务。Azure移动服务vs自己的REST服务

现在,我一直记住,我打算编写一个简单的RESTful Web服务来处理所有这些事情,并将它托管在Azure上的一个网站上 - 但是,自从我发现了他们的Mobile服务,我不完全确定我明白它的用途。

看着它,它似乎是关于从您的服务器上运行的代码的提取,以及您推送到的代码,是您的回报?所以它对我来说没什么用处,因为我的Web服务将返回依赖于逻辑的数据。但是,移动服务直接处理推送通知的能力非常好(使用Azure网站有多难?通过移动服务发送推送通知?)

但是,我不知道我是否错过了一些东西?我宁可不必重新发明轮子,因为移动服务将做我想做的事情,特别是因为我将使用Xamarin,并且有一个很好的组件可以与移动服务通话...

谢谢

回答

5

我面临同样的问题:我应该使用Azure移动服务还是推出自己的REST服务。以下是我迄今为止取得的一些发现。

使用Azure移动服务时,会有一个后端运行一组程序集,您的代码最终依赖于该程序集。在您开始使用与Microsoft主机版本不兼容的其他程序集版本之前,这很好。对我来说这是一个重大的痛苦。这个问题让我质疑我是否想使用Azure移动服务。如果您制作自己的REST服务,我不希望您面对这些问题。 See this link for details.

您应该注意到,Azure移动服务绑定到单个Azure区域:如果您的Azure区域失败,则需要手动迁移到另一个Azure区域。这对您的项目可能不是问题。如果您想在多个地区运行,我认为推出自己的REST服务会更容易。

关于推送通知,您可以在不使用移动服务的情况下执行此操作。请参阅以下链接:支持

自动缩放出的现成的Azure的移动服务。如果您制作自己的REST服务,则需要制定自己的缩放逻辑。您可以使用Azure的REST API扩展虚拟机,但比使用移动服务更有效。

Azure移动服务支持身份验证。如果您制作自己的REST服务,则需要查看单独的框架才能执行此操作。

如果您使用移动服务,您可能会通过Visual Studio向导创建ASP.NET Web API。有很多示例和教程,非常棒。但是,即使您推出自己的服务,也可以在其他框架上构建。一个例子是ServiceStack,如果您想制作自己的REST服务,我会强烈考虑。我认为ServiceStack也可以帮助验证。

如果您使用移动服务,您将使自己更强大的Azure。通过滚动您自己的REST服务,稍后可能更容易转移到其他基础架构。

+0

这是一个很好的答案。我想说的一件事是,如果你将服务转到一个天蓝色的网站,那么它应该与标准网站的东西自动缩放。我尝试了移动服务,并且遇到了一些问题,甚至让运行变得简单,因为它正在查看无法在任何地方定义的无效连接字符串,无论是在Web配置还是天蓝色的,所以它立刻让我停止因为我不想与天青战斗。所以我可以很好地推出自己的。滚动你自己的另一个好处是自定义url,否则你必须使用Azures自己的url结构,绑定你 – britcowboy 2014-10-10 13:29:47

+0

我会标记为答案,因为这是一个非常有用的答案,了解利弊。干杯 – britcowboy 2014-10-10 13:31:02