2011-03-17 70 views
4

我們正在討論如何設計我們的應用程序。幾大或很多小dll

使幾個相對較大或使用很多專用dll。

有時我們在我們的不同產品中使用我們的dll。

它在.net環境下的常見做法是什麼。

加載時間真的不一樣嗎?

+0

http://stackoverflow.com/questions/3406739/are-applications-with-many-dlls-a-bad-thing – 2011-03-18 07:08:41

回答

6

我從來沒有真正購買過「很多引用=壞」的想法,這麼多.NET開發者似乎都是這樣。我真的認爲更好的分離是一件好事,尤其是當您獲得將代碼重用於其他項目的好處時。

如果你看看Rails或Django社區,它非常鼓舞人心,甚至有些期望你將應用程序劃分成小的可重用部分。真的沒有任何缺點,但有很多好處。通常你的代碼更清潔,因爲你必須以邏輯單位來考慮事情。

在.NET社區中,我看到很多人只是想將所有東西塞進一個單片DLL中,並且在我看來這是錯誤的。爲什麼項目引用不好?爲什麼微型圖書館要處理他們自己獨特的任務是不好的?答案是,它一點都不壞。我們應該接受關注點和DRY原則的分離。

+1

我主要同意,雖然在rails中,小型和大型庫之間的成本差異添加到您的程序可以忽略不計;你支付其他的東西,而不是。如果您在C#應用程序中有20個小型dll,而幾乎是單一的一個或兩個dll,則啓動時間成本會明顯較高。實際上,我不會將重點放在大多數Web應用程序的啓動時間上,但如果您的應用程序是富客戶端,則對您的應用程序的感知可能會有所不同。從部署的角度來看,依賴管理只是開始關注dotnet框架,這掩蓋了一些「最佳實踐」的教條。 – JasonTrue 2011-03-17 19:08:24

4

加載時間真的有這麼不同嗎?

這應該不是一個決定性因素。相反,請關注您的產品如何使用DLL中的功能,以及不同庫中的邏輯分隔。

就我個人而言,我會根據用法設計您的類庫結構。

有兩個相互競爭的目標,而恰當的平衡取決於你將如何使用這些庫。

  • 較少的分離(較少的庫)通常會導致更容易的開發和更容易的維護。
  • 更多的分離(更多dll)可以帶來更大的靈活性,並可能縮小部署範圍,因爲不同的產品可以挑選他們想要的產品。

我傾向於贊成擁有儘可能少的庫,只要每個庫的「功能」通常是唯一的。如果需要很大的依賴關係,我會盡量將其隔離到一個庫中,以避免必須部署該依賴關係。

2

我們公司最初採取了製造多個DLL的方法。我們發現它會造成重大的維護問題。現在我們正在朝着更少的DLL發展。這意味着,當不同的產品使用我們的通用組件時,它們通常具有比他們可能需要的更多的類,但這不是一個可怕的問題。

2

這裏沒有真正具體的答案。一般來說,更傾向於更小/鬆散耦合的模塊,而不是更緊密耦合的單片模塊。就我個人而言,我不會擔心運行時開銷,因爲與應用程序的設計/體系結構相比,它並不重要。