我一直在閱讀MSDN文章在 http://msdn.microsoft.com/en-us/magazine/cc700340.aspxn層架構中的實體框架 - 遵循的最佳實踐?
但如果有其他/替代在asp.net使用實體框架(.NET Framework 3.5 SP1中)的最佳實踐在想,正層次的應用。
我一直在閱讀MSDN文章在 http://msdn.microsoft.com/en-us/magazine/cc700340.aspxn層架構中的實體框架 - 遵循的最佳實踐?
但如果有其他/替代在asp.net使用實體框架(.NET Framework 3.5 SP1中)的最佳實踐在想,正層次的應用。
我認爲與實體框架一起使用的常見設計模式是Repository模式,我不會提供鏈接,因爲Google搜索將返回的內容超過我可以在此處發佈的內容。它將幫助您將數據訪問代碼隱藏在允許更輕鬆地進行測試和分離問題的界面之後。
我認爲您在最佳實踐方面所做的任何選擇都將在很大程度上取決於您正在使用的工具。如果您使用的是標準ASP.NET,那麼我會建議您使用您鏈接的文章中建議的MVP模式,以幫助您區分問題並創建可測試的代碼。但是,如果您使用的是ASP.NET MVC,那麼MVP無關緊要,因爲該框架有助於將您的擔憂分開。有關環境的更多背景可能有助於提出建議。
存儲庫模式的一個好的文章是這裏的代碼項目文章:http://www.codeproject.com/KB/database/ImplRepositoryPatternEF.aspx – itchi 2009-12-11 03:59:53
值得注意的是,作爲.NET 4和EF4的一部分,這是一個備受關注的領域。
他們現在支持POCO以及Self-Tracking-Entities,它們都可以在層和層之間來回發送(包括WCF邊界)。
有關自追蹤實體的更多信息,請參見this blog entry。
我喜歡使用UnitOfWork模式以及DDD和服務層。我不會將我的域對象傳遞給服務層以外的任何層。即使這樣我的域對象也被接口抽象出來了。服務層使用適配器模式或遠程門面模式將dto對象傳遞給其客戶端。
>不通過層之間的實體 你的意思是,不通過層之間的實體? – 2009-12-10 12:29:26
通常我使用接口在域和服務層之間傳遞,並使用dtos在服務和表示層之間傳遞。 我這樣做,不管層次。 – devlife 2010-01-05 17:29:59
我認爲你的意思是分層架構,而不是分層的。對? – RickNZ 2009-12-10 04:08:34