Hallo zusammen!
Wir haben eine recht große Delphi-Anwendung, die irgendwann einmal vollständig nach c# migriert werden soll. Da jeder Weg mit einem ersten Schritt beginnt, wollen auch wir zunächst einzelne Teile auslagern.
Daher würde ich mich über Ideen freuen, wie man die Kommunikation zwischen einem laufenden Delphi-Programm und einer (auf den Startschuss) wartenden c#-Anwendung umsetzen kann. Es müssen nur wenige Details ausgetauscht werden (wie z.B. Datenbankname und -tabelle).
Wenn dann die c#-Komponente durchgelaufen ist, soll das Delphi-Programm von der c#-Komponente informiert werden.
Über Anregungen würde ich mich sehr freuen. Ich möchte keine fertigen Lösungen von euch, sondern lediglich Vorschläge und idealerweise Erfahrungen, die ihr mit dem Vorschlag gemacht habt.
Freundliche Grüße,
Florian
Hi deerhunter,
hm.. mal eine ganz interessante Problemstellung. Aber was mir spontan einfällt: Delphi kann meines wissens ja recht gut mit COM umgehen (oder irre ich mich?). Man könnte in C# die Anwendung soweit schreiben, wie man sie halt braucht. Danach baut man einfach eine Klasse rein, welche also COM-Komponente anderen Anwendungen zur Verfügung steht - also von eurem Delphi Programm geladen werden kann. So kann der Austausch der Daten über die COM-Schnittstelle erfolgen und die C#-Komponente kann ganz normal seine Oberflächen öffnen, als ob sie eine reine C# / .Net Applikation wäre. Sprich: Ein in der C# Komponente geöffnetes Fenster weiß gar nicht, ob es über die COM-Schnittstelle aufgerufen wird oder von der normalen C#-Main Funktion aus.
Wenn später auf eine reine C# Umgebung umgestellt wird, würde halt die COM-Schnittstelle wegfallen, aber das tut ja keinen weh.
Gruß
Roland
Hallo Florian
Eine weitere Möglichkeit, welche wir in Betracht ziehen um eine Delphi-Applikation schrittweise zu portieren, ist Hydra von RemObjects. Dadurch können wir ohne den Umweg über COM eine gute Verbindung zwischen beiden Welten erreichen.
Gruss Ralf
Hallo Roland!
Danke für deinen interessanten Vorschlag. An COM-Schnittstellen habe ich gar nicht gedacht. Ich werde mich mal schlau machen und testen, wie viel Aufwand das ist.
Gruß,
Florian
Hallo Ralf,
danke für eine Empfehlung. Mal schauen, ob wir für die Lösung Geld in die Hand nehmen wollen. Ich werde den Vorschlag mit als Alternative in den Ideenpool einfließen lassen 😉
Gruß, Florian
Eine weitere Möglichkeit, welche wir in Betracht ziehen um eine Delphi-Applikation schrittweise zu portieren, ist
> .
Mit den RemObjects hab ich schon gearbeitet, kann sein das dieses Framework mittlerweile besser geworden ist, damals war es langsam, fehlerhaft und ingesamt eher mangelhaft. Haben den Versuch dann abgebrochen.
Eine Möglichkeit wäre, je nach Architektur der Anwendung, per MSMQ oder Services (SOAP, Rest) zu kommunizieren und so Stück für Stück die Anwendung zu migrieren. Das hat dann bei uns zum Erfolg geführt. Gleichzeitig konnt ich so auch Sünden der Delphi anwendung ausbügeln in dem ich nicht einfach nur 1:1 migriert habe.
lg
David
"Eine wirklich gute Idee erkennt man daran,
dass ihre Verwirklichung von vorneherein ausgeschlossen erscheint."
(Albert Einstein)