2011-04-08 46 views
1

如果我要使用db4o在ASP.NET中开发Web应用程序,它将是什么类型的数据库:本地或远程类型,以及为什么?DB4O中的Web应用程序

+1

无法看到您使用的CLR语言和IDE版本将如何影响此问题的答案。 – adamjford 2011-04-08 19:37:01

+0

@adamjford你正确的:)我同意+1 – 2011-04-08 19:47:12

回答

3

我想你的意思是“嵌入式”与“客户端服务器”(这些都是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标识以进行不同的会话(可以通过在服务器端再次查询对象来实现)。

最好!

德国