Résoudre l’obsolescence des applications MFC/WTL

Les cycles de l’Obsolescence du Système d’Information passent de 10 ans à 2/4 ans.

Toute entreprise, éditrice de solutions logicielles ou disposants d’applications coeur de métier, est naturellement confrontée à des problématiques d’obsolescence de son Système d’Information et de ses solutions logicielles.

L’accélération de cette obsolescence peut être un vrai frein au business face à une concurrence féroce, de plus en plus organisée et disruptive. Le schéma ci-dessous décrit les différents indicateurs Business, Technique ou RH qui font du Système d’Information, d’un progiciel ou d’une application coeur de métier un système Obsolète.

Dans ce contexte, pour les sociétés victimes d’obsolescence, deux solutions s’imposent à elles :

La première consiste à repartir de zéro, tout réécrire, les spécifications, les règles métier, les IHM et parcours clients avec trois difficultées majeures : la capacité à financer ce bigbang, le risque de perdre des règles métier en cours de route et la capacité à assurer un Time To Market.

La seconde alternative consiste à utiliser des méthodes et outils qui se veulent moins radicaux tout en permettant de continuer à valoriser l’existant. Ces outils que sont le revamping, le portage de code automatique, etc. ne sont pas des solutions miracles mais des solutions de compromis pragmatiques permettant d’obtenir des premiers résultats très rapidement.

Par la suite, nous allons faire un retour d’expérience sur l’une de ces technologies de modernisation pour des logiciels écrits, il y a quelques années, avec les frameworks MFC et WTL.

Résoudre les problèmes d’obsolescence des applications écrites en Microsoft MFC/WTL

Précisons le contexte de ce retour d’expérience : un éditeur de progiciels a réussi, il y a plus de 10 ans, à devenir leader sur son marché au moyen d’un logiciel répondant parfaitement aux besoins métier de ses clients. L’excellence fonctionnelle de leur produit a permis à cette entreprises d’acquérir 70% du marché Français dans leur domaine métier.

Depuis quelques années, leur progiciel, un client lourd écrit avec les Frameworks Microsoft MFC et WTL, se faisait attaquer de toute part par de nouveaux acteurs proposant des solutions plus “Modernes”, avec de nouveaux parcours clients et des interfaces de type “Web 2.0”.

En l’état, il était impossible pour cet éditeur de rester concurrentiel : chaque nouvelle fonctionnalitée ou implémentation de parcours clients était très coûteuse et l’ergonomie et l’IHM en général restait connotées années 90.

Pour cet éditeur, il n’était pas envisageable de réécrire complètement leur progiciel pour des raisons budgétaires (estimation de 7000 h/j de développement non chargés) mais également pour un soucis de réactivité vis à vis de la concurrence.

La solution de compromis qui a été imaginée a été d’utiliser un Wrapper MFC/WTL vers du QT : on substitue au Framework Microsoft MFC/WTL, un Framework équivalent, basé sur Qt. Avec pas (ou peu) de modifications de code existant, QT va permettre de moderniser les IHM du Legacy..

Cette solution présente plusieurs avantages :

  1. – Pas (ou peu) de modifications du code existant : on ne risque pas de perdre de règles métier et pas besoin de réécrire des spécifications.
  2. – Permet de passer l’ensemble de l’application (400 écrans) sous le framework QT :
    1. — Personnalisation des styles des composants et fenêtres possibles (Thèmes QSS), avec un rendu proche des CSS3 et du Web 2.0.
    2. — Permet nativement un portage multi-os de l’application (Linux, Windows, Mac).
    3. — Le code produit au final est beaucoup moins “lourd” et plus simple à maintenir.
  3. – Les deux Frameworks (MFC -ou WTL- et QtMFC) peuvent cohabiter au sein de l’application et permettre ainsi un portage incrémental, faisant ainsi fonctionner l’ancien code avec le nouveau code et les nouveaux parcours clients créés :
    1. — Les développeurs peuvent continuer à utiliser leurs habitudes MFC (même si non recommandé)
    2. — Les nouveaux développements pourront être fait en Qt (le langage nécessite beaucoup moins de lignes de code qu’avec les MFC/WTL). Il est également intéressant de pouvoir utiliser des composants QT évolués “clef en main”.

Le schéma suivant représente un exemple de transformation graphique que l’on peut obtenir sans toucher au code. Les maquettes ont été fournies par un designer Web.

Deux méthodes peuvent cohabiter pour l’intégration de ces nouveaux design :

1/ Soit on utilise les Style Sheets de QT de manière automatique pour le relooking :

Les vues existantes décrites dans des fichiers .RC sont traduites automatiquement dans des vues Qt permettant d’appliquer un QSS et de personnaliser facilement par la suite ces vues via le designer QtDesigner.

2/ Soit Il est possible d’intégrer des Webview (HTML/JS et CSS) qui vont pouvoir appeler le code natif legacy.

Avant : Une fenêtre MFC classique : Widgets peu évolués, fond gris, tree view,…

Résoudre l'obsolescence des applications MFC/WTL

Après : La même fenêtre entièrement basée sur des styles QSS



Enregistrer
Enregistre

