繼續使用 Microsoft 企業庫?
自從它被標記為抽像數據訪問之前,我一直在使用Microsoft Enterprise Library ,而不是編寫我自己的 DAL。最初我只是將一個文件 (sqlhelper.cs) 導入到我的項目中,但後來的版本要求我引用整個 dll,除非我想在刪除我想要的功能方面做大量工作。
我假設新版本的企業庫將在 .NET 4.0 發布幾個月後發布。我公司對庫的使用可能與傳統使用不同,我們為多個客戶設計和開發 web 和 windows 應用程序。我們要麼將完成的項目交給內部開發人員進行維護,要麼如果是較小的客戶,我們將維護應用程序。
由於業務的性質,我很幸運能夠在設計新應用程序時“從頭開始”大量時間,而不是被束縛在更新相同的程式碼庫中。下一個項目我可能會問自己同樣的問題,我們是否應該再次使用 Microsoft Enterprise Library?我們只使用數據訪問塊,它似乎在開發過程中節省了時間。同時,我想知道我通過使用對像給項目增加了多少成本和復雜性。
預先感謝您的建議。
更新:
這裡的討論確實讓我重新考慮了這個問題——它可能不是關於訪問儲存過程的輕量級抽象,而是一個更大的架構問題,即為什麼我們仍然與 N-Tier 模型相關聯。
對我來說,如果歸結為數據庫在應用程序中的用途。在經典的 3-Tier/N-Tier 世界中,數據庫是公司資訊的獨立儲存。不同的應用程序(Web、桌面等)都共享和訪問一個通用的儲存平台。在這種情況下,儲存過程是有意義的,因為它們充當各種應用程序和表之間的抽象層。
對於其他項目,數據庫是大型應用程序的專有持久儲存。UI 或其他類型的訪問(包括 Web Services、Remoting 等)需要通過應用程序的 BLL。由於我們的業務性質,這是我們更常開發的場景。
鑑於此結論,我將創建兩個原型項目,一個使用 SubSonic,另一個使用 LINQ。儘管我擔心 LINQ 的成本和保真度損失,但數據訪問所需的程式碼顯著減少以及與我們開發的項目類型保持一致,值得一看。
所有的數據訪問層都有其優點和缺點。作為承包商,我遇到了各種各樣的項目。我親自開始的每個項目,我都使用了呼叫 S’procs 的企業庫數據訪問塊。起床和走起來很快,但更重要的是:我非常熟悉它。當然,缺點是您必須編寫的程式碼量。
我最近參與的幾個項目正在使用 LINQ / PLINQO。鑑於編輯器的支持非常好,並且它為您創建了大部分程式碼,我對它對飛行中的數據庫更改的生存能力印像不深,我對你必須跳過的圈子才能從中獲得不錯的性能印象深刻。
老實說,你應該擴展並嘗試一些新的東西。這是找到每種類型的缺陷並真正能夠就您想要哪種工具來完成工作做出明智決定的唯一方法。