2013-02-15 62 views
1

我通常會將項目分割爲圖層,即表示層,業務邏輯層和數據邏輯層。有時我會使用命名空間來分離圖層,有時我會有三個單獨的DLL(使用層)。一個圖層的多個DLL

我看到開發人員將層分成多個DLL。例如,我曾經看到一個擁有超過一百個不同項目文件的業務邏輯層,因此有超過一百個不同的DLL。此外,MSDN文檔顯示.NET框架包含多個DLL,例如mscorlib等

我相信,具有獨立的DLL背後的原因是它最大限度地減少了內存佔用,並且它允許多個開發人員在不同的項目上工作,例如,一個團隊可以在一個項目上工作,另一個團隊在另一個項目上工作等。

我在一個兩個開發團隊中工作。開發人員使用什麼標準決定分割成單獨的DLL?

+0

獨立的DLL沒有幫助的內存佔用,除非有些項目可以選擇完全不使用的DLL。如果整套設備總是一起使用,那麼沒有記憶效益。 – tcarvin 2013-02-15 19:10:19

+0

@tcarvin,你能發表一個答案,以便我可以信任嗎?的 – w0051977 2013-02-15 19:11:03

+0

可能重複[C#:爲什麼要使用的DLL(http://stackoverflow.com/questions/6793599/c-why-use-dlls) – 2013-02-15 19:14:59

回答

0

將代碼分成多個程序集有很多原因,比其他技術更具有技術性。程序集可以用於代碼的邏輯分組,非常類似於名稱空間,實際上,一種常見模式是將大型名稱空間(關注點)分離爲該名稱空間的單獨程序集。但是這個原因絕對不是使用多個組件的最佳理由。

代碼重用就像將代碼放入不同程序集的頭號因素一樣。例如,您可能有一個控制檯應用程序,並且所有代碼都是編譯的一個執行文件。稍後,您決定爲相同的應用程序創建Web應用程序前端。您可能會將解決方案重構爲三個項目,而不是將核心代碼從控制檯應用程序複製到您的Web應用程序:代碼代碼的類庫(主要實現),控制檯應用程序(已存在)和Web應用程序。控制檯應用程序和Web應用程序項目/程序集將引用類庫項目/程序集,並在兩個實現中重用主代碼。這簡直太簡單了,介意你。

將代碼分成多個程序集以分離關注點,同時管理依賴關係的另一個原因。在這種情況下,您可能有需要引用面向Web的依賴關係(其他程序集)的代碼,這些代碼可能不想在覈心應用程序程序集中引用。你可以這樣做,這樣你就可以在不需要不必要的依賴的情況下重用核心程序集,而不需要將應用程序分解爲其他程序集/項目。

另一個原因是方便大型團隊的並行發展,其中子團隊可以在不同的裝配各項工作,幫助減少對應用程序的不同的關注點工作開發商之間「collissions」的數量。

1

將圖層分隔成多個DLL的原因是什麼?

有很多原因可以做到這一點。

  1. 它增加了隔離,它可以幫助編譯器防止混淆顧慮。在不明確添加引用的情況下,「不小心」就不能在其他DLL中使用內部類型,這可以讓編譯器幫助您保持代碼清潔。
  2. 如果您在運行時不使用程序集,則不會加載它。這可以減少內存佔用。 (但是,如果使用了所有的程序集,它將無濟於事)。
  3. 它提供了API和項目之間的邏輯分離,它可以幫助組織和維護代碼。請注意,太多的項目同樣糟糕(有時甚至更糟),但是,因爲許多項目增加了複雜性,可能沒有好處。
+0

謝謝。第1點+1。我已經想到了第2點和第3點,但感謝您確認這些點。是否有開發人員用來決定如何拆分爲DLL的標準? – w0051977 2013-02-15 19:17:01

相關問題