我正在考虑用 C# 重写我们的应用程序的一部分(目前是旧版 VB6 代码)。我开始使用的模块负责将数据从各种系统导入到我们的数据库中。每年大约有 5-6 次,新客户要求我们为他们使用的系统编写新的导入。目前,这要求我们为添加到应用程序的每个新导入选项发布新版本的软件。

重写的目标之一是使应用程序支持插件。每个新的导入都可以成为一个单独的程序集,主机应用程序将识别该程序集并允许最终用户与之交互。这有望在某种程度上简化生活,因为我们可以简单地将新程序集放入目录中,并让它被主(主机)应用程序识别和使用。

我正在努力解决的问题之一与我们当前支持的导入选项之间的差异有关。在某些情况下,我们实际上让用户指向一个目录并将该目录中的所有文件读取到我们的系统中。在其他情况下,我们允许它们指向单个文件并导入其内容。此外,某些导入具有用户应用的日期范围限制,而其他导入则没有。

我的问题是,如何设计应用程序,使我们构建和支持的导入具有一定的灵活性,同时实现一个通用接口,使主机应用程序能够轻松识别插件和选项每个都向用户公开?

有帮助吗?

解决方案

我建议您查看 .NET 3.5 附带的托管加载项框架。这 插件团队 已在以下位置发布了一些示例和工具 CodePlex 网站 还有..

其他提示

.Net 3.5具有system.Addin命名空间。

该线程还提供了一些有关旧版本框架的好信息:
Http://forums.devshed.com/net-development-87/system-plugin-532149.html

对于理论,请看一下 插件模式 马丁·福勒斯《企业应用程序架构模式》

对于一个有趣的例子,请看一下本教程: 使用 C# 的插件架构

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top