Quels outils existent pour convertir une application Delphi 7 en C# et le framework .Net ?[fermé]

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

  •  09-06-2019
  •  | 
  •  

Question

Je maintiens une ancienne application PC uniquement écrite en Delphi 7.Bien que Delphi m'ait très bien servi dans le passé, je ne l'utilise désormais que pour cette seule application et je constate que mes compétences avec le langage diminuent.Sa syntaxe est trop différente de celle de mes langages de « travail quotidien » Java/Ruby, il me faut donc plus de temps pour me lancer dans l'écriture de nouveau code, et en plus, il est si vieux que je n'en ai pas utilisé beaucoup. interfacevoilà donc le code n'est pas géré ce qui me semble ancien maintenant !

Beaucoup de mes utilisateurs migrent vers Vista qui peut exécuter l'application en mode de compatibilité ou avoir des problèmes de GPF selon la configuration de leur PC par leur service informatique, je dois donc faire une certaine maintenance sur l'application.Je me demande si je devrais passer à une pile plus familière.

Existe-t-il un outil automatisé qui effectuera les démarches de conversion de la base de code en C#, me laissant me concentrer sur la conversion des composants non standard ?J'utilise un composant de base de données intégré appelé Base de données absolue qui est compatible BDE et utilise le SQL standard, ainsi qu'un composant de navigateur HTML Delphi natif qui peut être remplacé par quelque chose du monde Microsoft.

Quelle est la qualité de ces outils de conversion ?

Était-ce utile?

La solution

Je ne connais aucun outil automatisé permettant d'effectuer cette conversion.Personnellement, je vous suggère de vous en tenir à Delphi, peut-être simplement de passer à une nouvelle version.J'ai vu quelques codes DOM qui tentent de convertir Delphi en C#, mais cela ne résout pas le problème de la bibliothèque.

CodeGear (anciennement Borland) dispose d'un outil pour passer de C# à Delphi ça marche bien.Je suppose que les outils qui vont dans l'autre sens fonctionneront de la même manière (nécessitant beaucoup d'édition).Voici un outil suédois qui fonctionne sur le même principe CodeDOM pour passer de Delphi vers C# (et un certain nombre d'autres langues).Il y en a d'autres, je ne les trouve pas pour le moment.

Une autre option serait de mettre à niveau vers une version plus récente de Delphi pour .NET et de porter votre code vers .NET de cette façon.Une fois que vous l'avez fait fonctionner dans Delphi pour .NET (ce qui sera assez simple, sauf pour la base de données intégrée, à moins qu'elle n'ait une version .NET), vous pouvez utiliser Réflecteur .NET et Désassembleur de fichiers inversez l'IL en C#.Vous utiliserez toujours la VCL, mais vous pouvez utiliser C# au lieu d'Object Pascal.

Une autre solution similaire serait de le porter vers Oxygène par RemObjects.Je crois qu'ils ont un chemin de migration Delphi Win32 vers WinForms.Utilisez ensuite Réflecteur .NET et Désassembleur de fichiers inversez l'IL en C#.

Bref, pas de réponses faciles.La migration des langues est plus facile que la migration des bibliothèques.Cela dépend en grande partie des composants tiers que vous avez utilisés (au-delà d'AbsoluteDatabase) et si vous avez effectué des appels d'API Windows directement dans votre application.

Une autre option complètement différente serait de rechercher une équipe offshore pour maintenir l’application.Ils peuvent probablement le faire à moindre coût.Vous pourriez trouver quelqu'un dans votre pays, mais cela vous coûterait sans aucun doute plus cher (même si avec la chute du dollar et la faiblesse du marché du travail, on ne sait jamais)...)

Bonne chance!

Autres conseils

Il y a eu un rapport scientifique sur une transformation réussie d'un projet Delphi de 1,5 million de lignes en C# par John Brant.Il a écrit un analyseur Delphi, un générateur C# et de nombreuses règles de transformation sur l'AST.L'extension progressive de l'ensemble des règles, la réalisation d'un build quotidien, de nombreux tests unitaires et quelques réécritures de parties Delphi difficiles lui ont permis, avec une équipe de 4 personnes, parmi lesquelles certains des développeurs d'origine, possédant une connaissance approfondie de Delphi et C#, de migrer le logiciel en 18 mois.John Brant étant le développeur original du navigateur de refactoring et du kit de construction du compilateur SmaCC, il est peu probable que vous puissiez aller aussi vite

Beaucoup de mes utilisateurs se déplacent vers Vista qui peuvent exécuter l'application en mode compatibilité ou peuvent avoir des problèmes GPF en fonction de la configuration de leur PC par leur service informatique, je dois donc faire un peu de maintenance sur l'application.Je me demande si je devrais sauter à une pile plus familière.

À moins que vous ne fassiez quelque chose de non standard, les applications D7 devraient fonctionner correctement sous Vista.

Quant à la conversion en C#, je pense que la plupart des outils de conversion seraient une perte de temps.Une meilleure approche pourrait consister à réécrire l’application à partir de zéro.

Il n'y a pas de réponse facile, mais gardez à l'esprit que la variante Delphi.net du langage cible le runtime .net et que différents langages sur .net peuvent interagir étroitement.

Vous pouvez essayer de le compiler dans Delphi.Net, en le prenant en compte dans différents assemblys, puis en convertissant les assemblys manuellement un par un.Reflector pourrait aider à faire de la rétro-ingénierie du code compilé dans un squelette de code C# - équivalent mais sans commentaires, noms de variables internes, etc.

D'un autre côté, Delphi.net pourrait suffire (TM) pour ce projet.

Mais à moins que vous n'ayez une bonne suite de tests (je suppose que ce n'est probablement pas le cas, étant donné l'état de l'art de Delphi 7), vous allez introduire des bugs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top