Welche Tools gibt es eine Delphi 7-Anwendung in C # und das .NET Framework zu konvertieren? [geschlossen]

StackOverflow https://stackoverflow.com/questions/59547

  •  09-06-2019
  •  | 
  •  

Frage

Ich halte eine alte PC-only-Anwendung geschrieben in Delphi 7.em Obwohl Delphi mich sehr gut in der Vergangenheit gedient hat ich nur jetzt ist es für diese eine Anwendung verwenden, und meine Fähigkeiten mit der Sprache vermindernden finden. Die Syntax ist zu verschieden von meinen ‚Job‘ Sprachen von Java / Ruby-so dauert es mich mehr in die Nut bekommen neuen Code zu schreiben, und es ist so alt ich nicht viele verwendet habe Schnittstelle s so dass der Code nicht geschafft, die mir jetzt alte scheint!

Viele meiner Benutzer zu Vista zu bewegen, die die App im Kompatibilitätsmodus ausführen kann oder GPF Probleme haben können, je nachdem wie ihre PC durch ihre IT-Abteilung konfiguriert ist, so habe ich einige Wartungsarbeiten an der Anwendung zu tun. Ich frage mich, wenn ich zu einem vertrauteren Stapel springen sollte.

Gibt es ein automatisiertes Tool, das die Zuarbeit der Umwandlung der Codebasis zu C # tun wird, ließ mich auf die Umwandlung auf alle Nicht-Standard-Komponenten konzentrieren? Ich verwende eine eingebettete Datenbank-Komponente namens AbsoluteDatabase , die im gesamten BDE-kompatibel und mit Standard-SQL ist, und eine native Delphi HTML-Browser-Komponente, die mit etwas von der Microsoft-Welt ausgelagert werden können.

Wie gut sind diese Konvertierungs-Tools?

War es hilfreich?

Lösung

Ich bin keine Kenntnis von automatisierten Werkzeugen für diese Umwandlung zu machen. Persönlich würde ich vorschlagen, dass Sie mit Delphi-Stick, vielleicht ein Upgrade nur auf eine neue Version. Ich habe ein paar Code-DOM, die versucht, von Delphi nach C # zu konvertieren gesehen, aber das bedeutet nicht die Bibliothek Problem beheben.

CodeGear (formal Borland) hat ein Tool für von C # Delphi gehen, die OK funktioniert. Ich würde die Werkzeuge übernehmen, die in die andere Richtung gehen wird die gleiche Arbeit (viel Bearbeitung erforderlich). Hier ist ein schwedisches Werkzeug, das auf dem gleichen Prinzip funktioniert CodeDOM geht von Delphi zu C # (und eine Reihe von anderen Sprachen). Es gibt andere, ich kann einfach nicht sie jetzt finden.

Ein andere Möglichkeit wäre, um eine erneut gesendete Version von Delphi für .NET und Port-Code zu aktualisieren zu sein, so .NET. Sobald Sie es Arbeit in Delphi für .NET (das ist ziemlich einfach sein wird, mit Ausnahme der Embedded DB, es sei denn sie eine .NET-Version haben) können Sie eine href verwenden <= "http://www.red-gate.com / products / Reflektor /“rel = "noreferrer">. NET Reflector und Datei Disassembler < a /> umkehren der IL zu C #. Sie werden immer noch die VCL verwenden, aber Sie können C # anstelle von Object Pascal verwenden.

Eine weitere ähnliche Lösung wäre in dem Hafen sei es href="http://remobjects.com/oxygene" von RemObjects rel="noreferrer"> Oxygene in .NET Reflector und Datei-Disassembler die IL zu C # umkehren.

Kurz gesagt, keine einfachen Antworten. Sprachmigration ist einfacher, dann Bibliothek Migration. Eine Menge davon hängt davon ab, was 3rd-Party-Komponenten, die Sie (über AbsoluteDatabase) verwendet und wenn Sie einen Windows-API gemacht Anrufe direkt in Ihrer Anwendung.

Eine weitere ganz andere Option wäre für ein Off-Shore-Team zu sehen sein, die Anwendung zu halten. Sie können sich wahrscheinlich so billig tun. Sie könnte jemanden im Inland finden, aber es würde Sie mehr zweifellos kosten (wenn auch mit dem Absacken Dollar und schlechten Arbeitsmarkt weiß man nie...)

Viel Glück!

Andere Tipps

Es wird von John Brant ein wissenschaftlicher Bericht über eine erfolgreiche Transformation eines 1,5 Millionen Linie Delphi-Projektes in C # gewesen. Er schrieb einen Delphi-Parser, einen C # Generator und viele Transformationsregeln auf dem AST. Nach und nach Verlängerung des Regelsatzes, einen täglichen Build zu tun, viele Unit-Tests, und einige Umschreiben von schwierigen Teilen Delphi erlaubten ihn mit einem Team von 4, unter denen einige der ursprünglichen Entwicklern, mit tiefen Delphi und C # Kenntnissen, die zur Migration Software in 18 Monaten. John Brant der ursprüngliche Entwickler des Refactoring Browser zu sein und die SMACC Compiler Construction Kit, Sie sind kaum in der Lage sein, dass schnell zu gehen

  

Viele meiner Benutzer bewegen sich auf Vista   die laufen die App in der Kompatibilität kann   Modus oder GPF Probleme haben   je nachdem, wie ihr PC   konfiguriert durch ihre IT-Abteilung, so   Ich habe einige Wartungsarbeiten auf das zu tun   Anwendung. Ich frage mich, ob ich   Sprung zu einem vertrauteren Stapel.

Wenn Sie etwas nicht Standard tun, D7-Anwendungen sollten in Vista gut laufen.

Wie für die Umwandlung in C #, würde ich denken, dass die meisten Konvertierungs-Tools eine Zeitverschwendung wäre. Ein besserer Ansatz kann die Anwendung von Grund auf neu zu schreiben sein.

Es gibt keine einfache Antwort, aber bedenken Sie, dass die Delphi.net Variante der Sprache zielt auf die .NET-Laufzeit, und dass verschiedene Sprachen auf .net können eng zusammenarbeiten.

Sie könnten versuchen, es in Delphi.Net zu kompilieren bekommen, in verschiedene Baugruppen Factoring und Umwandlung dann die Baugruppen von Hand eins nach dem anderen. Reflektor könnte helfen, seine Reverse-Engineering kompilierte Code in ein Skelett von C # -Code -. Gleichwertigen, aber ohne Kommentare, interne Variablennamen usw.

Auf der anderen Seite, Delphi.net gut genug (TM) für dieses Projekt.

Aber es sei denn, Sie eine gute Testsuite haben (ich vermute, wahrscheinlich nicht der Stand der Technik in Delphi gegeben 7) Sie gehen Bugs einzuführen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top