2009-11-14 50 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來充分描述它們。