我有一個哲學問題,這也需要考慮性能的影響。.NET項目架構
我們正在設計一個新的系統,它有許多不相互關聯的子服務,但也有一些可能會互相使用(我們正在使用統一來避免任何解耦)。
我的主要問題是:
- 我們應該打破他們到不同的DLL的,其中每個服務都有自己的DLL(如product.services.serice1.dll,product.services.serice2.dll等。 ),或者我們應該將所有這些服務整合到一個具有不同名稱空間的DLL中以在它們之間分離。 它的表現,兩者有什麼區別?此外,社區(和微軟)認可的最「可接受」標準是什麼?
感謝
嗨,大家好,感謝所有的輸入;但不是你真的在尋找多個(超過20個)不同dll需要加載的效果,而不是一個單一的大dll。我想知道,除了延遲加載的優點(並且我們現在忽略部署困難),是否有加載大量DLL的風險?謝謝! – 2009-12-03 20:03:43
第一次訪問時會加載一個dll。所以如果系統在啓動時有一個初始化階段,可以調用dll來強制它們加載。這將避免在「運行時間」的性能滯後。 20 dlls == dll地獄。如果可能,我會進行整合。 – Paul 2009-12-03 20:12:41
他們只有*不同*性能特點。一個大型組件花費的總時間較少,但它會一次性發生,因此用戶(或客戶端系統,如果它們對時間敏感的話)更有可能感受到它。多組件方法需要更多的總時間來加載(如果全部加載它們),但是這個時間是分佈式的 - 因此每個加載事件都不太可能產生顯着的影響。 – 2009-12-03 20:18:28