Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ORM市场分析_C#_Nhibernate_Orm - Fatal编程技术网

C# ORM市场分析

C# ORM市场分析,c#,nhibernate,orm,C#,Nhibernate,Orm,我想看看你在这里使用流行ORM工具的经验,比如NHibernate、LLBLGen、EF、S2Q、Genom-e、LightSpeed、DataObjects.NET、OpenAccess等等 根据我的经验: -Genom-e能够提供Linq&performance和开发支持 -EF缺少一些关键特性,如延迟加载、Poco支持、pers.INDUCTION。。。但在4.o中,它可能已经克服了。。 -Net到目前为止还不错,尽管我发现了一些bug -NHibernate学习曲线陡峭,没有100%的L

我想看看你在这里使用流行ORM工具的经验,比如NHibernate、LLBLGen、EF、S2Q、Genom-e、LightSpeed、DataObjects.NET、OpenAccess等等

根据我的经验: -Genom-e能够提供Linq&performance和开发支持 -EF缺少一些关键特性,如延迟加载、Poco支持、pers.INDUCTION。。。但在4.o中,它可能已经克服了。。 -Net到目前为止还不错,尽管我发现了一些bug -NHibernate学习曲线陡峭,没有100%的Linq支持(如Genom-e和DataObjects.Net),但支持性强、可扩展且成熟

这是目前你能找到的最好的比较

根据我的经验,顺便说一下:如果您对LINQ感兴趣,请远离NHibernate当前版本-使用开发分支。LINQ支持主DLL中的MVoE,更重要的是,它比当前版本中有限的附加方法更好、更完整。



(来源:)

两年前(2010年),我们对NHibernate、EF和Llblgen进行了深入分析,并选择了最后一个。我们肯定认为我们做出了正确的决定

LLBLGENPRO是一个华丽而成熟的ORM(实体FW还需要发展:直接m:n、枚举、继承…)。易于使用模型和数据库,无需查看XML,只是一个好的图形设计师

  • 高效:只获取所需的列。。。或者使用TypedList获取常用的联接/分组列。。。或者使用TypedView映射视图,或者映射检索存储过程……或者使用特殊查询。您甚至可以创建一些映射您自己的POCO(TypeValue)的模板,并直接调用SQL!!!(我们不需要走这么远)
  • 在设计器中,使用自己的框架,或NHibernate或实体框架,或LINQ to SQL
  • 一旦决定投入生产,就会错过很多功能(预回迁、事务、数据绑定助手、分页、(反)序列化、自定义(属性、依赖项注入、授权、审核等)
…但它远不止这些:一个伟大的模型设计师和模板系统

从ORM开始:

  • 良好地使用自定义模板(例如ASP.Net、MVC、REST或WCF)可以提供 脚手架系统/通用架构->允许经验较少的程序员跟上 通用解决方案可以重复使用(成本降低) 向下:不是“代码vs.理解和集成”,而是“代码vs.理解和集成”。 虽然它是老式的ASP.NETWebForms 来感受你能得到什么 使用模板
  • 与往常一样,在VS中为您的特定应用程序编写代码 可重用:将代码添加到模板中(通常意味着在类似ASP的文件中进行更改) 像“产品”之类的东西有“”,而不是硬员工)

欢迎使用StackOverflow@bonefisher。应选中“社区wiki”复选框询问投票类型的问题。请编辑您的问题。感谢欢迎&advice;)或mbattle.net不是评估不同Orm工具的好方法,因为基准测试在生产代码中是无用的。这取决于。至少它还提供了一些功能。例如,您可以看到例如LINQ特性的实现是好是坏。许多基准测试都是功能测试。在orm battle上,最好的工具是project,在project中,您需要在对象的属性中编写所有必需的SQL。你认为这是一个好的ORM吗?@Sli:取决于你想做什么。。DO.Net是DDD驱动或“代码优先”驱动的,因此将其用于某些遗留数据库可能不合适..谢谢你的图表,但我几周前就已经看到了此网站。。我想知道的是个人经验,而不是一些合成基准测试的诊断方法。说真的-个人经验对个人项目需求来说非常个人化。有些人可以完美地使用LINQ,但大多数时候,如果你问它背后的原因,是因为他们不知道ORM到底能做什么,并且非常高兴有比糟糕的手写内容更好的东西。你仍然可以有一个ORM的良好体验(无缺陷、功能良好、支持良好)和一个糟糕的体验(错误太多、功能太差、延迟(甚至没有!)来自公司/社区的支持。因此,我认为这是一个有效的问题。仅一点:我在企业级销售MIS中使用EF4.0,并告诉您,它完全不适合这种规模的应用程序。性能差,查询量大,TPT层次结构大,更新模型时等待时间长,无法使用实体作为参数查询量大,对批量延迟加载缺乏控制,缺乏缓存设施,疯狂加载大型集合只是为了关联修复,没有批量插入/更新只是其中的一些问题。我应该说,我们设法绕过了所有这些问题,但这绝对不是一个魅力。