首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么样的Web开发项目从使用ORM中受益?

什么样的Web开发项目从使用ORM中受益?
EN

Software Engineering用户
提问于 2011-04-18 20:00:38
回答 6查看 1.8K关注 0票数 10

首先,我要说,我使用SQL完成了95%的数据库工作。最近,我对NHibernate和Doctrine等机构做了一些调查。

我可以看到不需要了解太多SQL和ORM提供的数据库可移植性的优点。但我也可以看到,了解SQL将使ORM的工作更加有效,我只能想到在我的职业生涯中,应用程序最大的变化将是数据库供应商。

因为我很习惯编写SQL,而且显然还没有意识到使用ORM的好处,所以我对大量ORM用户的问题是:

什么样的网络开发项目从使用ORM?

中获益最大?

EN

回答 6

Software Engineering用户

回答已采纳

发布于 2011-04-18 21:09:48

(几乎)所有的应用程序都受益于ORM。

首先,我不同意你为ORM列出的优点。

  • 使用ORM并不一定意味着您不需要了解SQL。了解SQL将有助于理解ORM工具实际上在做什么,这在调试过程中特别有用。此外,开发超出所选ORM能力范围的复杂查询实际上可能需要SQL。
  • 正如你所说的,可移植性在现实生活中很少被关注。

相反,ORM的真正好处是:

  • ORM节省了程序员的时间,因为它节省了大量用SQL编写CRUD逻辑的时间。
  • 许多ORM包括复杂的缓存逻辑等,这是很难编写和调试的。这不仅可以节省时间,还可以提高应用程序的可靠性和可维护性(或者至少节省您实现相同结果所需的时间)。
  • 最好的ORMs有一个用户社区,他们积极地开发、维护和支持产品。自定义SQL周围的社区最多也不太关注我们需要解决的问题。

正如您所评论的,ORM的一个缺点是性能下降。然而,这通常可以通过花费更多的硬件来抵消。

一般来说,程序员的时间比硬件更昂贵,因此ORM是一个不错的选择,而不是手工编码SQL。

ORM是最好的应用程序,有很多相当简单的CRUD数据库逻辑。ORM在以下方面不太有效:

  • 不需要/不需要数据库访问的应用程序。
  • 在很大程度上依赖于复杂查询和很少简单的CRUD逻辑的应用程序
  • 性能非常关键但不可能部署更快的硬件的情况

根据我的经验,这种情况是罕见的。因此我的答案。

票数 5
EN

Software Engineering用户

发布于 2011-04-18 20:21:40

我也很习惯写SQL。我也不需要写任何SQL,也不用担心数据库的连接、断开、池等。

所以..。我会回答你问题的否定的。唯一没有从ORM中受益的web开发项目是一个根本不与数据库对话的项目。我认为这是少数人(如果有的话)。

票数 4
EN

Software Engineering用户

发布于 2011-04-18 20:06:02

根据我使用ASP.NET WebForms的经验,我建议使用有状态web框架的web项目从使用ORM中获益最大。

使用有状态框架,标记将根据活动服务器控件的层次结构在幕后自动生成。让这些控件自动加载并将其状态保存到数据库中是很有诱惑力的。这是ORM帮助的地方。

您可以从某种程度上抽象出管道的结束(HTML输出),它自然会以同样的方式处理开始(数据源),这样您就只能停留在应用程序代码中的业务逻辑中。

我不是说这是做事情的好方法。这正是ORM天生适合的地方。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/69327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档