2009-04-22 65 views
2

我有一个应用程序有2个主要组件+其他DLL:加载插件应负责哪一层?

  1. 核心DLL(得到了所有核心功能)
  2. GUI
  3. 第三方和完全独立的DLL这需要DI等

现在我正在实现插件支持。

哪个DLL应该负责加载这些插件? GUI或核心DLL?

我正在使用MEF,所以不太确定在哪里粘贴它。

回答

2

我认为答案取决于部件(使用MEF术语)在应用程序中如何使用。我会根据部件的位置/方式来创建和填充容器。

例子:

如果要创建包含意见的GUI我认为在应用程序的GUI层将加载它们和管理容器部件。

我有一个为客户端应用程序插件构建的应用程序框架,并且它有一个静态应用程序管理器类,它为应用程序加载零件,但随后我还将零件加载到由我的核心使用的容器中逻辑。这两者的意图完全不同,因为其中一些是我希望稍后可以轻松更换的核心概念,还有一些是UI插件,用于在客户端被投入并提供给应用程序时扩展客户端功能。

此外,这些使用不同的方法加载......核心只在启动时使用特定的规则,另一个是加载目录(插件)中的所有内容。

0

我会认为核心DLL,因为它可能是插件的业务逻辑。