Comme dans toutes solutions de compromis, il existe quelques limitations :

Le look des composants externes pour lesquels les sources ne sont pas accessibles (type ActiveX) peuvent être intégrées, mais pas “wrappées”. L’activeX reste fonctionnel mais le look reste “en l’état” ou nécessite une modification plus spécifique du code existant.

En résumé, voici les avantages (et inconvénients) de la solution de Wrapping des classes MFC/WTL :

« + » Possibilité d’intégrer un design de type “Web 2.0”

« + » Possibilité de faire cohabiter le code du Legacy avec des nouveaux parcours client écrits directement en QT

« + » Moins de lignes de code des nouvelles fonctionnalitées écrites en QT pour une maintenance plus facile

« + » Les règles métier du Legacy ne sont pas perdues

« + » Obtention de résultats très rapidement afin d’assurer un Time-To-Market

« + » On ne touche pas au code source du Legacy

« + » Portage Multi-OS natif (Linux, Windows et Mac) grace à QT

« + » On supprime tous les bugs liés au framework MFC/WTL

« – » Les ActiveX ne sont pas “Wrappables” sans les sources

« – » Ne corrige pas “automatiquement” les bugs “métier” existants du Legacy

En conclusion, pour ce retour d’expérience, l’application de l’éditeur est portée en 40 jours (développement + tests unitaires) contre les 7000 jours prévus initialement !

Epilogue.

Tout portage d’une application Legacy reste un projet à part entière. La complexité de l’exercice réside évidemment dans les technologies utilisées mais pas uniquement : les outils et process mis en oeuvre ainsi que l’organisation sont des éléments importants à prendre en compte.

Il n’y a pas de solutions miracles mais il faut garder en tête qu’il existe des alternatives au bigbang et à la réécriture complète de votre legacy (et pas uniquement pour les applications MFC/WTL).

Ces alternatives permettent une transformation en douceur, de continuer à faire fonctionner votre business tout en gagnant du temps afin d’assurer un portage efficace vers une cible technologique moderne, pérenne, industrielle et scalable.

Autres articles

Découvrez les nouvelles fonctionnalités de B4M intégrées à ISIMAN

Découvrez les nouvelles fonctionnalités de B4M intégrées à ISIMAN

Nouvelles fonctionnalités• TEMPLATE PDFLes rapports peuvent être téléchargés en PDF. Il est également possible de définir un template en définissantun en-tête personnalisé ou d’intégrer un logo. • INTÉGRATION DES PROFILSIl est possible de créer, éditer ou supprimer...

Metrixware sera présent au salon Solutions 2024

Metrixware sera présent au salon Solutions 2024

Metrixware sera présent  lors des Salons Solutions qui se tiendront les 9 et 10 octobre 2024 à Paris Porte de Versailles. Cet événement majeur de la gouvernance IT réunit chaque année les experts de la transformation digitale pour aborder les défis actuels et futurs...

Metrixware remercie les visiteurs du SIPEN 2024

Metrixware remercie les visiteurs du SIPEN 2024

Metrixware tient à exprimer ses sincères remerciements à tous les visiteurs qui ont pris le temps de venir nous rencontrer lors du Salon International des Professionnels du Numérique, tenu à Dakar les 27 & 28 juin dernier. Nous sommes ravis d'avoir eu...

SIPEN 2024

SIPEN 2024

Metrixware participe avec Kewël au Salon International des Professionnels de l'Économie Numérique de Dakar (SIPEN) 2024 ! 🚀 Organisé par l'OPTIC (Organisation des Professionnels des TIC), le SIPEN est un événement crucial axé cette année sur l'accélération de la...

Business Case AFD

Business Case AFD

Besoins client   L'Agence Française de Développement (AFD) gère divers risques dans le cadre de ses projets liés à la nature des interventions, aux contextes politiques et économiques , aux aspects environnementaux et sociaux ainsi qu'aux aspects financiers comme...

Business case BUY WAY

Business case BUY WAY

Besoins client   BUY  WAY , une société spécialisée dans le crédit à la consommation, avait identifiée plusieurs défis liés à son infrastructure mainframe. Le besoin principal était de migrer vers une architecture distribuée et ouverte pour simplifier la gestion...

Nouveau Delphi V12 Athens

Nouveau Delphi V12 Athens

Découvrez la nouvelle version de Delphi, la V12 Athens, qui regorge de nouvelles fonctionnalités passionnantes.   VCL modernisé avec MDI retravaillé et interface à onglets pour VCL Amélioration de la modernisation des applications grâce à la prise en charge de la...

Metrixware Systemobjects acquiert TCLog

Metrixware Systemobjects acquiert TCLog

Metrixware Systemobjects renforce sa position avec l’acquisition du fond de commerce “TCLog”, une solution d’agenda éprouvée depuis plus de 20 ans, adoptée notamment par des institutions financières majeures.

Business Case AXA

Business Case AXA

Besoins client   Le service IARD d’AXA, assurances de protection des biens, avait comme projet de moderniser et rendre plus ergonomique l’interface utilisateur de sa plateforme dédiée à l’assurance des 2 roues : l’objectif étant d’offrir une meilleure expérience...