2014-09-21 67 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