开发人员是否必须关注未来改变ORM的可能性?

时间:2009-12-24 06:21:13

标签: .net orm

让我们想象一下我开始开发一个项目。那么我是否必须认真关注将来改变ORM的可能性?

或者更准确地说:

  1. 您是否要将当前项目中使用的ORM更改为其他项目。如果是,那是什么原因?
  2. 你有没有这样做过?如果是这样,原因是什么?
  3. 实际上,我正在考虑是否有必要投入大量精力来尝试开发与ORM无关的解决方案。

2 个答案:

答案 0 :(得分:4)

在项目过程中更改ORM的几率非常低。很有可能你为确保你可以切换你的ORM所做的任何努力最终都会被浪费掉。您必须权衡将ORM更改为额外努力的可能性,以便更改ORM。

回答你的问题:

  1. 没有
  2. 如果您使用的工具无法满足某些实质性需求,通常会更改您的ORM。我无法想到任何有意义的例子 - 通常你可以解决这些问题。
  3. 在一天结束的时候,我会确保选择一个对我有用的ORM(NHibernate之类的东西真的不会出错),并确保你的代码松散耦合,这应该确保你的数据访问代码是孤立的。这不仅从可维护性的角度来看是好的,而且也是为了可测试性。

答案 1 :(得分:3)

是的,我认为你应该关心它,在多大程度上是一个完全主观的问题。应该考虑您的应用程序的所有层,特别是如果您认为您的代码将在任何大量时间内到位,或者您认为您的应用程序将有显着增长。

就您的具体问题而言:

  1. 我有一些项目使用各种不同的存储系统和框架来管理数据,如果它们之间有一致的策略会很好,但我们会努力完成我们有时间完成的工作。我对与我合作的团队的一般指导是选择一个ORM only ,如果它对项目有意义并且放置抽象以方便使用。一般来说,我更喜欢NHibernate(我有更多的经验)但是有很多很好的解决方案
  2. 是的,我参与了至少两个项目,我们的目的是删除现有的第三方组件(包括ORM框架)并将其替换为其他组件。在一个案例中,我们从家庭建造的ORM迁移到NHibernate,另一个案例我们从第三方ORM转移到客户要求我们为他们设计的ORM。这两个项目都很复杂,涉及许多应用程序无法正常处理的更改。其中一些(并非全部)可归因于代码与其数据存储策略紧密结合的事实。