Du thème du magazine à la pratique des projets
Pages de services et techniques pertinentes pour l'article
Lorsqu’on parle en entreprise de Delphi multiplateforme pour Windows, macOS et Linux, il s’agit rarement de « la technique pour la technique ». Le plus souvent, une situation concrète se cache derrière : une application métier héritée fonctionne de façon fiable sur Windows, mais les services métier exigent des clients macOS, les équipes IT veulent intégrer des Linux-Services aux standards serveurs existants, ou une modernisation est prévue sans réécrire l’ensemble des fonctionnalités.
Delphi peut constituer dans ce contexte un pont pragmatique – à condition de considérer le multiplateforme comme un sujet d’exploitation et d’architecture. Les coûts réels ne naissent pas lors du premier build, mais dans la maintenance, le processus de release, les mises à jour de sécurité, l’accès aux données, l’écosystème de pilotes, le packaging et le support. Cet article situe comment planifier le multiplateforme de manière réaliste, quelles décisions techniques se ressentent en exploitation et quels pièges apparaissent typiquement tard dans les projets.
Pourquoi le multiplateforme est rarement « juste une fonctionnalité » dans les entreprises
En pratique, le besoin de multiplateforme naît de trois moteurs typiques :
- Terminaux hétérogènes : Windows est établi, macOS est introduit via la direction, les ventes, le design ou les niveaux de management. Linux apparaît soit comme poste de travail dans des environnements spécialisés, soit comme standard serveur dans le centre de données.
- Standardisation en exploitation : de nombreuses équipes IT cherchent à consolider les services sur Linux (supervision, gestion des paquets, durcissement), même si les clients restent Windows.
- Modernisation sans Big Bang : les applications existantes doivent être migrées pas à pas vers des couches maintenables, souvent parallèlement à des projets bases de données et interfaces.
Il est important de distinguer : le multiplateforme côté client (application de bureau) est un sujet différent du multiplateforme côté backend (Services/REST). Dans un contexte B2B, une approche hybride est souvent pertinente : des clients Windows stables, mais côté serveur des Linux-Services et des API REST pour l’intégration, l’automatisation et les portails web.
Delphi multiplateforme pour Windows, macOS et Linux : ce que cela signifie concrètement
Le multiplateforme dans Delphi n’est pas une solution miracle, mais une boîte à outils. Pour l’IT et l’exploitation, trois niveaux sont déterminants :
- Couche UI : sur Windows existe dans de nombreuses entreprises un écosystème VCL établi (interface classique Windows). Pour de véritables clients multiplateforme, on utilise généralement FireMonkey (FMX), qui permet d’avoir la même interface sur différents systèmes d’exploitation – avec des particularités natives par plateforme.
- Logique métier : le principal levier réside dans une logique commune, proprement encapsulée. Qui sépare la logique métier et l’accès aux données de l’interface utilisateur peut changer de plateforme sans réinventer le produit.
- Exécution et déploiement : chaque plateforme impose des exigences différentes en matière d’installation, de droits, de signature, de mises à jour, de chemins, de certificats et de bibliothèques. C’est précisément ici que se joue la différence entre un multiplateforme « facile » ou « coûteux » au quotidien.
Pour les décideurs, la question centrale n’est donc pas « Delphi peut-il gérer macOS et Linux ? », mais : quelles parties de notre solution doivent réellement être multiplateforme – et comment garantir l’exploitation et la maintenabilité sur des années ?
Architecture : le plus grand multiplicateur de coûts de maintenance
Les projets multiplateformes échouent rarement à cause du compilateur, mais à cause d’un manque de découplage. Dans les applications existantes, tout est souvent mêlé : événements d’UI, accès à la base de données, logique métier, impression, système de fichiers, appels réseau. Cela fonctionne sur « le seul PC Windows », mais devient un chantier permanent dès que vous étendez les plateformes ou externalisez des services.
Modèle en couches plutôt que « le formulaire comme pivot »
Un modèle en couches clair (souvent appelé architecture en couches) est éprouvé :
- Présentation : UI de bureau (VCL ou FMX) ou frontends Web.
- Logique applicative et métier : règles, workflows, droits, validations ; idéalement sans dépendance directe à l’UI ou aux pilotes de base de données.
- Couche d’intégration : raccordement aux ERP/DMS/CRM, interfaces de fichiers, messaging, REST.
- Accès aux données : accès consolidé via des frontières clairement définies repository/service, plutôt que du SQL à chaque coin de code.
Cette séparation n’est pas un exercice académique : elle réduit les cas particuliers liés aux plateformes, facilite les tests, permet des composants côté serveur et rend les migrations de base de données (p. ex. vers PostgreSQL) nettement plus contrôlables.
Logique métier commune : multiplateforme sans double développement
Si vous parlez sérieusement de multiplateforme, la logique métier doit être conçue pour fonctionner aussi bien dans une application de bureau que dans un service. C’est particulièrement pertinent si vous prévoyez d’ajouter ultérieurement un portail client, une interface Web interne ou une intégration REST. En pratique, cela signifie : les décisions métier appartiennent aux services/modules, pas aux événements de clic d’un masque.
Stratégie UI : conserver VCL, utiliser FMX de manière ciblée, compléter par le Web
Beaucoup d’entreprises disposent d’une solide base desktop Windows. Une bascule immédiate vers une nouvelle technologie UI est souvent inutilement risquée. Les stratégies typiques et viables sont :
Stratégie A : le client Windows reste VCL, le backend devient plateforme-neutre
La logique cœur est progressivement extraite de l’application VCL : vers des bibliothèques et des composants côté serveur. Résultat : le client Windows reste stable, tandis que l’intégration, l’automatisation et de nouveaux frontends sont réalisés via des services. Linux intervient alors via l’exploitation serveur (p. ex. REST-serveur ou services d’arrière-plan).
Stratégie B : client multiplateforme avec FMX pour des scénarios définis
FMX a du sens si vous avez réellement besoin du même client sur Windows et macOS, par exemple pour le personnel itinérant, des postes de travail mobiles ou des parcs mixtes. Important : les détails UI (polices, raccourcis clavier, dialogues, sélecteur de fichiers) diffèrent selon la plateforme. Cela doit être pris en compte dans les tests et le support.
Stratégie C : le bureau complété par un portail
Beaucoup d’entreprises ne résolvent pas le « sujet macOS » par un client complet, mais par un portail pour des processus clairement définis : consultation, approbations, statut des commandes, documents. Cela allège les déploiements desktop, réduit l’effort d’installation et est souvent plus rapide à sécuriser, car la couche Web centrale est plus facile à contrôler.
Accès aux données et bases de données : FireDAC comme facteur de stabilité opérationnelle
Dans les architectures multiplateformes, l’accès aux données est souvent le domaine où les dettes techniques historiques deviennent les plus coûteuses. Les systèmes plus anciens Delphi dépendent souvent de la Borland Database Engine (BDE) ou de pilotes qui ne fonctionnent correctement que sur Windows. Pour l’exploitation, cela représente un risque : disponibilité des pilotes, questions 32/64 bits, Unicode, correctifs de sécurité et supervision sont difficiles à maîtriser.
Stratégie des pilotes : uniforme, documentée, testable
Remplacement de BDE par une liaison native est dans Delphi une couche d’accès aux données répandue qui adresse de manière uniforme différentes bases de données. Sur le plan opérationnel, l’important n’est pas tant « à quel point c’est élégant » dans le code, mais :
- Quelles bibliothèques clientes sont nécessaires ? (p. ex. client PostgreSQL, MariaDB ou Oracle)
- Comment sont-elles distribuées ? Inclus dans l’installateur, gérées de façon centralisée, image de conteneur
- Comment les paramètres de connexion sont-ils gérés de manière sécurisée ? (Secrets, configuration protégée, pas de mots de passe en clair dans des fichiers)
- Quelle est la stabilité du comportement en cas de perturbations réseau ? Tentatives de reprise, timeouts, pool de connexions
Migrations de bases de données : le multiplateforme comme opportunité d’établir des interfaces nettes
Lorsqu’on étend de toute façon des plateformes, c’est souvent le bon moment pour consolider l’accès aux données. Une migration (p. ex. depuis d’anciens formats de fichiers ou des bases de données embarquées vers des systèmes SQL comme PostgreSQL ou SQL Server) devrait être conduite comme un projet avec des phases claires : modèle de données, outils de migration, exploitation en parallèle, recette, plan de rollback. Le multiplateforme accroît la pression ici, car les pilotes « Windows-only » ou les chemins de fichiers sur macOS/Linux ne fonctionnent plus.
Services et interfaces : REST comme pont entre les plateformes
Dans des paysages hétérogènes, une approche REST (REST = interface basée sur HTTP avec des ressources et méthodes claires) est souvent la voie la plus pragmatique pour connecter les plateformes. Pour l’exploitation cela signifie : authentification centrale, protocoles standardisés, meilleure observabilité (logs/métriques) et découplage net entre le client et la base de données.
Serveur Delphi REST vs accès direct à la base de données depuis le client
Beaucoup de solutions desktop existantes utilisent un accès direct à la base de données depuis le client. Dans des réseaux purement Windows, cela a longtemps été courant. Avec le multiplateforme et les exigences de sécurité modernes, cela devient plus difficile :
- Segmentation réseau : les bases de données ne se trouvent plus dans le même réseau que les clients ; les pare-feux deviennent plus stricts.
- VPN/Zero Trust : les connexions directes à la base de données à travers des réseaux changeants sont sujettes à des erreurs.
- Audit et droits : il est difficile de représenter proprement les droits métier dans l’application si chaque client exécute directement du SQL.
Un REST-serveur (ou une couche de service) peut centraliser ces aspects : authentification, autorisations, journalisation, limitation de débit, gestion des versions. Pour les administrateurs, c’est souvent plus facile à exploiter que « cent clients avec accès à la base de données ».
Authentification et SSO : SAML 2.0, OAuth, Token
Dans l’environnement B2B, le Single Sign-on (SSO) est souvent obligatoire. SAML 2.0 (un standard pour la fédération d’identités entre Identity Provider et application) ou OAuth/OpenID Connect (procédés basés sur des tokens) sont des éléments typiques. L’essentiel n’est pas le mot à la mode, mais la question opérationnelle : où résident les identités, comment se déroule le provisioning, comment les tokens sont-ils sécurisés, et comment les accès sont-ils consignés de manière révisionnable ?
Déploiement et packaging : l’effort sous-estimé
Delphi Multiplattform pour Windows, macOS et Linux signifie aussi : trois univers pour le packaging. De nombreux coûts n’apparaissent qu’après la première mise en production, lorsque des mises à jour doivent être déployées régulièrement.
Windows : Installateurs, droits, services
Sur Windows sont courants les processus MSI/Installer, les stratégies de groupe, UAC (User Account Control) et le code-signing. Dès qu’un Windows- et Linux-Services est impliqué, d’autres sujets apparaissent : compte de service, droits sur le système de fichiers et le réseau, ordre de démarrage, options de recovery et rotation des logs. Pour la maintenance, il est important que le service soit clairement versionné et puisse être mis à jour sans interventions manuelles.
macOS : notarisation, signature et Gatekeeper
macOS exige en général, pour les applications distribuées, la signature et, selon le canal de distribution, une notarisation (processus de vérification permettant au Gatekeeper d’exécuter l’application). Pour les entreprises, ce n’est pas tant un « sujet Apple » qu’un problème de processus : qui possède les certificats, comment s’organise la build-pipeline, comment les releases sont-elles produites de manière reproductible ? Sans cette discipline, chaque hotfix devient une action ponctuelle.
Linux : paquets, dépendances, systemd
Sur Linux sont pertinents les systemd-units (définitions indiquant comment les services démarrent et sont supervisés), les formats de paquets (p. ex. DEB/RPM) ou les déploiements basés sur des conteneurs. Pour les administrateurs comptent : configuration claire, chemins définis, logs utiles (p. ex. via journald), health-checks et une voie de mise à jour compatible avec la politique de distribution interne.
CI/CD et processus de release : la multiplateforme exige des builds reproductibles
Dès qu’il y a trois plateformes cibles, le « build à la main » devient un risque. CI/CD (Continuous Integration/Continuous Delivery) n’implique pas nécessairement « tout en production de façon entièrement automatique », mais avant tout : artefacts reproductibles, versions traçables et un processus standardisé de test et de validation.
En pratique, vous devriez au minimum définir :
- Matrice de build : quelles plateformes, quelles variantes (Debug/Release), quels pilotes de base de données, quels modules optionnels ?
- Versionnement : numérotation de version homogène entre client et serveur, plus états de migration de la base de données.
- Signature : où se fait la signature, comment les clés sont protégées (p. ex. HSM ou agents de build sécurisés) ?
- Smoke tests : vérifications fonctionnelles minimales par plateforme, susceptibles de bloquer chaque candidat à la release.
Pour les décideurs, c’est un sujet de gouvernance : sans discipline de release, la multiplateforme coûte plus cher sur la durée, car les scénarios d’erreur sont plus difficiles à reproduire et les hotfixes peuvent avoir des effets secondaires différents selon les plateformes.
Monitoring, logging et analyse des erreurs : ce qui compte en exploitation
Au quotidien, les équipes IT ont besoin de réponses rapides : « Pourquoi le processus s’est‑il bloqué ? », « S’agit‑il d’un problème côté client ou côté back‑end ? », « Depuis quand cela se produit‑il ? » La multiplateforme augmente la variance, il faut donc améliorer l’observabilité.
Stratégie de journalisation unifiée pour client et serveur
Une stratégie de journalisation à niveaux a fait ses preuves :
- Journaux client : journaux locaux avec rotation, lien de corrélation unique (p. ex. Request‑ID), conforme à la protection des données.
- Journaux serveur : stockage centralisé, entrées structurées (horodatage fiable, lisibilité machine), séparation des journaux d’audit et de debug.
- Métriques : temps de réponse, taux d’erreur, longueurs des files d’attente, utilisation du pool de bases de données.
Surtout dans les architectures REST, une Request‑ID (identifiant unique par requête, transmis à travers toutes les composantes) vaut de l’or, car elle permet de circonscrire les incidents de support en minutes plutôt qu’en heures.
Gestion des crashs et analyse des erreurs symbolisées
Sur les plateformes desktop, les dumps de crash et les traces de pile doivent être traités de manière à être exploitables par le support sans exposer de données sensibles. Cela relève de l’organisation : quelles données peuvent être transmises ? Comment recueillir le consentement ? Comment sécuriser les symboles de débogage et associer les versions ? Sans réponses à ces questions, le support multiplateforme reste souvent un tâtonnement.
Sécurité et conformité : les plateformes impliquent des surfaces d’attaque différentes
Avec Windows, macOS et Linux, le risque n’augmente pas automatiquement, mais la surface d’attaque devient plus diversifiée. Points typiques souvent abordés trop tard dans les projets :
- Gestion des certificats : certificats TLS pour les serveurs, certificats client, dates d’expiration, renouvellement automatisé.
- Secrets : mots de passe de base de données, clés d’API, clés de signature – pas en clair dans les configurations ni dans les scripts d’installation.
- Modèle de droits : principe de moindre privilège pour les services, séparation nette des fonctions administratives et utilisateur.
- Capacité de mise à jour : les correctifs de sécurité doivent pouvoir être déployés rapidement ; cela dépend directement du packaging et du processus de release.
Dans les entreprises soumises à des exigences d’audit, il est particulièrement pertinent de définir tôt une courte checklist de sécurité par plateforme et de l’intégrer à la procédure d’acceptation.
Pièges typiques des projets multiplateformes
Certains problèmes réapparaissent régulièrement – pas parce que les équipes « travaillent mal », mais parce qu’ils étaient invisibles dans des historiques uniquement Windows :
Système de fichiers et chemins : petit détail, gros impact
Des conventions de chemins différentes, la sensibilité à la casse, les répertoires utilisateur et les permissions entraînent des erreurs lors d’exportations, d’insertions de pièces jointes, de fichiers temporaires ou de caches. Un concept d’abstraction cohérent aide ici : services de chemin centralisés, répertoires applicatifs définis, pas d’emplacements codés en dur.
Impression, PDF et intégration Office
Les workflows d’impression et de gestion documentaire sont souvent critiques dans les processus métier. Windows dispose de chemins d’impression établis, macOS et Linux se comportent différemment. Si la génération de PDF, les signatures ou les émissions de pièces justificatives sont pertinentes, ces fonctions doivent être testées tôt sur toutes les plateformes cibles – pas seulement juste avant le déploiement.
Unicode et jeux de caractères
Au plus tard lorsqu’il y a des plateformes mixtes, des interfaces et des bases de données, Unicode (un standard d’encodage pour les caractères internationaux) devient indispensable. Les anciens stocks avec un historique « ANSI » génèrent autrement des erreurs difficiles à comprendre dans la recherche, le tri, les exportations CSV ou les interfaces. Une stratégie Unicode couvre l’UI, les colonnes de base de données, les interfaces et les jeux de données de test.
32/64-Bit und Bibliotheksabhängigkeiten
Un classique : un pilote ou une bibliothèque tierce n’est disponible que pour une seule architecture. Pour l’exploitation, cela signifie : liste claire des dépendances, documentation des versions, vérification des licences et de la capacité de mise à jour. Une solution multiplateforme n’est stable qu’au niveau de sa dépendance la plus faible.
Entscheidungshilfe: Wann lohnt sich Delphi Multiplattform wirklich?
Un regard pragmatique sur les efforts et les bénéfices aide à recentrer les discussions. Une stratégie multiplateforme est généralement rentable lorsque :
- le noyau métier est stable à long terme et la réutilisation s’amortit sur plusieurs années,
- il existe de véritables raisons organisationnelles pour macOS-Clients (pas seulement « ce serait bien »),
- Linux est déjà standard dans le backend et des services/REST sont prévus,
- l’application doit être intégrée dans un réseau d’intégration composé d’ERP/DMS/CRM,
- un processus de release bien défini puisse être mis en place (build, signature, tests).
La multiplateforme est moins pertinente lorsque l’application dépend fortement de composants spécifiques à Windows (par ex. automatisation Office poussée, pilotes spécifiques, intégrations basées sur COM) et que ces fonctionnalités ne peuvent pas être clairement encapsulées. Dans ce cas, une stratégie mixte est souvent plus réaliste : Windows-Client pour les cas spéciaux, Portal/REST pour les processus indépendants de la plateforme.
Modernisierungspfad: Multiplattform ohne kompletten Neustart
Pour de nombreuses entreprises, le point le plus important est le suivant : multiplateforme ne signifie pas forcément tout réécrire. Un parcours solide ressemble souvent à ceci :
- Analyse de l’existant et définition des interfaces : quels modules sont stables sur le plan fonctionnel, lesquels sont proches de l’UI ou de la base de données, où sont les principaux risques ?
- Consolider l’accès aux données : p. ex. BDE-remplacement, BDE-Ablosung mit nativer Anbindung, stratégie unifiée de connexion et de gestion des transactions.
- Établir une couche de service : REST-API pour les processus centraux, remplacement progressif de l’accès direct à la base de données.
- Prioriser les plateformes : stabiliser d’abord le backend sur Linux, puis macOS-Client pour des groupes d’utilisateurs définis, au lieu de tout faire en même temps.
- Professionnaliser le Packaging/CI : builds et mises à jour reproductibles comme partie intégrante du projet.
Ce parcours convient particulièrement aux logiciels d’entreprise sur mesure ayant de longs cycles de vie, car il protège la logique métier et réduit de manière contrôlée les risques techniques.
Fazit: Multiplattform ist eine Betriebsentscheidung – nicht nur eine Entwicklerentscheidung
Delphi multiplateforme pour Windows, macOS et Linux peut être pour les entreprises une voie très pragmatique pour faire évoluer techniquement des processus existants sans perdre le noyau fonctionnel. Il est crucial d’envisager la multiplateforme comme un package global : architecture à couches clairement définies, accès aux données consolidé, interfaces orientées services, builds reproductibles, packaging soigné et une stratégie de logging/monitoring qui permet de résoudre rapidement les cas de support.
Une fois ces bases établies, l’approche multiplateforme cesse d’être un projet sans fin et devient une extension maîtrisable de votre solution d’entreprise numérique – avec des coûts d’exploitation réalistes et une feuille de route qui relie migration et évolution.
Si vous souhaitez évaluer de manière structurée votre situation de départ (état des lieux, plateformes cibles, base de données, interfaces et modèle d’exploitation) : contactez-nous pour un entretien technique initial.
Dans le contexte métier, la Delphi modernisation joue également un rôle important lorsque les intégrations, les flux de données et le développement doivent s’articuler de manière cohérente.
Discuter d’un projet ou d’une opération de modernisation avec Net-Base.
Étape suivante
Lorsque le sujet devient un projet réel, l'architecture, l'existant et l'exploitation doivent être examinés ensemble dès le départ.
Nous n'intervenons pas seulement sur des questions ponctuelles, mais aussi lorsque des fragments de code source, des problématiques liées aux systèmes legacy ou des concepts de portail doivent se transformer en un projet d'entreprise robuste.
- L'état des lieux, l'état cible et les risques techniques sont évalués conjointement.
- REST, l’accès aux données, les portails et le déploiement ne sont pas reportés à des phases ultérieures.
- Vous identifiez tôt quelle voie est viable économiquement et opérationnellement.