2009-09-14 72 views
0

我正在研究的產品需要以這樣一種方式構建,即我們有一個由可插入框架驅動的報價引擎。插件框架 - 可以有太多的插件程序集?

我們目前正在考慮使用MAF,所以我們可以利用主機和插件接口的版本分離。

但是,我擔心我們會有很多程序集,我們可能會爲每個引擎引擎插件添加一個 - 其中可能會有100個插件,我們還需要支持多個版本,所以總共可能有很多組件。

報價引擎也使用WF來驅動它,這意味着每個插件的每個AppDomain都需要一個與其關聯的工作流運行時。這似乎相當重量級,但我們可以卸載不常使用的插件。

這是否看起來像一個很好的設計?我們還查看了使用IOC容器加載外掛程序類型的單個AppDomain解決方案,但是我擔心我們將無法卸載任何程序集,因爲它們的數量有限。

+0

你的意思是MEF?如果是這樣,你可能想重申這一點。 – TrueWill 2009-09-14 22:18:40

+0

不,我的意思是MAF - 管理的Addin框架,它是.NET 3.5的一部分。因爲MEF是一個可擴展性框架,所以MEF只允許您將插件添加到您正在使用的AppDomain中。 MAF的主要的一點是,加載項可以在自己獨立的AppDomain,您可以independantly確保主要的AppDomain運行。 – spooner 2009-09-15 05:18:43

回答

0

每個AppDomain和Assembly都會增加一些開銷,但我沒有意識到任何特定的限制。

你能做的唯一的事情就是測試(例如通過編寫代碼來生成許多非常相似,但不同的組件嘗試與100,250,1000工作,....),看到的影響是什麼)。

+0

謝謝,我將運行一些測試,看看對我們來說,單一AppDomain模型(通過IOC)還是多AppDomain模型(通過MAF)會有更好的性能。 我會根據結果更新問題。 – spooner 2009-09-15 10:10:56