AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Robustes Plugin-System

Ein Thema von ele · begonnen am 1. Dez 2009 · letzter Beitrag vom 2. Dez 2009
 
Benutzerbild von TheJeed
TheJeed

Registriert seit: 11. Jun 2009
Ort: Leipzig
57 Beiträge
 
#3

Re: Robustes Plugin-System

  Alt 1. Dez 2009, 21:10
Ich stand mal vor der selben Entscheidung. Die wurde mir dadurch erleichtert, dass ich mir ein Konzept erarbeitet habe, wozu meine Plugins eigentlich dienen sollten:
  • ein "Typ I" Plugin sollte eine Form darstellen
  • ein "Typ II" Plugin ist in etwa vergleichbar mit einer nicht-visuellen Delphi Komponente: Daten in meinem Programm zu importieren, zu exportieren oder zu manipulieren.

Alle Plugins sind DLLs.

Wird ein Typ I - Plugin eingebunden, dann wird eine in jeder DLL gleich gebaute Function aufgerufen, die eine Beschreibung der vom Hauptprogramm zu bastelnden Oberfläche zurückliefert, sowie Zeiger auf mitgelieferte Funktionen. Die Forms werden vom Hauptprogramm zusammengebaut, und zwar aus Komponenten, die es bereits "vorhält". Vereinfacht gesagt: Sagt das Plugin "hier kommt ein Button hin", instanziiert das Hauptprogramm den Button und verknüpft dessen Events mit Funktionen aus der DLL. Bei dieser Vorgehensweise nehme ich die Beschränkung hin, dass die DLL selbst keine Komponenten verwenden kann, die das Hauptprogramm noch nicht kennt.

Ein Typ II - Plugin tritt maximal als zusätzlicher Menüeintrag im Hauptprogramm in Erscheinung, oder wird unsichtbar mit einem Event verknüpft. Das Hauptprogramm stellt für bestimmte Events Publisher zur Verfügung, an denen sich sämtliche Typ II - Plugins als Observer anmelden, sobald sie geladen worden sind.

Das ist mein Ansatz - er hat seine Schranken und mag nicht sonderlich elegant sein, aber er ist im Einsatz und hat bisher keine Probleme bereitet.
Teitmaschine Go!
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz