4

有没有人在 Silverlight 中使用过 mongodb?你用的是什么驱动?Silverlight 仅支持异步套接字;但看起来可用的 C# 驱动程序是同步的。

4

3 回答 3

4

信不信由你,我使用 MongoDB 的第一个项目是在 Silverlight 中。IronPython,一些 C#。那是在 2009 年,我们使用了 0.8 或 0.9 的 MongoDB ......所以已经有一段时间了。

我认为这是 2.x Silverlight,因此更难完成诸如直接数据库连接之类的事情。也就是说,我建议仍然走我当时走的路线。

在您的服务器端使用 REST+JSON API 并让您的客户端通过它进行通信。我们用 Python 完成了我们的工作,但是如果你不想自己动手的话,现在有一些很棒的预建 Mongo REST 接口,比如Sleepy Mongoose 。

这样做的最大优势是安全问题:即使使用身份验证,从客户端到服务器的直接数据库连接也会冒用户进入数据库的风险......此时他们可以做任何他们想做的事情,因为 MongoDB 身份验证限制在数据库级别访问,但不是人们可以看到或删除的内容。在某些情况下,这甚至不需要反汇编代码,因为我记得有开发浏览器插件可以让您从 IronPython 和 IronRuby 编写正在运行的 Silverlight 应用程序。

还有其他原因,包括同步问题,但总的来说,我认为拥有一个到 Mongo 的服务器端接口,以及一个与 Silverlight 对话的干净、安全的外观会更好地为您服务。

于 2011-05-13T15:51:56.457 回答
2

最好在服务器上使用官方的 10gen MongoDB C# 驱动程序,上面有一个轻量级 Web API,您的 Silverlight 应用程序可以通过 WCF、SOAP、REST 等使用它。

于 2011-05-19T04:08:31.067 回答
1

这似乎不是从 silverlight 访问 mongoDB 的好习惯。

我建议您将所有命令包装在一个干净的 WCF 服务(可能是一个数据服务)中,并完全抽象 mongo 管道。

这将允许您准确控制可以执行什么样的操作、谁可以执行命令以及使用不断发展的协议。

于 2011-05-20T12:18:52.627 回答