2011-04-08 50 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標識以進行不同的會話(可以通過在服務器端再次查詢對象來實現)。

最好!

德國

相關問題