2012-04-27 17 views
0

我目前正在研究一個應用程序並希望爲其添加新功能。一個可組合的應用程序是否必然意味着基於插件的體系結構

可以直接更新應用程序的代碼。

另一個將提供一個擴展性層,其中將添加新功能。

在閱讀插件體系結構上的多篇文章並使用MEF創建可組合應用程序之後,我有點困惑這兩個術語實際上是否意味着同一件事,如果不是它們有什麼不同?

另外,我想知道的任何良好的設計解決方案,有助於「開放」我的應用程序,允許在未來(新期貨可以添加「作爲一個擴展」)更容易擴展

回答

1

你會肯定需要基於插件的體系結構才能擁有通用的可擴展性框架。

但是,您不一定需要依賴容器或MEF。

它可能就像定義一個接口和掃描組件的接口類型一樣簡單。然後實例化類型的一個實例以開始。

+0

問題仍然存在 - 如何徵集許多應用程序選項/事件以進行自定義和擴展。簡單的IPlugin接口不支持這一點。 – 2012-04-27 18:13:06

+0

這取決於。你必須決定擴展需要什麼。 'IPlugIn'可以有'IEnumerable Messages()'方法,您可以創建一個菜單來以某種方式調用這些消息。大多數插件體系結構將具有定義的結構,從邏輯上適合您的主機/外殼。 – 2012-04-27 18:15:44

+0

這正是我的問題 - 我的「插件」或擴展程序根本不適合任何特定的地方,但應該可以融入我應用程序中的任何地方。當然,我可以提供各種IPlugin接口(IPluginUI等)來擴展或與不同的應用程序進行交互。 – 2012-04-27 18:28:14

相關問題