![Diferença entre módulo e plugin no Petrel Ocean](https://rvso.com/image/1331463/Diferen%C3%A7a%20entre%20m%C3%B3dulo%20e%20plugin%20no%20Petrel%20Ocean.png)
Comecei a mexer no Petrel Ocean agora há pouco, e quero saber qual a diferença entre o Plug-in e o Módulo.
Pelo menos por enquanto, eles parecem iguais.
Alguém pode me dar algumas idéias?
Responder1
A classe Plugin contém propriedades que fornecem identidade ao plugin e são usadas pelo gerenciador de plug-ins. O plug-in contém todos os módulos em módulos IEnumerable. A interface IModule define métodos das fases do ciclo de vida do módulo. Durante a inicialização do Petrel, o Ocean Core carregará os módulos conforme definido em um arquivo de configuração pelo gerenciador de plug-ins baseado na classe Plugin.
Responder2
O plugin é novo, o IModule é antigo.
O Plugin Manager lida com o Plugin, então é esse que você deve usar.
Responder3
Se você planeja implantar seu plug-in por meio da Ocean Store, será necessário derivar da classe Plugin. É claro que seu plug-in também DEVE implementar o IModule, pois é onde residem os métodos que controlam o ciclo de vida.
Responder4
Plugin
é uma entidade agregadora de IModule
, ou seja, um plug-in Ocean pode consistir em vários módulos, cada um deles licenciado separadamente.
Plugin
contém informações adicionais - Author
, Contact
, PluginUri
, que ajudam o Petrel a informar melhor os usuários quando um plug-in causa um problema (por exemplo, exceção não tratada). A propósito, Plugin
é apenas um contêiner de informações, pois não contém nenhum método para substituir.
Plugin
permite declarar Dependencies
, para definir a ordem de carregamento dos plug-ins Ocean no Petrel.
E por fim, um plug-in Ocean com Plugin
classe definida e empacotada como PIP, contém um metarquivo em formato XML, com todas as Plugin
propriedades, permitindo que o Petrel verifique antecipadamente determinadas condições, sem realmente instalá-lo. Um exemplo é AppVersion
a propriedade, que define a versão do aplicativo host (por exemplo, Petrel), com a qual este plug-ins é compilado.