3

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

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

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

问题来了:可以在 iPhone 中使用 MongoDB C 驱动程序来使用 MongoDB 吗?有人已经试过了吗?

4

1 回答 1

4

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

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

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

如今,让您的客户端应用程序通过数据访问层更为常见,而当涉及 Internet 时,该层通常涉及某种 Web 服务,除非您想深入编写服务器代码。

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

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

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

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

于 2010-02-06T17:27:01.590 回答