4

从 SQL Server 2008 切换到 Versant OODB 对公司(不仅对开发人员)有什么好处(如果有的话)?

有关项目和事实的更多信息以帮助回答(如果您需要更多信息,请告诉我):

  • 非常小的团队,几乎从不使用 OODB。
  • 项目使用 NHibernate 2。
  • 大约 75% 的测试覆盖率。
  • ASP.NET MVC 应用程序。

在这个阶段,由于以下几点(与 db4o 相关,而不是 Versant 主流 OODB),我无法证明切换的合理性:

  • 与有一堆“经理”、分析器、集成/迁移工具等的 RDBMS 世界相比,工具非常糟糕;
  • 根据我的观察,文档非常基本,并且与 Java 大量混合;
  • 与 RDBMS 相比,网络上没有那么多资源;
  • 切换到其他数据库可能会出现问题(与 RDBMS 不同);
  • 开发人员和 IT 团队的学习曲线;
  • 额外的许可费用;
  • 额外的维护费用;
  • 没有与 MSDeployment 集成(包括自动备份、MSBuild、打包等);
4

5 回答 5

7

取决于你的对象模型。如果您正在处理域中具有复杂层次关系的深层对象图,则从 SQL Server 2008 切换到 Versant ODB 将大大受益。如果您正在处理平面对象,请坚持使用关系引擎。请查看 www.polepos.org 中的 c/s 结果:http: //polepos.sourceforge.net/results/PolePositionClientServer.pdf

于 2011-03-17T19:49:11.683 回答
6

以下是一位从 SQL Server 2005 切换到 Versant 的真实用户的评论:

以下是我和我的同事对 VOD.Net 的反馈。

我将我的想法归类为利弊

优点:(一句话:速度)

  • 数据库引擎的数据读写速度很快,从我们所做的来看,它比 SQL Server 2005 快了大约 5 到 10 倍
  • 与标准数据访问层技术相比,它减少了执行相同操作所需的代码量
  • 它还减少了开发新功能的时间
  • 它创建了一个严格的对象结构并促进数据完整性
  • 数据导入 VOD 很容易

缺点:(一句话:需要故障排除技能)

  • 我们主要的缺点是关于管理工具的可用性(管理控制台和对象检查器)
  • 按钮/链接对它们的作用不太明确,我们通常会在尝试使用它时弄清楚
  • Versant Compilation/Database update错误不够明确,我们几乎不知道是什么类导致了错误但不知道原因,所以我们需要自己调试。
  • 使用“验证数据库”菜单选项无法工作并且会显示错误(取决于时间)
  • 应用程序迁移
  • 迁移 DAL 模式应用程序时,如果您尝试为 UI 保留相同的代码,则需要很长时间才能使其与 VOD 一起使用

在简历中,对于具有高级开发人员技能和复杂/大数据结构的企业,我建议使用 VOD.Net。与迁移现有应用程序相比,创建全新的应用程序肯定更快。对象检查器需要重新设计以更加用户友好。

我们通过提供 LINQpad 支持解决了一些 Object Inspector 问题。我认为你应该根据技术优势而不是任何情绪化的讨论来决定切换。此外,Versant 是 Microsoft 的合作伙伴,无论是否具有良好的 OO 技能 Versant 的人都有很多机会。

于 2011-03-17T20:01:46.570 回答
4

你忘了....它可能对我来说要快得多(但取决于你的模型。如果你有简单的模型,我建议坚持使用 RDB )。

如果你有多对任意、递归关系、嵌套子图等……那么 if 会快得多。

当然,它也可以在更少的硬件上运行。与 IBM 的研究表明,您将在中间层节省大约 50% 的 CPU(例如,所有类型转换都发生在 RDB 的网络服务器)。

此外,您不需要数据库专家 .. 如果您是 OO 人员,那么您已经具备技能...尤其是如果您了解 Hibernate/nHibernate,因为来自 Hibernate 和 ORM 空间的对象生命周期管理概念是基本上是从OODB世界劫持,移植到RDB阵营。

此外,您可以在开发周期中更快地进行迭代,而不必经常去找 DBA 并要求更新模式。

....RDB最终将走大型机的道路。仍然存在,但未用于新项目。那些 Cobalt 程序员当时也不相信……所以不要理会所有的反对者。

于 2011-03-17T19:49:57.410 回答
3

如果您想切换,请这样做。这是你唯一的“加”点。

“摆脱我们都厌倦的对象关系阻抗失配。”

您已经列出了大部分负面因素。我再补充两个:

  • 工作如何要求 Versant OODB 技能?
  • 有多少开发人员将拥有 Versant OODB 技能?
于 2011-03-17T09:41:49.703 回答
1

在披露中,我在 Versant 的销售部门工作,并评论您的问题,Versant 是一种商业产品,但与 SQL Server 一样,我们有类似的定价,社区版是免费的,但对数据库大小有限制,标准版的每人成本很低服务器,但允许的线程数量有限,企业版价格昂贵,但如果您需要可伸缩性和性能,则比 SQL Server 或 Oracle 便宜。此外,通过从 nHibernate 迁移到 LINQ,您将能够将其用于 Versant 的数据库,并且将来如果您想迁移回 SQL Server,您可以使用 EF 或 LINQ TO SQL 轻松完成,因此它可以减轻您的负担数据库基础设施的风险。这将是 Versant 的重点,而不是使用具有专有接口的 KVP NoSQL 存储。确实,比关系文档少得多,但是 www.odbms.org 确实有一些很好的信息和参考资料。如果您的团队精通 C#,学习曲线应该很容易,并且从管理的角度来看,Versant 是一个数据库,因此学习备份和恢复过程应该看起来很熟悉。我们的客户,C++、Java 或 .Net,都表示 Versant 的好处是易于开发、性能和能够以更少的服务器和存储资源来支持他们的需求。

于 2011-03-17T20:14:00.413 回答