2011-01-26 39 views
2

這是我的場景:我有一個iPhone應用程序(用Monotouch寫成,但與設計無關),它有易耗品。安裝應用程序時,我會贈送25個免費耗材。如果用戶刪除應用並重新安裝,他現在可以獲得相同的25個免費耗材。我需要一種方法來防止這種情況。我需要一些網絡服務幫助

所以我想出了一個服務器上的數據庫的想法(我的網站主機?),這將有一個UDID列表。如果用戶的UDID在數據庫中(這意味着他已經安裝了應用程序),則會將響應發送迴應用程序以將耗材計數設置爲零。如果UDID不在d/b中,則它被添加並且響應如此指示(新應用程序)。

我想在服務器端使用REST(更簡單)和Linux主機。我的問題是:

  1. 有沒有更好的方法來做到這一點?
  2. 服務器上的選擇語言是什麼?
  3. 怎麼樣sqlREST? (看起來對我很好,但它會在上述情況下工作嗎?)
+0

當用戶升級或替換設備並獲得新的UDID時會發生什麼? – Jason 2011-01-26 19:34:26

回答

1

那麼,我可以告訴你什麼MY語言的選擇將是:ASP.NET/C#結合SQL Server數據庫。我有我的網站運行在一個主機上,每個月只提供幾塊錢。

你甚至不需要web服務。你可以在你的服務器上設置一個ASPX頁面,並使用NSString.FromUrl(或任何被調用的方法)調用它:「mycounter.aspx?udid = 1234」。每次頁面被調用時,它都增加了傳入的設備ID的數量,唯一輸出的是剩餘請求的數量。 您的客戶端將該響應解析爲整數,如果爲零,則通知用戶。

您應該添加一些哈希以確保邪惡的Krumelur不會訪問您的URL並將其稱爲隨機設備ID,從而導致它們無法使用。 :-)

René

0

答案真的取決於您的虛擬主機。他們支持什麼。這可能取決於您的交易量等。

既然你正在使用Monotouch,我會假設你對.net/c#世界很舒服。

我會看看用C#編寫的WCF Web服務。這反過來會使用SQL服務器進行存儲。當然,您可以直接轉到SQL Server存儲過程。

sqlREST看起來很有趣,但一目瞭然它看起來像你需要運行Appache + Tomcat堆棧才能工作。

如果你只是想盡可能低的工作條才能使它工作,那麼我同意另一張海報...... ASP.NET + SQL服務器也會完成它。