我們正在討論如何設計我們的應用程序。幾大或很多小dll
使幾個相對較大或使用很多專用dll。
有時我們在我們的不同產品中使用我們的dll。
它在.net環境下的常見做法是什麼。
加載時間真的不一樣嗎?
我們正在討論如何設計我們的應用程序。幾大或很多小dll
使幾個相對較大或使用很多專用dll。
有時我們在我們的不同產品中使用我們的dll。
它在.net環境下的常見做法是什麼。
加載時間真的不一樣嗎?
我從來沒有真正購買過「很多引用=壞」的想法,這麼多.NET開發者似乎都是這樣。我真的認爲更好的分離是一件好事,尤其是當您獲得將代碼重用於其他項目的好處時。
如果你看看Rails或Django社區,它非常鼓舞人心,甚至有些期望你將應用程序劃分成小的可重用部分。真的沒有任何缺點,但有很多好處。通常你的代碼更清潔,因爲你必須以邏輯單位來考慮事情。
在.NET社區中,我看到很多人只是想將所有東西塞進一個單片DLL中,並且在我看來這是錯誤的。爲什麼項目引用不好?爲什麼微型圖書館要處理他們自己獨特的任務是不好的?答案是,它一點都不壞。我們應該接受關注點和DRY原則的分離。
我主要同意,雖然在rails中,小型和大型庫之間的成本差異添加到您的程序可以忽略不計;你支付其他的東西,而不是。如果您在C#應用程序中有20個小型dll,而幾乎是單一的一個或兩個dll,則啓動時間成本會明顯較高。實際上,我不會將重點放在大多數Web應用程序的啓動時間上,但如果您的應用程序是富客戶端,則對您的應用程序的感知可能會有所不同。從部署的角度來看,依賴管理只是開始關注dotnet框架,這掩蓋了一些「最佳實踐」的教條。 – JasonTrue 2011-03-17 19:08:24
加載時間真的有這麼不同嗎?
這應該不是一個決定性因素。相反,請關注您的產品如何使用DLL中的功能,以及不同庫中的邏輯分隔。
就我個人而言,我會根據用法設計您的類庫結構。
有兩個相互競爭的目標,而恰當的平衡取決於你將如何使用這些庫。
我傾向於贊成擁有儘可能少的庫,只要每個庫的「功能」通常是唯一的。如果需要很大的依賴關係,我會盡量將其隔離到一個庫中,以避免必須部署該依賴關係。
我們公司最初採取了製造多個DLL的方法。我們發現它會造成重大的維護問題。現在我們正在朝着更少的DLL發展。這意味着,當不同的產品使用我們的通用組件時,它們通常具有比他們可能需要的更多的類,但這不是一個可怕的問題。
這裏沒有真正具體的答案。一般來說,更傾向於更小/鬆散耦合的模塊,而不是更緊密耦合的單片模塊。就我個人而言,我不會擔心運行時開銷,因爲與應用程序的設計/體系結構相比,它並不重要。
http://stackoverflow.com/questions/3406739/are-applications-with-many-dlls-a-bad-thing – 2011-03-18 07:08:41