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
 
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Robustes Plugin-System

  Alt 1. Dez 2009, 20:51
Zitat von ele:
Hallo,

Ich stehe vor der Herausforderung ein robustes, modulares System zu Programmieren und möchte gerne eine Diskussion anregen, welches die beste Lösung sein könnte.
Bemühe mal die Suchfunktion. Dazu gibt es schon eine Reihe Diskussionen.
Ich hatte das gleiche Problem und habe alle Varianten, einschließlich teurer Kauftools wie Remobjects Hydra, ausprobiert.

Jetzt bin ich der Ansicht, das es unter Delphi für ein robustes Pluginsystem, das auch von Dritten erweitert werden kann, nur zwei Möglichkeiten praktikabel sind.

Das ist einmal eine getrennte ExeFile. Hier habe ich mir ein Framework geschrieben, was den Datenaustausch realisiert.
Start des Programmes über Kommandozeile. In dieser werden Steuerparameter und das Handle des rufenden Programms übergeben.
Das externe Plugin meldet sich dann über wm_copydata an und übergibt/übernimmt die Steuerparameter.

Die zweite Variante ist die Realisierung als Com-Server.
Einziger Nachteil ist hier die Notwendigkeit einer einmaligen Registrierung bei der Installation.
Wenn man erst einmal mit dem Prinzip klar kommt, es ist einfach aber schlecht dokumentiert, dann ist das die bei weitem eleganteste Lösung.
Alle Plugin ein einheitliches Basisinterface. Den Namen des Plugin in einer Inifile oder ähnlichem eingetragen und das Problem ist gelöst.
Alle anderen Verfahren funktionieren nur mit Klimmzügen, wenn man ohne Laufzeit BPL arbeitet.
Mit Laufzeit BPL handelt man sich eine BPL-Hölle ein, gegen die die DLL Hölle ein Erholungslager ist.

Com hat noch ein paar andere Vorteile.
So kann das Plugin als Exe angelegt werden. Mit COM+ können Plugin rechnerübergreifend eingesetzt werden.
Letztendlich bieten solche Plugin praktisch eine Sprachunabhängikeit, wenn man sich an die in Delphi verfügbaren Datentypen für das Interface hält.
Z.B. kann ein Net Programm mit wenigen Klicks in ein Com-Server verwandelt werden und ist aus Delphi problemlos aufrufbar.
Die Forderung zur Laufzeit laden, entladen erfüllt Window automatisch.

Gruß
Peter
  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