MongoDB for C#和iPhone应用程序

我正处于设计应用程序的初始阶段,该应用程序将在C#中实现后端,该后端将使用IIS上托管的WCF Web服务为其他平台提供数据。 其中一个平台将是iPhone。

由于这是一个个人项目,我想用它来学习MongoDB。 我已经知道有MongoDB和C#的社区开发驱动程序,所以我可以使用MongoDB处理服务器端的持久性。

在不知道MongoDB提供的复制模型的情况下,我正在考虑某种简单的同步模型,以便在iPhone未连接或连接不良时保持数据本地化。

这是一个问题:可以使用MongoDB C驱动程序在iPhone中使用MongoDB吗? 有没人试过呢?

典型的iPhone架构是让您的应用程序呼叫Web服务。 即使可以直接从移动客户端使用MongoDB驱动程序,我也不推荐它。 有几个原因。

您基本上是在谈论客户端服务器架构,其中您的客户端应用程序直接与数据存储区(MongoDB)对话。安全性如何? 当任何经过身份validation的客户端直接与数据存储区对话时,可能会发生各种不良事件。

将客户端应用程序直接与任何给定的数据访问技术紧密耦合是危险的,因为如果出于某种原因需要更改数据访问解决方案,则需要重写客户端。

现在更常见的是让您的客户端应用程序通过数据访问层,当涉及到Internet时,此层通常涉及某种类型的Web服务,除非您希望让elbows深入编写服务器代码。

考虑编写一个RESTful api,将您的数据存储暴露给您的iPhone客户端。 我听说Open Rasta (C#REST库)的好东西

编辑 – 有关在iPhone上托管MongoDB的更多信息

抱歉,我不明白您希望在iPhone上本地运行MongoDB。 MongoDB是一个服务器。 我不相信它可以作为进程内数据存储区嵌入。 并且不可能在iPhone上运行多个进程。

如果您熟悉C#,可能需要查看MonoTouch 。 它允许您在iPhone上运行C#应用程序。 有一个很好的库可以使用iPhone支持的SqlLite 。