我正在为即将到来的项目评估两个对象数据库,db4o(http://www.db4o.com)和Eloquera数据库(http://eloquera.com)。我必须选择一个。我的基本要求是RAD的可扩展性,多用户支持和简单的类型演变。
请分享您的真实体验。
如果你有两个,你能比较这两个吗?你更喜欢哪一个?
答案 0 :(得分:16)
在过去的两年里,我一直在使用DB4O,现在我正在转向Eloquera。 我的理由,按顺序:
我正在构建一个商业产品,而基于版税的DB4O许可是很高的; DB4O说我们可以“谈论它”,但我是一个非常小的开发商店,并且在我有一个非常好的选择时,我做的每一笔销售中的大部分都没有任何意义。
我正在使用Db4oTool.exe在后期构建步骤中修改我的assmeblies,它确实减慢了构建过程。 Eloquera不需要修改我的程序集。
我在DB4O代码中发现了一个错误,它需要很多个月才能集成到他们的代码库中。我在Eloquera找到了错误,他们在一两天内修复了它们
DB4O还没有在.NET 4上运行(尽管他们最终还有早期的测试版)。 DB4O是阻止我使用VS2010(和.NET 4)的唯一因素。我尝试迁移到VS2010,但VS2010会自动将所有单元测试转换为.NET 4,因此所有与持久性相关的单元测试都会立即失败。
DB4O并非真正设计为线程安全的。
DB4O具有明显移植自Java的功能和许多API功能。
罗伯特
答案 1 :(得分:9)
Eloquera(www.eloquera.com)最初设计和开发用于Web环境,它被设计为C#中的本机.NET应用程序。
Eloquera并没有像许多其他数据库一样从Java移植。
Eloquera原生作为架构支持的一部分:
我可能会与Carl争论DB4O是市场上最简单的数据库,因为Eloquera可以从API的角度做同样的事情。
Eloquera比Versant年轻,但仍有一些企业特色。
上个月,Eloquera R& D部门与Eloquera Parallel Server合作,提供水平缩放,可以说比Versant的VOD便宜一些。
一些杰出点
答案 2 :(得分:0)
如果您有兴趣听取用户使用db4o的经验,我建议您也在our db4o user forums询问。
虽然db4o最初是为在资源有限的应用程序中嵌入式使用而开发的(现在在Android,CompactFramework和Silverlight等受限平台上运行得非常好)但我知道我们确实有很多用户乐于将db4o用于Web应用程序。 / p>
事实上,leatrop对db4o-bashing-post有一些正确性:db4o服务器核心目前只允许一个线程进入以存储和查询特定数据库中的任务。
然而,有几种方法可以使db4o应用程序扩展得很好:
由于db4o数据库的设置成本非常低(单个API调用),因此可以使用多个数据库。您可以使用db4o复制系统(dRS)在多个数据库之间分发对象。还可以在db4o数据库运行时创建它们的备份,并将这些备份复制到多台计算机。使用多个数据库(对于数据的时间片或应用程序中的不同用例)的方法可以非常适合备份和调试。如果您只想测试实时应用程序的某些方面,则无需复制整个数据库。
如果您仍然发现db4o对于并发用户或数据库大小的扩展性不够好,您可以稍后切换到我们的高端对象数据库Versant VOD。它构建为在云中运行,并且具有可靠的跟踪记录,可以为数千个具有多TB数据库的并发用户工作。 VOD for .NET还附带一个LINQ提供程序,因此db4o和VOD的接口是兼容的。
我的建议:从db4o开始。它是开始使用和开发的最简单的对象数据库。只需使用一行代码存储任何对象,而无需设置模式或映射文件。使用LINQ进行查询(如果使用Java,则使用本机查询)。
db4o是开源的,it's free(在GPL下)。
答案 3 :(得分:0)
我正在完全基于Javafx和Db4o创建第二代社交媒体平台。我们能够使用db4o做任何其他数据库都无法做到的事情。语义OWL本体和与对象的复杂关系以及我们的用户可定义画布使Db4o非常适合我们。我们也不担心缩放,并找到了几种解决方案。卡尔是软件中最聪明的人之一。当你了解他的产品时,这一事实很明显。
迈克塔伦特 CEO Objectwheel