Asp.net 对于三层体系结构,哪一种是最好的;Linq到SQL还是Nhibernate?

Asp.net 对于三层体系结构,哪一种是最好的;Linq到SQL还是Nhibernate?,asp.net,linq,nhibernate,linq-to-sql,Asp.net,Linq,Nhibernate,Linq To Sql,哪一种是三层拱门的最佳解决方案。Linq到SQL还是Nhibernate? 具体来说,我将把2层体系结构的系统升级为3层体系结构 编辑:我在哪里可以找到两者的好教程或视频?如果数据库已经存在,我会使用linq到sql(通过拖放从数据库生成映射)我会选择Nhibernate的其他方式(帮助您根据模型生成数据库)如果您只需要支持一个DB平台,并且已经有了数据库模型,那么LINQ到SQL是有意义的 但是,您也可以使用FluentNHibernate为您生成映射 如果支持多个DB以及对映射的细粒度和灵活

哪一种是三层拱门的最佳解决方案。Linq到SQL还是Nhibernate? 具体来说,我将把2层体系结构的系统升级为3层体系结构


编辑:我在哪里可以找到两者的好教程或视频?

如果数据库已经存在,我会使用linq到sql(通过拖放从数据库生成映射)我会选择Nhibernate的其他方式(帮助您根据模型生成数据库)

如果您只需要支持一个DB平台,并且已经有了数据库模型,那么LINQ到SQL是有意义的

但是,您也可以使用FluentNHibernate为您生成映射


如果支持多个DB以及对映射的细粒度和灵活的控制很重要,请转到NHibernate。否则,LINQ到SQL就可以了。至少现在要避免像瘟疫这样的实体使用LINQ(v4.0可能会有所改进)。

我不知道这是否同样适用于.NET,但如果我用Java和Spring解决这个问题,我会从一个隐藏实现选择的接口开始。客户不需要知道是LINQ还是NHibernate在做这项工作。Spring允许我随意注入一个实现或另一个实现,而不会干扰客户端,只要两者都实现了商定的接口。

我没有使用Nhibernate,但我知道微软已经确认,尽管它将支持LINQ to SQL,但我知道,他们将不再对该特定技术进行开发。

如果您的应用程序只需要基本功能,我会说使用LINQ to SQL,否则使用NHibernate。我对LINQ略知一二,我正在学习NHibernate,从中我可以看出,NHibernate是一个更好的长期解决方案,因为它比L2S(与数据库紧密耦合)更抽象,但L2S更容易学习并提供更快的解决方案


在不了解您的具体问题的情况下,我会说使用NHibernate,因为它更灵活,更能应对变化,尽管它的学习曲线比Linq到Sql略为“企业化”。对于一个好的NHibernate资源,我建议你去看看。

对于3tier来说,什么是最好的解决方案,我都不会说。没有千篇一律的回应,您选择的每个框架/库都会有权衡。要做出此ORM决策,您需要考虑您的业务需求,并确定其中哪些可能性最有助于您及时、可维护地实现我们的目标。您的域模型有多复杂,linq-to-sql能否充分描述它们。

不要忘记linq-to-nHibernate:之前的一些SO帖子可能会对您有所帮助:--还有一些关于nHibernate-to-linq:WHS的帖子-问题的细节很清楚,但您需要更改标题。记住linq-to-sql只支持MSSQL。您可以吗指向一篇文章或张贴您希望避免LINQ访问实体的原因?检查:您可能希望为“无进一步发展”声明添加一个链接,我没有看到任何这样的内容。例如,这里所有的微软链接都说Linq到SQL将被进化马克,我找不到这个链接,但看到另一个帖子,其中一个微软的家伙出来直接说了出来。与此同时,大卫·海登(David Hayden)有一个很好的分析:以下是他最近的一个观点——观察他是如何在评论部分回避这个问题的:重点是EF,period。@MarkJ,微软除了明确未来的计划和对LinqToSql的承诺外,什么都做了。我最大的理解是,他们将继续支持LinqToSql,只要它是shipping.NET框架的一部分,但未来真正的ORM功能开发将集中在EntityFramework上。然而,微软没有一条明确的信息传达这一点。