![Petrel Ocean のモジュールとプラグインの違い](https://rvso.com/image/1331463/Petrel%20Ocean%20%E3%81%AE%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%A8%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%AE%E9%81%95%E3%81%84.png)
今、Petrel Ocean を触り始めたのですが、プラグインとモジュールの違いが何なのか知りたいと思っています。
少なくとも今のところは、見た目は同じです。
誰か私にアイデアをくれませんか?
答え1
Plugin クラスには、プラグインに ID を提供し、プラグイン マネージャーによって使用されるプロパティが含まれています。Plugin には、IEnumerable モジュール内のすべてのモジュールが含まれています。IModule インターフェイスは、モジュールのライフサイクル フェーズのメソッドを定義します。Petrel の起動時に、Ocean Core は、Plugin クラスに基づいてプラグイン マネージャーによって構成ファイルに定義されているモジュールをロードします。
答え2
プラグインは新しく、IModule は古いです。
プラグイン マネージャーはプラグインを扱うので、これを使用する必要があります。
答え3
プラグインを Ocean Store を通じてデプロイする予定の場合は、Plugin クラスから派生する必要があります。もちろん、ライフサイクルを制御するメソッドが存在する場所であるため、プラグインは IModule も実装する必要があります。
答え4
Plugin
は の集約エンティティですIModule
。つまり、1 つの Ocean プラグインは複数のモジュールで構成され、各モジュールは個別にライセンスされます。
Plugin
には、プラグインが問題 (例: 未処理の例外) を引き起こした場合に Petrel がユーザーに適切に通知するのに役立つ追加情報Author
、Contact
、が含まれます。ちなみに、は情報コンテナーのみであり、オーバーライドするメソッドは含まれません。PluginUri
Plugin
Plugin
を宣言してDependencies
、Petrel にロードされる Ocean プラグインの順序を定義できます。
そして最後に、クラスが定義され PIP としてパッケージ化された Ocean プラグインにはPlugin
、すべてのPlugin
プロパティを含む XML 形式のメタファイルが含まれており、Petrel は実際にインストールしなくても、事前に特定の条件をチェックできます。例としてはAppVersion
、このプラグインがコンパイルされるホスト アプリケーション (Petrel など) のバージョンを定義するプロパティがあります。