刚刚开始接触Petrel Ocean,想知道Plug-in和Module有什么区别。
至少目前,它们看起来是一样的。
有人可以给我一些想法吗?
答案1
Plugin 类包含为插件提供标识并由插件管理器使用的属性。插件包含 IEnumerable 模块中的所有模块。IModule 接口定义模块生命周期阶段的方法。在 Petrel 启动期间,Ocean Core 将根据 Plugin 类加载插件管理器在配置文件中定义的模块。
答案2
插件是新的,IModule是旧的。
插件管理器处理插件,因此您应该使用它。
答案3
如果您计划通过 Ocean Store 部署您的插件,那么您将需要从 Plugin 类派生。当然,您的插件还必须实现 IModule,因为控制生命周期的方法就驻留在其中。
答案4
Plugin
是一个聚合实体IModule
,即一个Ocean插件可能由几个模块组成,每个模块都单独授权。
Plugin
包含附加信息 - Author
、Contact
、PluginUri
,当插件导致问题(例如未处理的异常)时,这些信息可帮助 Petrel 更好地通知用户。顺便说一句,Plugin
只是一个信息容器,因为它不包含任何要覆盖的方法。
Plugin
让您声明Dependencies
,来定义 Petrel 中 Ocean 插件加载的顺序。
最后,具有类定义和打包为 PIP 的 Ocean 插件Plugin
包含一个 XML 格式的元文件,其中包含所有属性Plugin
,让 Petrel 可以预先检查某些条件,而无需实际安装它。例如AppVersion
,属性定义了此插件编译时使用的主机应用程序(例如 Petrel)的版本。