Zitat von
oki:
Unberührt der Tatsache, dass es am besten wohl über
DLL's geht, muß es Methoden geben die Ressourcen eines Programmes zu erweitern und mit neuen Programmmodulen zu koppeln.
Die gibt es
Ich benutze in meiner (kommerziellen) Anwendung dafür Packages.
Meine Anwendung ist komplett modular aufgebaut, der Anwendungsframe kann beliebig viele "Lösungsmodule" verwalten, die quasi eigene Anwendungen sind und die innerhalb des Hauptfensters ablaufen.
Hauptfenster und Module können in beide Richtungen kommunizieren, z.B. wird in dem Hauptfenster die
DB-Verbindung hinterlegt (natürlich konfigurierbar) und kann von den Modulen z.B. über:
Query.Connection := xForm.XBASDBC; // xForm ist die Hauptform
zugewiesen werden.
Über einen "Launcher" wird die Anwendung auf dem User-PC gestartet und fragt anhand des Rollenkonzepts ab, für welche Module (und für welche Formen innerhalb eines Moduls) der Anwender berechtigt ist und lädt ggf. bei vorhandenen neueren Versionen diese von einem Server nach.
Genauso funktioniert auch die Erstinstallation: Minimales Setup mit dem Launcher ist auszuführen (kann jeder User selbst übernehmen), anschließend steht diesem die "customizte" Version zur Verfügung.
Zum Umsetzungsaufwand: Ich habe dieses Framework in meiner Freizeit entwickelt und ca. 2,5 Jahre dafür gebraucht. Am Anfang habe ich auch mit DLLs rumgespielt aber feststellen müssen, dass diese für meine Belange absolut ungeeignet waren. Nachdem ich die "Technik" mit den Modulen raus hatte, begann dann der eigentliche "Denkaufwand": Wie verwalte ich meine Module, Berechtigungskonzept, Updateprozess, wie zeige ich diese an, Mehrsprachigkeit, etc.
Viele Grüße
Igotcha