.NET App的插件设计
时间:2020-03-05 18:48:22 来源:igfitidea点击:
我正在寻找用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#的插件体系结构