2010-02-05 55 views
3

我正在設計一個應用程序的初始階段,該應用程序將在C#中實現後端,該應用程序將爲使用託管在IIS上的WCF Web服務的其他平臺提供數據。其中一個平臺將是iPhone。MongoDB for C#和iPhone應用程序

由於這是一個個人項目,我想用它來學習MongoDB。我已經知道有社區開發的用於MongoDB和C#的驅動程序,所以我可以使用MongoDB處理服務器端的持久性。

即使不知道MongoDB提供的複製模型,我也在考慮某種簡單的同步模型來保持數據本地,如果iPhone沒有連接或連接不良。

下面是問題:可以使用MongoDB C驅動程序在iPhone中使用MongoDB嗎?有人已經嘗試過嗎?

回答

4

典型的iPhone架構是讓您的應用程序調用Web服務。即使可以直接從移動客戶端使用MongoDB驅動程序,我也不會推薦它。有幾個原因。

您基本上正在談論客戶端應用程序直接與數據存儲(MongoDB)對話的客戶端服務器體系結構。安全性如何?當任何經過身份驗證的客戶端直接與數據存儲會談時,可能會發生各種不好的事情。

將客戶端應用程序直接與任何給定的數據訪問技術緊密耦合是非常危險的,因爲如果由於某種原因需要更改數據訪問解決方案,則需要重寫客戶端。

如今,讓客戶端應用程序遍歷數據訪問層並且在涉及Internet時,此層通常會涉及某種Web服務,除非您希望深入編寫服務器代碼。

想想寫一個REST風格的api,將您的數據存儲暴露給您的iPhone客戶端。我聽說過Open Rasta(C#REST庫)

編輯好東西 - 更多關於在iPhone上

對不起,我不明白你想在iPhone上本地運行的MongoDB託管的MongoDB。 MongoDB是一個服務器。我不認爲它可以作爲進程內數據存儲嵌入。在iPhone上運行多個進程是不可能的。

如果您熟悉C#,您可能想查看MonoTouch。它允許你在iPhone上運行C#應用程序。有一個很好的庫,可以使用iPhone支持的SqlLite

+1

也許我在我的帖子中不清楚。我通過Web服務(WCF)公開服務器數據。 iPhone應用程序無法訪問服務器數據庫,只能訪問Web服務器發佈的接口。 我想要做的是在iPhone中擁有一個本地數據庫來保存連接處於脫機狀態時的數據。 我想在iPhone上使用MongoDB ...我知道MongoDB具有C驅動程序,但我不知道它是否可以在iPhone中使用(或者如果有人使用過) – 2010-02-06 23:50:04