2009-11-14 49 views
2

这是三层拱门的最佳解决方案。 Linq to SQL或Nhibernate? 具体来说,我会将2层架构中的系统升级为3层架构?哪一个是最好的3层架构; Linq to SQL或Nhibernate?

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

+0

不要忘记Linq到nHibernate:http://ayende.com/Blog/archive/2009/07/26/nhibernate-linq-1.0-released.aspx – tvanfosson 2009-11-14 13:44:01

+0

WHS - 问题的细节很明显,但你需要改变标题。 – Murph 2009-11-14 15:28:52

+0

记住Linq to SQL支持* MSSQL ONLY *。 – UpTheCreek 2009-11-14 15:31:18

回答

4

如果您只需要支持一个数据库平台并且已经有了你的数据库模型,LINQ-to-SQL就很有意义。

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

如果多个数据库的粒状和灵活的控制映射的支持是很重要的,去NHibernate的。否则,LINQ到SQL将会很好。至少现在要避免像瘟疫这样的LINQ-to-Entities(v4.0可能会改进)。

+0

你能指出一篇文章或发表你想避免LINQ-to-Entities的原因吗? – kenny 2009-11-14 14:19:29

+2

查看:http://efvote.wufoo.com/forms/ado-net-entity-framework-vote-of-no-confidence – 2009-11-14 14:31:07

1

如果数据库已经存在,我将与LINQ to SQL中去(只是通过拖放操作生成从数据库映射)其他方面,我会选择NHibernate的(可帮助您生成您的数据库根据您的型号)

1

我不知道这是否是对.NET也同样如此,但是如果我使用Java和Spring解决这个问题,我想用这将隐藏实现选择的接口开始。客户不需要知道它是LINQ还是NHibernate做这项工作。 Spring将允许我在不影响客户的情况下随意注入一个实现或另一个实现,只要这两个实现了商定的接口。

0

我没有使用NHibernate的,但我知道,微软已经证实,虽然它支持LINQ to SQL的前进,也不会再有发展他们在那个特定的技术来完成。

+0

您可能想为该“无进一步开发”声明添加链接,我避难没有看到任何这样说的。例如在这里所有的微软链接说Linq到SQL将演变http://stackoverflow.com/questions/252683/is-linq-to-sql-doa – MarkJ 2009-11-14 16:48:05

+0

马克,我找不到链接,但看到一个职位,其他地方其中一名MS男士出来说出来。与此同时,这是来自David Hayden的一个很好的分析: http://codebetter.com/blogs/david.hayden/archive/2008/10/31/linq-to-sql-is-dead-read-between-thethe -lines.aspx 以下是最近发生的一些事情 - 观察他如何在评论部分避免提问: http://damieng.com/blog/2009/06/01/linq-to-sql-changes-in- net-40 重点是EF,期间。 – IrishChieftain 2009-11-14 20:18:41

+0

@MarkJ,微软一直都是一切,除了明确他们未来的计划和对LinqToSql的承诺。我最好的理解是,只要它是.NET框架的一部分,它们就会继续支持LinqToSql,但未来真正的ORM功能开发将集中在EntityFramework上。然而,微软并没有明确的消息传达这一信息。 – 2009-11-15 12:11:22

1

如果您的应用程序只需要基本功能,那么我会说LINQ to SQL,否则使用NHibernate。我知道少量的LINQ,我正在研究学习NHibernate,并且从我所知道的看,NHibernate是一个更好的长期解决方案,因为它比L2S(与数据库紧密耦合)更抽象,但是L2S更易于选择并提供更快的解决方案。

不知道更多关于你的具体问题,我会说使用NHibernate的,因为它是更加灵活和答辩改变,虽然有一个稍微“企业”学习比Sql的Linq曲线。对于一个好的NHibernate资源,我建议检查Steve Bohlen's "Summer of NHibernate" series

1

3tier的最佳解决方案是什么,我不会说。没有饼干响应每个你选择的框架/库都会有折衷。要做出这个ORM决策,你需要看看你的业务需求,并确定哪种可能性最能帮助你以及时和可维护的方式实现我们的目标。你的域模型有多复杂,并且可以通过sql来充分描述它们。