C# 为新项目选择或映射程序

C# 为新项目选择或映射程序,c#,asp.net-mvc-2,orm,C#,Asp.net Mvc 2,Orm,我们即将开始一个新项目。它将是一组具有大量共享组件的web应用程序。它将有高达50000独特的用户访问每天,它将是某种管理面板。所有项目都将在asp.net mvc 2中构建,并且它们都将在一个SQL Server数据库上工作 在我找到这个网站之前,我们一直非常关注NHibernate,在这个网站上,与其他地图绘制者相比,NHibernate的性能测试看起来非常差。在这个总结中,我发现我以前不知道这个库。看起来真的很有希望,但也有优点和缺点 BLToolkit缺乏社区支持,很少有示例,我也没有听

我们即将开始一个新项目。它将是一组具有大量共享组件的web应用程序。它将有高达50000独特的用户访问每天,它将是某种管理面板。所有项目都将在asp.net mvc 2中构建,并且它们都将在一个SQL Server数据库上工作

在我找到这个网站之前,我们一直非常关注NHibernate,在这个网站上,与其他地图绘制者相比,NHibernate的性能测试看起来非常差。在这个总结中,我发现我以前不知道这个库。看起来真的很有希望,但也有优点和缺点

BLToolkit缺乏社区支持,很少有示例,我也没有听说有人在大型项目中使用过它。而且它非常轻量级,这意味着它不支持很多关系、延迟加载和缓存

另一方面,它的性能非常好,并且具有非常好的Linq支持

在这种情况下,我会选择以下方式之一:

  • 不要太在意性能,使用Nhibernate或EF或L2SQL(哪一个更好?),使用功能更有用的ORMapper
  • 关注这一出色的性能,并基于此BLToolkit构建一些自己的解决方案,主要将此库用作一个很好的基础。如果我在MVC中使用动作缓存,我可能不需要缓存。可能我不需要关联,因为我可以用连接表达式编写好的LINQ查询。也许我不需要延迟加载,因为我会仔细构建从DB获得我所需要的所有精确方法

  • 我不是在寻找对这个案子的判决。我想要的是一个小小的讨论,指出一些我没有考虑过的问题,或者只是和我分享一些关于使用BLToolkit以及其他或Mapper的经验。

    BLToolkit是很棒的俄语社区,你可以轻松地用英语提问,因为这个社区的大多数成员都懂英语。

    你能用你正在考虑的几种不同的ORM创建原型,看看它们是否能满足你的需要吗?您可以编写一些一次性的“性能峰值”代码,并使用VisualStudio中的

    我认为,基于替代方案的性能不够好的信念来选择ORM是一种过早的优化——除非你已经做了测试来证实你的怀疑


    关于ormbattle.net,他是NHibernate的开发者之一。这是很久以前的事了,我不知道从那时起ormbattle.net是否发生了变化

    LINQtoSQL不再是积极开发的,所以如果你想使用微软的ORM,EF将是最好的选择


    我个人更喜欢NHibernate而不是EF,但是EF的当前版本确实比NHibernate的当前版本有更完整的LINQ实现。NHibernate 3(将于今年晚些时候推出)将拥有完整的LINQ支持,以及另一个名为“类型安全API”的API。

    ormbattle.net WebSite可能非常领先,因为不同的ORM设计用于不同的方式,所以简单的基准测试无法告诉您匹配

    你有两个基本的选择

    • 选择系统和数据库模式的设计,然后找到适合它的数据访问系统
    • 或者选择数据访问系统,并设计数据库模式以与之配合使用
    例如,如果您选择Nhibernate,您将发现Nhibernate专家将使用给定样式的数据库模式(和对象)。复制它们,你会有最小的痛苦

    问题在于,没有一种ORM能够很好地处理所有类型的数据库模式,而且除非您以前编写过另一个类似的系统,否则在开发一个系统之前,您不可能知道您所需要的所有数据存储是什么


    请记住,如果您发现您的ORM在某些更新方面速度较慢,您可以随时绕过ORM并使用手写SQL。

    这是一个非常开放的问题-在一天结束时,我们列出了我们的需求/期望,并从那里开始。一些选择标准包括:

    • LINQ支持
    • POCO支持与专有/嵌入式实体
    • 快速加载/延迟加载
    • 在需要更多电源时允许自定义存储过程
    一些链接

    Ayende比较了EF4和NH2.5+


    祝你好运

    链接不错,谢谢你。。。您在一些商业\大型项目中使用过BLToolkit吗?你对它有什么感觉?是的,我用BLToolkit做商业产品,我用NHibernate做另一个项目,这些都是完全不同的工具。如果你需要固溶体,你将使用它,因为Nhibernate是为你。另一方面,BLToolkit不是ORM,它是创建onw DAL的一个很好的工具。它支持映射、请求生成等,但您必须编写一些代码来解决您的需要,您需要花费一些时间,但它的工作速度比hibernate快得多,并且您对数据流的控制能力更强。顺便说一句,你可以下载完整的BLToolkit代码,在那里你可以找到大量的单元测试和示例。。。对代码的精确控制。它可以很好地工作,因为没有太多的开发团队。这里还有一个BLToolkit的Google小组:NHibernate3发布日期已经知道了吗?现在是否有阿尔法、贝塔或其他东西可用?这听起来是一个不错的选择,但在我们开始我们的项目之前,我没有太多的时间。NHibernate 3 alpha 1在这里可用:。我认为最终发布日期还没有确定。根据这条讨论线索,听起来好像是今年秋天,肯定是在年底之前:不错。。还有一个问题。。。有关于Nhib3的手册或任何例子吗?我认为关于NH3的文档还不多。据我所知,主要的