【发布时间】:2009-04-22 20:23:13
【问题描述】:
我有一个包含 2 个主要组件 + 其他 DLL 的应用程序:
- 核心 DLL(获得所有核心功能)
- 图形界面
- 需要 DI 等的第三方和完全独立的 DLL。
现在我正在实现插件支持。
哪个 DLL 应该负责加载这些插件? GUI 还是核心 DLL?
我正在使用 MEF,所以不太清楚该放在哪里。
【问题讨论】:
标签: .net user-interface plugins mef
我有一个包含 2 个主要组件 + 其他 DLL 的应用程序:
现在我正在实现插件支持。
哪个 DLL 应该负责加载这些插件? GUI 还是核心 DLL?
我正在使用 MEF,所以不太清楚该放在哪里。
【问题讨论】:
标签: .net user-interface plugins mef
我认为答案取决于应用程序中如何使用部件(使用 MEF 术语)。我会根据使用部件的位置/方式来创建和填充容器。
例子:
如果您正在创建包含 GUI 视图的部件,我认为应用程序中的 GUI 层会加载它们并管理容器。
我有一个为客户端应用程序插件构建的应用程序框架,其中有一个静态应用程序管理器类,它为应用程序加载 Parts,但随后我还将 Parts 加载到我的核心逻辑使用的容器中.两者的意图完全不同,因为其中一些是我希望以后能够轻松换出的核心概念,而另一些是 UI 插件,当它们被放入并可供应用程序使用时扩展客户端功能。
此外,它们使用不同的方法加载...核心仅在启动时使用特定规则,另一个是从目录(插件)加载所有内容。
【讨论】:
我认为 Core DLL,因为它可能是业务逻辑,将成为插件。
【讨论】: