不允许使用Orm工具:你做什么的?

时间:2009-03-05 18:49:24

标签: orm data-access-layer

假设您所在的IT商店不允许使用任何形式的ORM工具。他们不想买一个,也不能使用开源解决方案。

你会做什么?放弃真正的域模型并以工作表为中心?制作自己的DAL?

15 个答案:

答案 0 :(得分:12)

严格来说,您的选择是:

  1. 不要使用关系数据库
  2. 不要使用OOP语言
  3. 否则某种ORM解决方案是不可避免的(即使你自己推出,它仍然是一个简单的ORM层)。

答案 1 :(得分:9)

选项:

  1. 自己动手
  2. 退出
  3. 无论如何都要使用开源软件,在工作正常时向他们展示原型,然后让他们重新考虑开源。

答案 2 :(得分:9)

根据您的用户名,我会说“使用LINQ”。它内置于.NET中,它不是ORM(严格来说)。

答案 3 :(得分:6)

如果您真的无法使用现有的ORM之一,那么我建议您不要创建自己的ORM。本地种植的ORM往往是半实施,设计不良,疣状动物,在前六个月似乎有所帮助,然后逐渐成为项目中最大的时间。

如果您应用Fowler的企业应用程序架构模式中的“RowDataGateway”或“TableDataGateway”等模式,则可以不使用ORM。

您仍然会发展自己的隔离层以将您的域与数据库分开,但创建它们并不像滚动自己的ORM那样昂贵。

答案 4 :(得分:5)

这里有三种可能性:

  1. 您的老板不理解使用ORM的好处。
  2. 你的老板们按照他们一直做事的方式做事,不会考虑改变。
  3. 您的老板有正当理由不选择ORM。
  4. 不仅如此,它还是这三件事的组合。他们可能有一些有效的担忧,可以通过更好地理解ORM来治愈。我的建议是尝试在ORM上销售它们。找到一个特别讨厌的代码片段,可以通过使用ORM来修复,并制作一个原型,显示可以简化的代码量。此外,愿意妥协。

    如果他们不愿意为此做出让步,你需要问问自己这是否真的是你想要工作的地方。不是因为他们不会让你使用ORM(你可能没有它),但因为他们不会听你的。你不能总是按自己的方式行事,但你应该对开发过程有所了解。

答案 5 :(得分:4)

我会使用Generic DAOs中的某些内容来滚动我自己的DAL来抽象它,以便我的代码的其余部分没有紧密耦合,但是我正在获取数据。

如果它们稍后出现,可以很容易地将它全部交换到ORM。

答案 6 :(得分:4)

如果关于公司太便宜而无法购买,那么请自行编写,在项目结束时向他们展示您的时间成本。 (我认为他们原则上反对免费替代品)

如果是关于性能的话,你可能需要检查它们是否有意义。

如果他们担心会增加其他开发人员必须学习的复杂性,那么请展示一些使用ORM简化的代码示例。

如果是因为应用程序已经非常“以表为中心”,那么你还必须考虑添加ORM是否会改进或者只是添加许多不必要的映射复杂性。

(哦,请阅读:http://blogs.tedneward.com/2006/06/26/The+Vietnam+Of+Computer+Science.aspx

答案 7 :(得分:3)

制作你自己的DAL,就像我们之前做的那样,很久很久以前...... 2004年。

答案 8 :(得分:2)

首先,你绝对不能使用开源软件。

如果你必须自己动手,这不是什么大不了的事。您仍然可以使用域模型。如果您为每条记录建模,则可能会更容易,然后构建域模型以从中加载数据作为中间格式。

答案 9 :(得分:2)

了解他们对iBatis(http://ibatis.apache.org/)的看法,它不是一个ORM,但可以帮助您从数据库查询中获取对象,而不会有难以理解的ORM魔法,但是有很多XML。

他们现在怎么做?

答案 10 :(得分:1)

我会推出自己的解决方案,可能使用某种代码生成工具。如果您将结果(无论是数据引用程序,表格,记录集还是其他)转换为对象,那么就会有一个小的o / r映射器,非常缺乏但仍然......我猜这是一个定义问题。

我的主要目标是避免在我的代码中重复使用CRUD,这需要时间,很无聊并且是缺陷的来源。

如上所述:如果不需要关系数据库,您可以随时使用某个对象数据库。但是,如果你的老板反对orm,他们就不太可能那样做了。

答案 11 :(得分:0)

问为什么ORM不被允许,什么构成ORM,然后从那里决定两种可能性中的一种:

  1. 交易
  2. 没有交易(退出)

答案 12 :(得分:0)

如果您决定构建我们自己的DAL,Davy Brion有一个非常好的教程。
看看Build Your Own Data Access Layer Series

答案 13 :(得分:-1)

首先,我会找到“为什么开源ORM不是这样的问题?”这个问题的真实答案。

如果这是因为做出此决定的人 1)对性能减慢的恐惧 - 将证明,它不会有问题。 2)如果是因为担心“我们买不起一个工具,因为系统已经很复杂” - 将解释,为什么ORM会加快我的速度。

我认为其他决策(以表格为中心的编码,自己的DAL) - 并不是很好的解决方案。 我想,如果你不被允许使用ORM来做你的工作 - 我不知道......如果我是你,我会留下这样的项目。

答案 14 :(得分:-4)

  

“没有任何形式的ORM工具。他们没有   想买一个,你也不能   使用开源解决方案。“

没有任何ORM 只是开源/ $$$?

有很棒的ORM工具的免费版本: