我正处于设计一个应用程序的初始阶段,该应用程序将使用 C# 实现后端,该应用程序将使用托管在 IIS 上的 WCF Web 服务为其他平台提供数据。其中一个平台将是 iPhone。
由于是个人项目,所以想用它来学习MongoDB。我已经知道有社区为 MongoDB 和 C# 开发驱动程序,因此我可以使用 MongoDB 在服务器端处理持久性。
在不知道 MongoDB 提供的复制模型的情况下,我正在考虑某种简单的同步模型,以便在 iPhone 未连接或连接不良时将数据保存在本地。
问题来了:MongoDB 可以在使用 MongoDB C 驱动程序的 iPhone 中使用吗?有人试过吗?
最佳答案
典型的 iPhone 架构是让您的应用程序调用 Web 服务。即使可以直接从移动客户端使用 MongoDB 驱动程序,我也不会推荐它。有几个原因。
您基本上是在谈论客户端服务器架构,您的客户端应用程序直接与数据存储区 (MongoDB) 对话。安全性如何?当任何经过身份验证的客户端直接与数据存储区对话时,可能会发生各种不好的事情。
将您的客户端应用程序直接与任何给定的数据访问技术紧密耦合是危险的,因为如果出于某种原因您需要更改数据访问解决方案,则需要您重写您的客户端。
如今,让您的客户端应用程序通过数据访问层更为常见,并且当涉及 Internet 时,该层通常涉及某种网络服务,除非您想深入编写服务器代码。
考虑编写一个 RESTful api,将您的数据存储暴露给您的 iPhone 客户端。我听说过关于 Open Rasta 的好消息(C# REST 库)
编辑 - 更多关于在 iPhone 上托管 MongoDB 的信息
抱歉,我不明白您希望在 iPhone 上本地运行 MongoDB。 MongoDB 是一个服务器。我不相信它可以作为进程内数据存储嵌入。并且不可能在 iPhone 上运行多个进程。
如果您熟悉 C#,您可能想查看 MonoTouch .它允许您在 iPhone 上运行 C# 应用程序。有一个很好的库可以使用 SqlLite这是 iPhone 支持的。
关于c# - 用于 C# 和 iPhone 应用程序的 MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2211041/