2011-07-20 101 views
1

爲了確保我們採用正確的方法來構建我們的MEF插件,有一個關於將每個插件作爲單獨程序集是否合理的爭論。組織MEF組件

例如,假設我們有一個DataProcessors解決方案,並且我們開始爲我們收到的每種不同類型的數據文件開發不同的處理器。隨着每個處理器聯機,我們希望能夠讓MEF目錄包含這個新插件。然而,由於VS和我們的構建環境中的性能受到影響,我們擔心會有一個解決方案,其中有大約100個項目。

我認爲將這些處理器中的每一個隔離爲一個單獨的程序集並保持該程序集的責任是有限的是有意義的。但是有成本。

有沒有人有任何經驗,一種方法是否會比另一種更好?

回答

2

我不得不應付的情況略有不同,以你在我的每一個項目都包含一個「模塊」包含了很多功能與許多MEF出口。 如果我打算單獨分發它們或計劃向每個客戶端分發不同的功能,我通常只將它們分成不同的程序集。

我不認爲你應該以不同的方式對待你在組織沒有MEF的課程和程序集時做出的決定。如果您始終使用所有這些導出來釋放所有產品,請將其全部包含在一個裝配中。

雖然我很想聽到其他人的意見!

0

沒有真正正確或錯誤的答案。您可以決定將多個處理器捆綁到同一個程序集中,或者您可以使用每個程序集方法。後者給你最大的靈活性,但前者在分配時可能更有效率。

我會看看你打算做的更新的頻率,並可能將它們組織成處理器組,圍繞共同的基本數據類型或操作。

E.g.我可以有一個整數處理器和另一個字符串處理器組合。

正如我所說,這樣做沒有正確或錯誤的方式。