12

我正在为即将到来的项目评估两个对象数据库,db4o ( http://www.db4o.com ) 和 Eloquera 数据库 ( http://eloquera.com )。我必须选择一个。我的基本要求是 RAD 的可扩展性、多用户支持和简单的类型演变。

  1. 请分享您的真实世界经验。

  2. 如果你有两个,你能比较这两个吗?你喜欢哪个?

4

4 回答 4

16

在过去的 2 年里,我一直在使用 DB4O,现在我正在切换到 Eloquera。我的理由,按顺序:

  1. 我正在构建一个商业产品,而 DB4O 上基于版税的许可太高了;DB4O 说我们可以“谈论它”,但我是一家非常小的开发商店,并且当有一个非常好的替代方案时,我将每笔销售的很大一部分赠送给我,这没有任何意义。

  2. 我正在使用 Db4oTool.exe 在构建后的步骤中修改我的程序集,它确实减慢了构建过程。Eloquera 不需要修改我的程序集。

  3. 我在 DB4O 代码中发现了一个错误,并且花了好几个月的时间才将它集成到他们的代码库中。我在 Eloquera 中发现了错误,他们在一两天内修复了它们

  4. DB4O 还没有在 .NET 4 上(尽管他们终于有了早期的测试版)。DB4O 是唯一阻碍我使用 VS2010(和 .NET 4)的东西。我尝试迁移到 VS2010,但 VS2010 自动将所有单元测试转换为 .NET 4,因此我所有与持久性相关的单元测试立即失败。

  5. DB4O 并不是真正设计为线程安全的。

  6. DB4O 具有明显从 Java 移植而来的特性和许多 API 特性。

罗伯特

于 2010-07-09T23:55:11.547 回答
9

Eloquera ( www.eloquera.com ) 最初是为在 Web 环境中使用而设计和开发的,它被设计为 C# 中的本机 .NET 应用程序。

Eloquera 不像许多其他数据库那样从 Java 移植。

Eloquera 作为架构的一部分原生支持:

  • 用户同时访问
  • 安全设定
  • 正版C/S架构,桌面模式可用。
  • 最大数据库大小1TB+,在大数据规模下Eloquera保持快速的查询响应;它拥有正在申请专利的技术,包括虚拟文件系统、索引和自适应缓存。Eloquera 具有用 MSIL 编写的最先进的反射,使 Eloquera 的性能优于许多使用 Microsoft 标准反射的数据库。
  • 支持内存数据库,实现快速数据处理
  • 由于 Web 中的大多数用户来自关系数据库世界,因此 Eloquera 支持 SQL 和 LINQ 是很自然的
  • EF 支持将于下个月到期
  • 与某些数据库不同,如果您从 int;int; 更改字段,Eloquera 不会盲目地将对象放入数据库中。长; 它不会继续查询错误的结果,因为它仍然看到两个 int;int; - 它会通知用户更新定义
  • Eloquera 为属性和字段提供本地索引。大多数数据库不提供属性索引。

我可能会与 Carl 争论 DB4O 是市场上最简单的数据库,因为从 API 的角度来看,Eloquera 可以做同样的事情。

Eloquera 比 Versant 更年轻,并且仍有一些企业功能即将推出。

上个月,Eloquera 研发部门与 Eloquera Parallel Server 合作,提供水平扩展,可以说比 Versant 的 VOD 便宜很多。

一些突出的点

  • Eloquera 可免费用于商业用途。您无需支付任何版税。以上所有功能都是免费的。
  • Eloquera 提供商业支持。
  • Eloquera 专为具有现代建筑的现代世界而设计。它不时适应市场需求。它是 Eloquera 建筑的自然组成部分。
于 2010-06-07T11:38:50.670 回答
0

如果您有兴趣了解 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 下)。

于 2010-06-04T11:11:35.417 回答
0

我正在创建一个完全基于 Javafx 和 Db4o 的第二代社交媒体平台。我们可以用 db4o 做任何其他数据库都做不到的事情。语义 OWL 本体和与对象的复杂关系以及我们的用户可定义画布使 Db4o 非常适合我们。我们也不担心扩展,并找到了几种解决方案。Carl 是软件界最聪明的人之一。当您了解他的产品时,这一事实是显而易见的。

迈克·塔伦特 CEO Objectwheel

于 2013-05-18T08:38:54.380 回答