Modernize Studio
Langue: FR
Nous écrire

Vos applications Delphi, migrées vers le web

Delphi a été un choix courant pour les logiciels de gestion des années 1990 et 2000, et beaucoup de ces programmes servent encore tous les jours, souvent avec des tables Paradox ou dBase lues via le BDE. Nous les migrons vers des applications web sur une base SQL, avec les mêmes données et les mêmes règles, pour que vous n'ayez plus besoin de postes configurés au détail près pour les faire tourner.

Pourquoi maintenant

Embarcadero, qui édite Delphi aujourd'hui, a déprécié le Borland Database Engine. Sa documentation indique que le BDE ne sera plus amélioré, qu'il ne prendra jamais en charge Unicode et qu'il ne doit pas servir à de nouveaux développements, et elle conseille de passer à FireDAC. La plupart des anciens programmes Delphi lisent et écrivent pourtant encore leurs tables Paradox ou dBase par son intermédiaire.

Le BDE a été conçu pour Windows 32 bits et pour le partage de fichiers sur un réseau local. Des tables Paradox sur un lecteur partagé dépendent de fichiers de verrouillage et de paramètres BDE qui doivent être identiques sur chaque poste, et quand un poste est mal réglé, tables et index peuvent être endommagés. Chaque nouveau poste, et chaque passage à une nouvelle version de Windows, est une installation de plus à configurer à la main.

  1. Windows 10Fin du support Microsoft

Ce que nous migrons

Le programme et les fichiers de données dont il dépend, quel que soit leur état.

  • Fiches et contrôles orientés données

    Fiches issues des fichiers .dfm avec TDBGrid, TDBEdit, TDBLookupComboBox et présentations maître-détail. Elles deviennent des pages web avec les mêmes champs et le même enchaînement de travail.

  • Données Paradox, dBase et InterBase

    Tables lues via le BDE, ou bases comme InterBase, Firebird, SQL Server et Oracle. Nous transférons les données vers SQL Server ou MySQL en conservant clés, index et relations.

  • Modules de données et logique métier

    Code des unités TDataModule, des événements de datasets comme BeforePost et OnCalcFields, et des champs calculés ou de référence. Nous regroupons ces règles dans des services côté serveur.

  • États

    Mises en page QuickReport, ReportBuilder, Rave Reports ou FastReport, y compris celles qui contiennent du code dans leurs événements. Elles deviennent des documents PDF au contenu identique.

  • Composants tiers

    Grilles, éditeurs et utilitaires de bibliothèques comme DevExpress, TMS, InfoPower ou RxLib, souvent liés à une seule version de Delphi. Nous vérifions quelles fonctions le programme utilise réellement.

  • Imports, exports et tâches planifiées

    Échanges de fichiers texte et CSV avec d'autres systèmes, exports pour l'expert-comptable, programmes lancés par le Planificateur de tâches Windows. Ils deviennent des tâches planifiées sur le serveur.

À quoi ressemble la version web

Exemple illustratif, données fictives

Un programme de gestion de stock tel qu'il pourrait se présenter en Delphi sous Windows XP, puis les mêmes données dans une application web.

Faites glisser la poignée, ou utilisez les flèches du clavier.

Ce que devient chaque élément

Dans Delphi: Fiches (.dfm) et unités (.pas)
Dans l'application web: Pages web, avec la logique sur le serveur
Dans Delphi: Tables Paradox ou dBase via le BDE
Dans l'application web: SQL Server ou MySQL, avec clés et relations
Dans Delphi: Champs calculés et de référence
Dans l'application web: Calculs et jointures dans la base ou les services
Dans Delphi: Alias et paramètres BDE sur chaque poste
Dans l'application web: Une seule connexion, configurée sur le serveur
Dans Delphi: Mises en page QuickReport ou FastReport
Dans l'application web: Documents PDF produits par le serveur
Dans Delphi: Un lecteur réseau partagé par tous
Dans l'application web: Accès simultanés gérés par la base de données

Comment se déroule la migration

  1. Analyse sous 48 heures

    Vous nous envoyez le programme avec son dossier de données (fichiers Paradox ou dBase, ou une sauvegarde de la base), ainsi que le code source (.dpr, .pas, .dfm) si vous l'avez. Sous 48 heures, nous vous répondons par un rapport écrit : ce que fait le programme aujourd'hui, où se situent les risques, comment s'organiserait la version web, un prix ferme pour un module pilote et une estimation pour le reste. L'analyse est gratuite et ne vous engage à rien.

  2. Module pilote

    Nous réalisons une partie de l'application sur une copie de vos données réelles, en général celle que vos équipes utilisent le plus. Elles s'en servent au quotidien avant que vous décidiez de la suite.

  3. Tests automatisés ancien contre nouveau

    Nous faisons passer les mêmes enregistrements par le programme Delphi et par la nouvelle application, et comparons niveaux de stock, totaux et documents imprimés. Chaque règle identifiée fait l'objet d'un test automatisé qui fournit les mêmes entrées à l'ancien programme et à la nouvelle application, puis vérifie que les résultats concordent. Vous recevez les résultats des tests.

  4. 30 jours en parallèle

    Une fois l'application complète livrée, le programme Delphi reste en service à ses côtés pendant 30 jours. Toute différence apparaît tant que l'ancien programme est encore là, et nous la corrigeons dans le cadre du prix convenu.

