我们有一个通过接口支持插件的应用程序。另一方面,插件本身包含许多逻辑和代码。插件在应用程序公开的接口旁边具有应用程序库的依赖项(项目和dll引用)。
应用程序核心库有许多可以在插件中使用的可重用组件。但是,如果这些组件中的任何一个发生任何变化,插件和应用程序都会受到影响,因为它们都有依赖关系。
是否可以使插件包含对系统的依赖,插件是否可以扩展?关于这个问题的最佳做法是什么?
请分享您的想法和经验。
答案 0 :(得分:2)
看一下Mono.Addins,即使你没有用C#开发,它也会给你一些好主意。
简单的解决方案是为插件和核心定义版本系统,因此核心可以读取插件所需的自身版本。这种方式很容易防止插件的负载,该插件意味着与先前版本的核心一起使用。
答案 1 :(得分:1)
我认为您的问题有两个答案,具体取决于我们所讨论的级别:
答案 2 :(得分:0)
我认为让你的插件引用你的核心是完全没问题的。现在你谈论的是项目和dll引用,所以你必须使用c#,vb或c ++,这些解决方案都可以使用。
我通常有两个项目,以绕过循环依赖。
我通常有三种方式加载插件