So erstellen Sie eine App mit einem Plug-In-Mechanismus [C # und Java]
Ich habe ein wenig nach dem Titel gesucht und ihn auch hier gepostet.
Obwohl es um 2003 eine aktive Bewegung (Artikel, Artikel usw.) in der Plug-In-Architektur gab, scheint es in letzter Zeit nicht viel Diskussion zu geben.
Dieses Mal habe ich ein Referenzbeispiel implementiert, um ein Gefühl für die grundlegende Herstellungsmethode zu vermitteln.
Grundlegende Herstellungsmethode
- Schnittstellen definieren (GUI, Befehle)
- Definieren Sie, wie die Schnittstelle erweitert werden soll
- Erstellen Sie eine Plug-In- oder Host-Anwendung, die die definierte Schnittstelle implementiert
Grundlegende Verwendung
- Machen Sie das Plug-In zu einer ausführbaren Datei
- Die Host-Anwendung speichert die Datei an einem bestimmten Speicherort und verwendet sie.
Für C
- Erstellen Sie eine DLL, die die Schnittstelle definiert
- Erstellen Sie ein Plug-In mit DLL, das die definierte Schnittstelle implementiert
- Erstellen Sie eine Host-Anwendung, die das Plug-In lädt und verwendet
Für Java
- Definieren Sie eine Schnittstelle für das Plug-In
- Erstellen Sie ein Plug-In mit jar, das die definierte Schnittstelle implementiert
- Erstellen Sie in der Jar-Datei eine Manifestdatei mit dem Namen der Plug-In-Klasse.
- Erstellen Sie eine Host-Anwendung, die das Plug-In lädt und verwendet
Wie implementiere ich es mit etwas, das keine Schnittstelle wie Python hat?
Python scheint eine Spezifikation zu sein, die Mehrfachvererbung ohne Schnittstelle ermöglicht.
Wenn Sie bei der Implementierung nicht sehr vorsichtig vorgehen, leiden Sie unter dem Einfluss anderer Module ...
Dies ist eine Fortsetzung der Untersuchung ...
Persönlicher Eindruck
- Bei der Implementierung in C # oder Java muss unbedingt die Schnittstelle definiert werden, einschließlich der Art des Plug-Ins.
- Wenn Sie so etwas wie IDE realisieren möchten, sollten Sie sich auf die Benutzeroberfläche der Plug-Entwicklung von Visual Studio und Eclipse beziehen.
- https://docs.microsoft.com/ja-jp/visualstudio/extensibility/starting-to-develop-visual-studio-extensions?view=vs-2017
- https://gihyo.jp/dev/serial/01/eclipse-plugin/0001
- Obwohl nicht beschrieben, scheint es mit Mehrfachvererbung in Sprachen wie Python implementiert zu sein, die keine Schnittstelle haben.
- Bei Desktop-Apps hat sich die grundlegende Konfiguration und das Design der GUI in Bezug auf die Beispiele für Visual Studio und Eclipse nicht geändert.
- Hat einen Mechanismus zum Definieren von Erweiterungen für jede
- Menü / Symbolleiste / Werkzeugfenster
[Siehe hier für den gleichen Inhalt und Code (hauptsächlich hier)]
https://github.com/dandan611/SampleOfPluginSoftware
Verweise
- Beginnen Sie mit der Entwicklung von Visual Studio-Erweiterungen
- https://docs.microsoft.com/ja-jp/visualstudio/extensibility/starting-to-develop-visual-studio-extensions?view=vs-2017
- Einführung in die Plug-In-Entwicklung Teil 1 Grundlagen der Entwicklung Lernen Sie die Grundlagen der Plug-In-Entwicklung von Eclipse kennen
- https://www.ibm.com/developerworks/jp/opensource/library/os-eclipse-plugindev1/index.html
- Erstellen eines Texteditors mit .NET-Plug-In-Funktionalität
- https://codezine.jp/article/detail/1
- Erstellen Sie ein Java-Programm, das mit einem Plug-In erweitert werden kann
- https://codezine.jp/article/detail/1271
- Was ist OSGi, die grundlegende Technologie, die in Eclipse und Spring verwendet wird?
- https://www.atmarkit.co.jp/fjava/special/osgi/osgi_1.html
- Writing Plugin-Based Applications
- https://www.developerfusion.com/article/4371/writing-pluginbased-applications/
Plug-In-Architektur
https://decomo.info/wiki/translation/adc/cocoa/foundation/introduction_to_dynamically_loading_code/0600_plugins