Les pièges habituels, et comment nous les traitons

  1. Le comportement du BDE et de Paradox

    Les tables Paradox reposent sur des fichiers de verrouillage, sur un fichier de contrôle réseau partagé (PDOXUSRS.NET) et sur des paramètres BDE comme LOCAL SHARE qui doivent être identiques sur chaque poste. Les index endommagés et les erreurs « Table is busy » sont fréquents. Avant la migration, nous réparons ce qui peut l'être et vous signalons les enregistrements illisibles.

  2. Encodage des caractères

    Le BDE stocke le texte dans une page de codes définie par le pilote de langue de la table, alors que Delphi 2009 et les versions suivantes utilisent des chaînes Unicode. C'est sur les lettres accentuées et les symboles qu'une migration se trompe le plus souvent : nous vérifions l'encodage de chaque table et comparons avec vous des échantillons de texte converti.

  3. Logique cachée dans les événements des datasets

    Les règles placées dans BeforePost, OnValidate ou OnCalcFields s'exécutent sans bruit à chaque enregistrement ou affichage, et passent facilement inaperçues si l'on ne regarde que les fiches. Nous recherchons chaque gestionnaire d'événement dans le code et listons les règles qu'il applique.

  4. Champs calculés et de référence

    Des champs qui existent seulement dans le programme, pas dans les tables, apparaissent à l'écran et dans les états comme s'il s'agissait de données enregistrées. Nous les reproduisons sous forme de valeurs calculées et les vérifions par rapport aux originaux.

  5. Composants sans code source

    Certaines bibliothèques tierces ont été achetées sous forme d'unités compilées pour une seule version de Delphi. Si le programme s'en sert pour un calcul et pas seulement pour l'affichage, nous reconstituons son comportement à partir des résultats et le confirmons par les tests de comparaison.

  6. Formats de dates et de nombres

    Les champs date de Paradox et de dBase, les années à deux chiffres saisies il y a longtemps et les séparateurs décimaux qui dépendent des paramètres régionaux de Windows demandent un traitement explicite lors du passage à une base SQL. Nous listons les anomalies relevées pendant l'import et les résolvons avec vous.

Prix et paiement

Analyse

Gratuite

écrite, sous 48 heures

Module pilote

1 000–1 500 €

en général, réglé 50 % au démarrage et 50 % à la validation

L'analyse est gratuite. Si vous décidez de ne pas donner suite, vous gardez le rapport et ne devez rien.

Les prix sont fermes et convenus par écrit avant le démarrage. Si le périmètre change, nous vous envoyons un nouveau devis écrit et attendons votre accord avant de réaliser le travail supplémentaire.

Pour une migration complète, nous visons un prix inférieur de 40 à 60 % au devis habituel d'une agence. C'est possible parce que nous sommes un petit studio, sans locaux à payer ni équipe commerciale.

Prix hors TVA.

Essayer l'estimateur de prix

Une vraie migration, vérifiée par des tests

Northwind est la base d'exemple que Microsoft fournissait avec Access, pas l'un de nos clients. Nous en avons migré une copie publique vers SQLite et PostgreSQL, comparé chaque table et chaque requête à l'original par des tests automatisés, et construit une application web qui fonctionne sur le résultat. L'étude de cas donne les chiffres, le rapport d'équivalence détaille chaque contrôle.

Northwind est une base Access, mais nous suivons la même méthode pour Delphi : migrer, tester face à l'original, faire tourner les deux en parallèle.

Rapport d'équivalence (en anglais) · Aperçu cliquable et analyse d'exemple (démo)

Questions fréquentes

Notre programme Delphi utilise des tables Paradox sur un lecteur réseau. Pouvez-vous migrer les données ?

Oui. Nous lisons directement les fichiers Paradox ou dBase, les convertissons vers SQL Server ou MySQL et comparons nombres d'enregistrements et totaux avant et après. Les enregistrements endommagés vous sont signalés, pas supprimés en silence.

Ne pourrions-nous pas simplement passer à une version récente de Delphi ?

C'est une option, et pour certains programmes c'est la plus raisonnable : l'application reste un programme Windows, FireDAC remplace le BDE et le code est remis à niveau. Si vous avez besoin d'un accès depuis n'importe quel navigateur, sans rien installer sur les postes, une application web convient mieux. Quand les deux ont du sens, l'analyse les compare.

Nous n'avons pas le code source. Est-ce un problème ?

Pas forcément. Nous pouvons travailler à partir du programme en service, de ses fichiers de données et d'enregistrements de son utilisation. Avec le code source, l'analyse est plus précise, et là où des informations manquent, nous le disons.

Avec quelles versions de Delphi travaillez-vous ?

Avec des programmes écrits sous n'importe quelle version, des premières versions Borland des années 1990 jusqu'aux versions actuelles d'Embarcadero. La version compte surtout pour la gestion des chaînes et les composants disponibles, et nous l'indiquons dans l'analyse.

L'application web peut-elle continuer à utiliser notre base Firebird ou InterBase ?

Oui, si d'autres programmes en dépendent encore. L'application web se connecte alors à la même base, et un changement de base peut intervenir plus tard, ou jamais.

Que se passe-t-il pendant les 30 jours de fonctionnement en parallèle ?

Vos équipes gardent le programme Delphi sous la main tout en travaillant dans la nouvelle application, pour comparer les résultats sur des cas réels. Toute différence constatée pendant cette période est corrigée dans le cadre du prix convenu.

Contact

Par e‑mail :

riccardo@modernizestudio.com
Écrire un e‑mail

Envoyez-nous le programme et son dossier de données, avec des données fictives si vous préférez, ou une courte description de ce qu'il fait. Nous vous répondons sous un jour ouvré.

Nous travaillons depuis l'Italie.

Nous écrire