2012-03-06 44 views
1

我習慣於使用3層項目解決方案(某些解決方案有3個以上的項目)。他們中的大多數都是ASP.Net MVC解決方案,因此他們中的很多人都擁有這些項目:站點,業務和數據。所以,3個DLL將被創建,對吧?每個項目或每個模塊有一個DLL?

這些天,我想知道我的業務層應該只是一個DLL,還是應該爲這個業務層中的每個模塊創建一個DLL,例如Product.DLL,Order.DLL,Customer.DLL等等。

我在想,如果應用程序在與產品相關的業務層中有錯誤,我只能部署Product.DLL,而不是部署整個Business.DLL。

您對此有何評論?

謝謝!

回答

1

除非您有超大業務層,否則我會避免將其拆分爲多個dll。這會給您的項目帶來不必要的複雜性。

但是,如果您正在爲銀行執行一個企業系統,並且每個項目都包含獨立的邏輯,那麼您可能需要將其拆分。

5

如果是小型系統,您可以在單個項目中編寫3層代碼。對於大型系統,您可以跨越多個DLL傳播系統。

對於較小的系統,使用名稱空間來區分層可能就足夠了。有沒有一個放之四海而皆準的所有建議。

如果您購買到這種心態,那麼DLL文件通常是物理工件,而不是一個合乎邏輯的 - 哪些組件的版本,應該同舟共濟,一起部署和/或組件需要物理分離。

+0

謝謝,Damien! – AndreMiranda 2012-03-06 19:07:19

+0

+1擁有一個DLL可以更容易地違反層邊界(這也應該考慮) – jgauffin 2012-03-06 20:06:21