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