【问题标题】:web application in DB4ODB4O 中的 Web 应用程序
【发布时间】:2011-04-08 19:17:59
【问题描述】:

如果我要使用 db4o 在 ASP.NET 中开发 Web 应用程序,我会使用哪种数据库:本地或远程类型,为什么?

【问题讨论】:

  • 看不到您使用的 CLR 语言和 IDE 版本将如何影响此问题的答案。
  • @adamjford 你说得对 :) 我同意 +1

标签: asp.net db4o


【解决方案1】:

我认为您的意思是“嵌入式”与“客户端服务器”(这是 db4o 可以运行的两种基本模式。

您很可能需要“客户端服务器”,以便您可以启动多个客户端会话(可能每个请求一个?)。

决定将数据库放置在何处取决于您的方案。理想情况下,您将构建您的解决方案,以便您可以通过配置来完成它。在单服务器部署的情况下,您可以在进程中为 db40 提供服务的方式。

但是,如果您需要更多的马力,您可以使用另一台机器上的 db40 来分配工作。请注意,在这种情况下,您将有更多的网络开销/延迟。

【讨论】:

    【解决方案2】:

    db4o 的 C/S 模式意味着网络通信并且速度较慢。如果您需要多个客户端会话,则不一定需要使用 C/S,因为有一个嵌入式服务器模式允许并行处理多个事务,而不会产生网络通信的开销:

    http://developer.db4o.com/documentation/reference/db4o-8.0/java/reference/Content/client-server/embedded.htm

    因此,如果您的用例允许,您可以在 Web 服务器端打开一个嵌入式服务器,并允许您的服务器端 asp.net 应用程序使用多个事务(例如,每个 Web 会话一个)与 db4o 对话以持久化对象。请注意,在这种情况下,您无法从客户端持久化对象(Web 客户端与负责持久性的应用程序的服务器端通信)。

    重要提示:在 Web 场景中,当会话结束时关闭 db4o 对象容器并不少见。如果您这样做,则 db4o 不再跟踪该对象,它将在下一个会话中被视为新对象。您必须找到一种方法在服务器端将对象重新附加到其 db4o 身份以进行不同的会话(您可以通过在服务器端再次查询对象来做到这一点)。

    最好的!

    德语

    【讨论】:

      猜你喜欢
      • 2011-08-02
      • 1970-01-01
      • 2011-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多