.NET 应用程序的插件设计

Tim*_*ine 5 .net interface-design plugins

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

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

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

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

Dav*_*dro 3

我建议您查看 .NET 3.5 附带的托管加载项框架。插件团队也在CodePlex网站上发布了一些示例和工具。