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
 
#7

Re: Robustes Plugin-System

  Alt 2. Dez 2009, 12:20
Zitat von ele:

Mein Favorit ist bisher die Lösung mit getrennten Prozessen und COM. Jetzt muss ich mal ein Grundgerüst bauen und sehen wo die schwierigkeiten liegen.
Bei der Lösung bin ich nach vielen Versuchen auch angekommen und ärgere mich über alle Umwege.
Man sollte aber mit Delphi 2009/2010 anfangen, da hier die Com-Geschichte gründlich überarbeitet wurde und
vieles einfacher macht. So wird z.B. die Typlibrary nicht mehr binär editiert, sondern in einer Quellcodedatei vorgehalten ,
welche danach compiliert wird.
Das Anlegen eines Com-Servers untstützt Delphi mit Experten recht gut.
Ein Comserver kommt letztendlich auch nur als dll daher. Die dll sind relativ groß, da sie die Laufzeitumgebung von Delphi mit eingebunden haben. Dafür sind sie aber von der Compilerversion völlig unabhängig.
Das spätere Ändern von Schnittstellen ist ebenfalls kein Problem. Ein Com-Object kann mehrere Schnittstellen beinhalten.
Die alte Schnittstelle wird unverändert gelassen und eine neue Schnittstelle declariert.
Die richtige Schnittstellenzuordnung erfolgt automatisch über die GUID der Schnittstelle.
Man muß nur eisern daran festhalten eine einmal veröffentlichte Schnittstelle nie mehr zu ändern.
Alte Software arbeitet mit der alten Schnittstelle, neuere Software kennt bereits die neueren Schnittstellen.
Mit dem ersten Aufruf eines Com-Objectes läd das OS dieses und gibt es automatisch frei, wenn keine Referenz auf dieses Objekt mehr vorhanden ist.
Praktisch heist das, das ein Com-Object auch entladen wird, wenn das Hauptprogramm abstürzt und seinen Process beendet..
Ein Comserver kann als Inprocess oder outprocess-Server deklariert werden.
Bei einem outprocess-Server können beliebig viele Client auf diesen Server zugreifen, so er das kann.
Vom Comserver zur Anwendung gibt es die Möglichkeit von Events. Das war vor Delphi 2009 etwas schwierig.
Alternativ kann das aufrufende Programm eine Callback Adresse übergeben. Bei mir ist diese parameterlos und fordert den Client nur auf den Serverstatus abzufragen.
Bei Interesse mal die email-Adresse als PM schicken. Ich kann dann eine kleine Demo-Version schicken.
Hier wird die Form aus dem Com-Server z.B. in einem Tabshett als Parent eingebunden.


MAF Components habe ich mir auch angesehen. Dabei bin ich aber wieder bei Abhängigkeit von runtime - BPL.

Ich haffe das hilft
Mit 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