Я начал трогать Petrel Ocean только сейчас, и что бы знать, в чем разница между плагином и модулем.
По крайней мере, сейчас они выглядят одинаково.
Кто-нибудь может дать мне несколько идей?
Я начал трогать Petrel Ocean только сейчас, и что бы знать, в чем разница между плагином и модулем.
По крайней мере, сейчас они выглядят одинаково.
Кто-нибудь может дать мне несколько идей?
Плагин новый, IModule старый.
Менеджер плагинов имеет дело с плагином, поэтому вы должны его использовать.
Если вы планируете развернуть свой плагин через Ocean Store, то вам необходимо будет наследовать от класса Plugin. Конечно, ваш плагин ДОЛЖЕН также реализовывать IModule, поскольку именно там находятся методы, управляющие жизненным циклом.
Класс Plugin содержит свойства, которые идентифицируют плагин и используются менеджером плагинов. Плагин содержит все модули в IEnumerable модулей. Интерфейс IModule определяет методы фаз жизненного цикла модуля. Во время запуска Petrel Ocean Core будет загружать модули, как определено в файле конфигурации менеджером плагинов на основе класса плагинов.
Plugin
является объединяющей сущностью для IModule
, т.е. один плагин Ocean может состоять из нескольких модулей, каждый из которых лицензируется отдельно.
Plugin
содержит дополнительную информацию - Author
, Contact
, PluginUri
, которая помогает Petrel лучше информировать пользователей, когда плагин вызывает проблему (например, необработанное исключение). Кстати, Plugin
является только информационным контейнером, так как он не содержит никаких методов для переопределения.
Plugin
позволяет объявлять Dependencies
, определять порядок загрузки плагинов Ocean в Petrel.
И, наконец, плагин Ocean с классом Plugin
определенным и упакованным как PIP, содержит метафайл в формате XML со всеми свойствами Plugin
, позволяя Petrel проверять определенные условия заранее, без фактической его установки. Примером является свойство AppVersion
, которое определяет версию хост-приложения (например, Petrel), с которым скомпилированы эти плагины.