WinDev à Xojo - Expérience d'Utilisateur

L’objectif de ce fil est d’aider les développeurs WinDev à migrer vers Xojo, basé sur mon expérience.

J’ai vu la rediffusion du webinaire de Geoff Perlman sur Xojo x Windev.
Certaines questions concernaient des fonctionnalités spécifiques à WinDev/WebDev pour lesquelles Geoff n’avait pas les références.

Je développe des applications (utilitaires gratuits à l’attention de mes clients) en WinDev depuis la version 17 (sortie en 2011 :astonished_face:) et j’ai souvent navigué entre WinDev et Xojo (RealBasic - première licence achetée en 2008 :old_man:t2:) car certaines fonctionnalités n’étaient pas disponibles via les plugins (surtout dans la gestion d’images), et le langage EST est multiplateforme. L’OS Linux deviendra une nécessité pour la souveraineté informatique.

Je visualise les applications comme des LEGO : des briques de code à assembler. J’ai utilisé de nombreux plugins pour faciliter le développement, habituellement en exploitant des API natives ou des logiciels tiers.

Il est plus simple d’assembler ces fonctionnalités via des plugins (notamment dans le cadre d’applications multiplateforme).

La lecture de code source est le meilleur moyen d’apprendre à utiliser et comprendre le logiciel. N’hésitez pas à ouvrir les projets proposés en exemple dans les différents plugins ou dans l’IDE.

Plugins utilisés pour faciliter le développement

  • MBS Complete : Ensemble généraliste couvrant 80 % des fonctionnalités recherchées dans Xojo.
  • MBS DynaPDF : Librairie pour générer et modifier des fichiers PDF, équivalent à PDFFichier sous WinDev.
  • Einhugur : Plugin proposant des contrôles avancés (TreeView, CalendarView, PictureButton). Le plugin StyleGrid aurait pu être une alternative à ListBox pour obtenir un Champ Table.
  • Valentina DB ADK : Alternative à HFSQL permettant d’utiliser le même fichier comme base de données locale ou Client/Serveur.
  • Valentina Report ADK : Alternative au générateur d’états, permettant aux utilisateurs finaux de générer leurs propres rapports.
  • ChilkatSoft : Librairie regroupant des fonctionnalités pour la gestion des e-mails, requêtes HTTP, connexions FTP/SFTP/SSH, ainsi que des fonctions de cache et de gestion de chaînes. J’utilise ChilkatSoft avec mon module personnel Mnemosyne (gestionnaire de préférences local, équivalent à ParamInit, etc.).
  • GraffitiSuite : Je ne la recommande plus car le code source n’est plus accessible pour l’analyse et le débogage depuis la version 65. Les contrôles Desktop basés sur HTML rendent les applications lentes et génèrent des fichiers indésirables. Néanmoins, elle reste une option alternative.


Remarquez la disparition de 2 notions importantes : Encryption & No Crazy Requirement

Je recommande l’achat de l’OmegaBundle, dont mon attente chaque année de l’annonce est similaire à celle que j’avais du TDF de PCSoft (habitant proche de Montpellier, je m’inscrivais chaque année à la première date :grin:).

Attention, l’achat de l’OmegaBundle est restreint à une courte période de l’année. Elle va bientôt terminer :sweat_smile:

Alternatives aux fonctionnalités de WinDev

Attention, Xojo n’est pas WinDev, de nombreux automatismes seront à changer pour une utilisation fluide dans l’IDE

Vous devrez aussi vous familiariser avec la langue anglaise

  • Gestion de fichiers Excel : Génération de fichiers Word ou Excel via le plugin Einhugur.
  • Éditeur d’États et Sous-États : Valentina Report est l’alternative la plus proche (disponible dans OmegaBundle ou ValentinaDB).
  • Base de données C/S et Classique : ValentinaDB gère les besoins Client/Serveur et monoposte simultanément de manière transparente.
    La version VDN permet la diffusion sans royalties du serveur de base de données comme le proposait HFSQL.
  • Champs Bureautiques : Aucune alternative directe pour les champs puissants affichant des fichiers Word, Excel ou PDF. DynaPDF permet de créer facilement un lecteur PDF multiplateforme.
  • Lecteur PDF : Intégration du lecteur SumatraPDF est possible sous Windows via une classe personnalisée dans Xojo.
  • Fenêtres Internes : Remplacer les fenêtres internes par le champ Container. Pour remplacer la ZoneRépétée, j’ai développé un module spécifique (SDELooper), mais le champ Grid de Xojo suffit.
  • Fonctionnalités EMail : Je recommande la classe Chilkat Email pour gérer les envois (IMAP, SMTP, SSL).
  • Fonctions Toast/Affiche : L’alternative se trouve dans les plugins d’Einhugur avec NotificationProvider.

Réponses aux questions du Webinaire spécifiques à WinDev

  • Code Source : Le code source de WinDev est basé sur des fichiers binaires, impossibles à analyser par un lecteur externe. La seule alternative est la conversion en fichiers texte via une version récente de WinDev (depuis la version 25 - format GIT) avant toute opération.
  • Groupware Utilisateur : Cette fonctionnalité puissante n’a pas d’alternative directe en Xojo. Elle doit être recréée ou gérée directement dans le code.
  • Connexions SFTP : Utiliser des plugins comme Chilkat (axé réseau/sécurité) ou MBS (via CURLMBS).
  • Import/Export Excel : Facile à mettre en place avec les plugins Einhugur (ExcelReader Component et ExcelWriter Plugin).

Exemple Concret : IconStock

J’ai recréé une application sous Xojo, important des cliparts achetés pour obtenir un rendu visuel amélioré. Le développement a pris une semaine au lieu de 2 jours en WinDev (développement en mode DirtyCode).

La version Xojo est désormais plus complète que la version WinDev, gérant les images externes (j’ai utilisé l’application en cours de développement pour générer les images de l’application elle-même), avec la possibilité de remplacer une couleur dans l’image (et bientôt de remplacer carrément les couleurs SVG avant export) et avec une gestion de la pagination rendant l’affichage plus fluide.

Les icones proviennent de IconStock dont j’ai acheté le droit de les utiliser dans mes logiciels à mes débuts avec RealBasic​:upside_down_face:

Pour accélérer le développement, j’ai créé des modules reprenant des fonctions spécifiques à WinDev (traduits en anglais).

Edit : J’ai découvert la version Grid des images en postant la version anglaise :sweat_smile:

Le code de pagination de GraffitiSuite était buggé (mauvaise gestion de la pagination - correction du code effectué à partir de la version 64 avant constat de la nécessité de réécrire le contrôle), j’ai donc réécrit le gestionnaire depuis 0 (son implémentation est la prochaine évolution de l’application)

L’affichage unitaire des icones (ZoneRépétée sous WinDev) est géré par un DesktopContainer et mon module SDELooper

La V2 de l’application retirera tous les modules GraffitiSuite au profit de modules développés en interne.

J’utilise également un LLM Local simulant ClaudeCode pour la relecture du code.

Zotto peut servir d’assistant IA intégré à Xojo et fonctionnant avec des LLM locaux.

N’hésitez pas à poser vos questions dans ce thread pour le compléter :grin:

Une version en anglais de ce thread sera posté en simultané, mais n’hésitez pas à discuter en Français ici :wink:

juste pour alléger la facture …

En effet, vos créations mériteraient un lien dans la documentation de Xojo à ce sujet (j’ai découvert votre travail avec le module PrinterSwitcher :grin:)

https://github.com/JYPochez/VNS-Xojo-Printer-Switcher/tree/main