2011-09-09 90 views
8

我正在爲ASP.NET MVC 3網站構建Web服務。理想情況下,我希望所有客戶端(我的網頁,iphone應用程序,android應用程序,windows phone 7應用程序等)使用相同的服務層來加載和保存數據。針對Android,iPhone等的.NET Web服務格式/協議的建議集成

我是移動開發新手,想知道是否有首選機制 - SOAP/JSON /等 - 使用異構移動設備設置。具體來說,我想知道Android和iOS是否有更好的庫/支持一種協議,或者主要移動平臺是否對所有協議都有強大的支持。我也想知道是否所有的都是在保證上述服務的時候。

任何建議,將不勝感激

感謝

JP

回答

14

我建議用JSON一個REST(FUL)服務。

Android和iOS都有支持解析XML和JSON的庫,但是JSON庫使用起來更容易一些,速度更快一些。

稍微付出一點努力,您可以讓您的服務提供/使用XML和JSON。

避免使用SOAP會更好,因爲它更加冗長,並且不適合更多帶寬/電池敏感的移動設備。

1

我有幾乎相同的情況,我在做什麼,我正在爲Android和iPhone做WCFrest服務。

就安全性而言,我使用基於角色的成員資格提供程序。所以我爲移動客戶端創建了一個「移動客戶端」角色的用戶,並將用戶id(guid)作爲android和iphone開發者的'api key'。

iphone和android開發者必須在請求的頭部發送'api key'。

所以在執行我的wcf中的任何方法之前,我正在檢查api鍵並檢查請求是來自android還是iphone設備。

我希望這會幫助你有點制定發展計劃.. :)

2

這將是一個偉大的機會您與Entity Framework嘗試WCF Data services一起。您可以非常快速地構建它,並使用XML和JSON風格的OData國際標準公開您的信息模型。該界面可以通過REST訪問。沒有任何問題與任何前端技術,胖子,網絡或移動客戶端交互。並且,如果需要,您還可以重新使用C#.NET知識,Visual Studio和創建的程序集,以便與Windows應用程序更緊密地集成。它確實爲我做了詭計!

所以:

  1. 創建使用實體框架的應用模式。如果您已經擁有物理數據模型,則首先選擇數據庫,或者首先從頭開始創建模型。
  2. 揭露使用WCF DataService的(5行代碼)所創建的信息模型

您可以找到演練:http://msdn.microsoft.com/en-us/magazine/ee336128.aspx

編碼愉快!

0

嘗試使用ksoap2並讓您的WCF服務使用basicHTTP綁定。

如果你只有原始類型作爲參數,這應該很容易。通過一些工作,您還可以將其用於更復雜的類型。