Nhibernate是企业应用程序的正确选择吗?

Nhibernate是企业应用程序的正确选择吗?,nhibernate,Nhibernate,大家好 我计划在Dotnet 3.5应用程序中使用Nhibernate。该应用程序类似于企业应用程序,将为我公司的所有其他应用程序提供核心服务。所以我的问题是: Nhibernate是这种应用的正确选择吗 Nhibernate是否存在任何性能问题 我知道有很多地方将Nhibernate用于企业和任务关键型应用程序,我对此感到满意 Nhibernate为数据库实体提供了面向对象的抽象。如果将它们与等效的SQL操作进行比较,那么性能损失可以忽略不计。 但是,当使用更复杂的操作(主要是对大型数据集)时

大家好 我计划在Dotnet 3.5应用程序中使用Nhibernate。该应用程序类似于企业应用程序,将为我公司的所有其他应用程序提供核心服务。所以我的问题是:

  • Nhibernate是这种应用的正确选择吗
  • Nhibernate是否存在任何性能问题
  • 我知道有很多地方将Nhibernate用于企业和任务关键型应用程序,我对此感到满意

  • Nhibernate为数据库实体提供了面向对象的抽象。如果将它们与等效的SQL操作进行比较,那么性能损失可以忽略不计。 但是,当使用更复杂的操作(主要是对大型数据集)时,本机SQL的性能可能会显著提高


  • NHibernate适用于任何类型的数据访问应用程序

    至于性能,对于大多数应用程序来说已经足够好了。我认为它唯一不适合的是同步任务,因为在同步任务中可以传输大量数据。对于那种工作,任何ORM都会很差劲

  • NHibernate可能是正确的选择。该库非常成熟(目前为v3),基于java Hibernate,其存在时间更长

  • 视情况而定。NHibernate是为OLTP场景而设计的。这意味着您加载一些小数据块,对其进行处理,然后将其保存回去。关键部分是:“小块”。 如果您发现自己处于任何OLAP(如scneario)中,必须批处理大块数据,那么NH不是一个好选择。在这种情况下,您很可能根本不想使用任何ORM。 一如既往:正确的工具适合正确的工作

  • 如果您的应用程序是典型的企业级应用程序,那么您将对NH感到满意。该库非常灵活,有许多微调选项。还请记住,如果应用程序中有OLAP部分,您仍然可以使用普通的旧ADO.NET

    如果您遇到任何问题,NH社区非常支持您,并且有公司和个人提供咨询和有偿支持(以防您的公司政策需要)

    我使用NH已经三年了,我可以推荐它——这个工具很管用