![Diferencia entre módulo y complemento en Petrel Ocean](https://rvso.com/image/1331463/Diferencia%20entre%20m%C3%B3dulo%20y%20complemento%20en%20Petrel%20Ocean.png)
Empecé a tocar Petrel Ocean hace un momento, y qué saber cuál es la diferencia entre el complemento y el módulo.
Al menos por ahora, lucen iguales.
¿Alguien puede darme algunas ideas?
Respuesta1
La clase de complemento contiene propiedades que proporcionan identidad al complemento y las utiliza el administrador de complementos. El complemento contiene todos los módulos en módulos IEnumerable. La interfaz IModule define métodos de las fases del ciclo de vida del módulo. Durante el inicio de Petrel, Ocean Core cargará los módulos según lo definido en un archivo de configuración por el administrador de complementos según la clase de complemento.
Respuesta2
El complemento es nuevo, IModule es antiguo.
El Administrador de complementos se ocupa del complemento, por lo que ese es el que debes usar.
Respuesta3
Si planea implementar su complemento a través de Ocean Store, se le pedirá que derive de la clase Complemento. Por supuesto, su complemento DEBE implementar también IModule ya que es allí donde residen los métodos que controlan el ciclo de vida.
Respuesta4
Plugin
es una entidad agregadora de IModule
, es decir, un complemento Ocean puede constar de varios módulos, cada uno de ellos con licencia por separado.
Plugin
contiene información adicional: Author
, Contact
, PluginUri
, que ayuda a Petrel a informar mejor a los usuarios cuando un complemento causa un problema (por ejemplo, una excepción no controlada). Por cierto, Plugin
es sólo un contenedor de información, ya que no contiene ningún método para anular.
Plugin
le permite declarar Dependencies
, para definir el orden de carga de los complementos de Ocean en Petrel.
Y finalmente, un complemento Ocean con Plugin
clase definida y empaquetada como PIP, contiene un metarchivo en formato XML, con todas las Plugin
propiedades, lo que permite a Petrel verificar ciertas condiciones por adelantado, sin tener que instalarlo. Un ejemplo es AppVersion
la propiedad, que define la versión de la aplicación host (por ejemplo, Petrel), con la que se compilan estos complementos.