2012-06-19 45 views
0

我很害怕如果我在這裏做的過分。Asp.Net中的數據訪問層

我們最近爲DAl,Services和DTO啓動了一個.Net項目,包含不同的類庫。

問題是關於我們的DAL層,我們想要一個乾淨且易於維護的數據訪問層,我們希望使用Entity Framework 4.1。

因此,仍然不清楚使用DAO和DAOImpl methodolgy或 實體框架選擇Plain ADO.Net的內容。 任何人都可以請建議最好的方法。

回答

1

這取決於你想要多少工作投入到創建自己的定製DAL。使用ADO.NET和自己的實現總是更好,但是這也包括維護和優化它,並處理複雜情況,如併發,緩存以及BO,DAL和數據庫的映射。

如果您想更專注於業務價值和功能,您可能會決定使用實體框架(現在4.3版本發佈,5.0版本發佈)。好處是您使用經過認真測試的DAL,並且已經包含併發,緩存和映射的解決方案。

但我幾乎不會建議在它的頂部使用Repository和Unit Of Work模式來將實體框架的用法從其他圖層中抽象出來。然後,您可以稍後完全更改底層技術,而不會對其他圖層產生任何影響(如果您發現性能不如應有的效果,則可以用自己的ADO.NET實現替換EF)。

這取決於您需要構建的應用程序的類型及其性能要求。使用EF可以真正減少你的工作,並給你更快的結果。這也取決於開發團隊的能力。如果您只有高級開發人員和架構師從事該項目,那麼您將輕鬆創建自己的DAL。但對於初學者來說,要實現一個良好的,優化和強大的DAL是非常困難的。

我希望有幫助!

0

自從我記得以來,我一直在DAL中使用ADO.NET和DTO組合,並且我喜歡這個事實,即我控制創建實體和方法的整個過程。然而,這需要爲每個存儲過程的每個實體和方法編寫類的代價。我不介意,但最近我發現了PLINQO for LINQ to SQL,我很喜歡它。它允許您根據數據庫架構輕鬆創建/更新類,同時允許高級別的自定義。它基本上是類固醇上的LINQ2SQL。 我也很喜歡nHibernate但我認爲它比PLINQO有更陡峭的學習曲線。

我給PLINQO一個嘗試,如果我是你

+0

?它是商業嗎? –

+0

它需要Codesmith工具是的,這是商業的,但它是負擔得起的 – Dimitri