DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Nouveauté WINDEV, WEBDEV et WINDEV Mobile 2025 !
Aide / Nouveautés / Nouveautés de la version 2025
WINDEV
WindowsLinuxJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst
Autres
Procédures stockées
Amélioration de la productivité par intelligence artificielle
La génération à la volée de code WLangage par Intelligence Artificielle de la version 2025 propose des suggestions en temps réel pendant la saisie de code, réduisant ainsi le temps nécessaire pour les phases de codage.
Cela permet de coder plus rapidement, en évitant les tâches répétitives, en bénéficiant d'automatismes et de suggestions pour les parties prévisibles du code.
La fonctionnalité est disponible dans WINDEV 2025, WEBDEV 2025 et WINDEV Mobile 2025 et bien entendu dans la version SaaS.
Code proposé par l'IA. L'IA a détecté les rubriques de la requête, a trouvé le champ Table et remplit les colonnes avec les rubriques correspondants.
Code proposé par l'IA. L'IA a détecté les rubriques de la requête, a trouvé le champ Table et remplit les colonnes avec les rubriques correspondants.
Saisie automatique du code, suggestions
Les suggestions de code sont contextuelles.
Les suggestions affichées dépendent :
  • du projet,
  • du code en cours d'écriture (au-dessus et en dessous de la ligne en cours)
  • des codes modifiés précédemment,
  • des fenêtres,
  • des états
  • des collections de procédures,
  • des rubriques des fichiers de données (les colonnes des tables).
En fonction de tous ces éléments, l'IA vous propose le code le plus probable.
Comment est proposé le code : 1 seconde d'arrêt ou appel par touche de fonction
La proposition de code est affichée de manière non intrusive sous forme de "texte fantôme" (texte gris clair) à partir de la ligne en cours de saisie ou du curseur.
Par défaut, une proposition apparaît après un délai de 100 millisecondes sans taper.
Pour accepter la proposition de code, il suffit d'appuyer sur la touche TAB.
Si la proposition ne convient pas, il suffit de continuer à taper son code pour qu'elle soit ignorée ou d'appuyer sur la touche ESC.
Il est également possible de demander une nouvelle proposition de code en appuyant sur CTRL+MAJ+TAB.
En cours de saisie, en jaune pâle italique, le texte fantôme généré. La touche TAB valide ce code.
  • L'IA a analysé le code, détecté une répétition de code et propose donc la répétition pour les éléments suivants de la structure de départ (JSON). Pour valider la proposition (en jaune pâle), touche TAB.
  • L'IA a détecté dans la fenêtre qu'une procédure calcule une date d'échéance, elle a détecté un champ de saisie avec une date de contrat, et propose le code le plus probable pour continuer la ligne en cours de saisie. Pour valider la proposition (en jaune pâle), touche TAB.
Si le résultat ne vous convient pas, redemandez plusieurs fois une proposition : MAJ+TAB
  • En saisie de code, je tape un commentaire...
  • L’IA propose un code qui réalise l’action décrite dans le commentaire en tenant compte du projet en cours.
    TAB valide ce code, MAJ+TAB génère une nouvelle proposition, Esc ou la saisie font disparaître le code proposé.
Génération de code pour connexion a des technos spécifiques
Un des avantages de la génération de code WLangage par IA se matérialise lorsqu'un développeur doit développer pour un domaine qu'il ne connaît pas ou peu.
La saisie d'un commentaire décrivant le traitement à réaliser génère le code source correspondant, adapté au contexte du code en cours et du projet.
Faciliter l'apprentissage du WLangage ou de domaines du WLangage
La génération de code WLangage par IA est également utile au développeur qui débute avec WINDEV, et lui permet de découvrir plus facilement les fabuleuses possibilités du L5G.
Ici aussi, la saisie d'un commentaire décrivant le traitement à réaliser génère le code source correspondant, adapté au contexte du code en cours et du projet.
Notez que plus le commentaire est précis meilleur est le résultat.
Les suggestions s'améliorent au fil du temps
La fonctionnalité d'IA générative est livrée sous forme de bêta version.
De nouvelles fonctionnalités vont apparaître avec le temps et le moteur lui-même va se perfectionner par auto-apprentissage.
Une ligne de code
Avec le concept de palette, l'utilisateur final peut changer de look de votre application en 1 clic.
Dans le code source de l'application, il suffit d'utiliser la fonction WLangage PaletteChange en indiquant la palette à appliquer.
Le changement est appliqué dynamiquement, par le moteur graphique de WINDEV 2025.
Il n'y a rien d'autre à faire !
Fonction PaletteChange
Pour plus de détails, consultez Gestion des palettes de couleurs.
Une palette de couleurs, c'est quoi ?
Une palette est un ensemble de couleurs (une centaine).
Chaque couleur est destinée à un usage précis dans le gabarit : fond, texte, filet, etc.
Chaque couleur est nommée en fonction de son usage : couleur_fond_principal, couleur_texte_principal, couleur_bandeau, couleur_fond_bouton, etc.
Une palette définie attribue une couleur à chaque "nom de couleur". Par exemple couleur_fond_bouton = jaune ou couleur_fond_bouton = RVB(125,200,36)
Lorsque la palette en cours est changée, tous les champs passent automatiquement en nouvelles couleurs.
Ce mécanisme permet de changer le look d'une application facilement et dynamiquement.
Pour plus de détails, consultez Gestion des palettes de couleurs.
Comment changer la palette de couleurs
La nouvelle fonction WLangage PaletteChange permet de changer la palette de couleurs utilisée par un gabarit.
Et donc de modifier le look d'une application en 1 seule ligne de code.
Il suffit juste de rajouter un choix dans l'application pour que l'utilisateur puisse changer de look : thème sombre, thème "mêmes couleurs que le thème Windows en cours", etc.
Pour plus de détails, consultez Gestion des palettes de couleurs.
Les palettes de couleurs fournies : thème sombre, etc.
De nombreuses palettes de couleurs sont livrées en version 2025.
Parmi les palettes fournies, la palette "Thème sombre" permet de passer une application en thème sombre !
Vos applications pourront donc proposer le thème sombre.
Dans votre application, cela demandera une seule ligne de code.
Pour plus de détails, consultez Gestion des palettes de couleurs.
Un gabarit, des palettes
Vous le savez, pour définir sa charte graphique, une application utilise un Gabarit.
Le gabarit définit le style des champs : cadre des champs, arrondi, effet, police et taille de police, taille des champs, etc.
Et bien entendu un gabarit utilise des couleurs pour tous ces éléments.
En version 2025, le format interne des gabarits évolue pour utiliser une palette et non plus des couleurs fixes.
Pratique : les gabarits fournis à partir de la version 23 sont fournis au format 2025, et peuvent donc changer de palette : utile pour vos applications existantes !
A la recompilation des projets en version 2025, le changement de gabarit est proposé.
Pour plus de détails, consultez Gestion des palettes de couleurs.
Utilisez les couleurs du thème Windows en cours
La nouvelle fonction WLangage PaletteGénère permet de générer une palette de couleurs basée sur la couleur d'accentuation du Windows en cours d'utilisation sur la machine de l'utilisateur final.
Cela permet donc de proposer facilement une UI qui s'accorde avec la couleur dominante du PC en cours d'utilisation.
Thème Windows
Thème Windows
Palette générée
Palette générée
Pour plus de détails, consultez Gestion des palettes de couleurs.
Les icônes et boutons
Un gabarit contient des icones.
Au changement de palette, les icones doivent s'adapter, en particulier pour un passage en thème sombre.
Au changement de palettes, les couleurs des icones changent automatiquement pour rester lisibles.
En thème sombre par exemple, les couleurs passent en blanc.
A gauche icones originales, à droite passage automatique en blanc pour le mode sombre
A gauche icones originales, à droite passage automatique en blanc pour le mode sombre
Pour plus de détails, consultez Gestion des palettes de couleurs.
Les graphes
Une application peut contenir des graphes.
Au changement de palette, le graphe s'adapte à la palette.
Pour plus de détails, consultez Gestion des palettes de couleurs.
Opacité dans les couleurs
Les couleurs utilisées dans les palettes supportent l'opacité.
La transparence est définie par une couche alpha.
Pour plus de détails, consultez Gestion des palettes de couleurs.
Créez vos propres palettes de couleurs
Lorsqu'un projet doit se conformer à une charte graphique définie, il suffit de créer une palette spécifique.
La nouvelle fonction WLangage PaletteGénère, permet de créer une palette de couleurs.
Il est également possible de créer des couleurs nommées supplémentaires et de les inclure dans une palette.
Pour plus de détails, consultez Gestion des palettes de couleurs.
Mode avancé pour graphiste
Il est possible d'indiquer qu'une couleur nommée dérive d'une autre couleur nommée à laquelle on applique un filtre : luminosité, changement de teinte, etc.
Cela permet de construire des couleurs en cascade.
Pour plus de détails, consultez Gestion des palettes de couleurs.
Générer une palette de couleurs en 3 clics
Il est également possible de générer quasi automatiquement une nouvelle palette en fournissant uniquement 1 à 3 couleurs de base.
La palette sera générée en utilisant harmonieusement ces couleurs.
Pour plus de détails, consultez Gestion des palettes de couleurs.
Partage facile de palettes entre projets
Une palette est un fichier JSON présent sur le disque.
Il est donc très facile de la partager entre différents projets.
Pour plus de détails, consultez Gestion des palettes de couleurs.
Palettes de couleur : les couleurs de la palette sont utilisables par leur nom
Partout où une couleur est utilisée dans le code WLangage (fonction, propriété, etc.), il devient possible de spécifier une "couleur nommée" à la place de la couleur en "dur".
Il en est de même dans les "7 onglets".
Une utilisation de couleur nommée dans les
Une utilisation de couleur nommée dans les "7 onglets"
L'avantage est que lors d'un changement de palette, la nouvelle couleur de la nouvelle palette sera utilisée automatiquement.
Pour plus de détails, consultez Gestion des palettes de couleurs.
Les palettes sont utilisables sur les projets mobiles
Les palettes au format 2025 sont utilisables et partageables avec les applications réalisées en WINDEV Mobile.
Pour plus de détails, consultez Gestion des palettes de couleurs.
Accessibilité : intérêt des palettes
Pour faciliter l'utilisation de vos applications par des utilisateurs présentant des déficiences visuelles, comme le daltonisme, il est facile de prévoir une ou des palettes adaptées.
Des palettes spécifiques peuvent également avoir un intérêt dans la prévention des crises d'épilepsie.
Pour plus de détails, consultez Gestion des palettes de couleurs.
Plusieurs palettes différentes dans un même projet
Dans un projet, il peut arriver que certaines fenêtres doivent avoir une présentation différente.
Par exemple des fenêtres de paramétrage ou d'administration.
Dans ce but, il est possible d'utiliser plusieurs palettes différentes selon les fenêtres dans un même projet.
Pour plus de détails, consultez Gestion des palettes de couleurs.
Nouveau champ boutons segmentés
Le nouveau champ Bouton Segmenté permet un choix facile, qui peut être imagé, entre différentes propositions, choix unique ou multiple.
Le code pour gérer les cas est plus simple qu'une série de boutons ON/OFF.
Pour plus de détails, consultez Le champ Bouton segmenté.
Floutage de champ
En version 2025, il devient possible de flouter le contenu d'un champ de saisie, combo ou image par programmation.
Le coefficient de flou par défaut rend le texte illisible. Ce coefficient peut être modifié.
La nouvelle propriété Flou sur les champs prend en paramètre le rayon de flou à appliquer.
Le floutage permet en particulier de respecter des contraintes RGPD directement en programmation, lorsqu'on ne veut pas rendre le champ invisible.
Les champs Nom et Téléphone ont été floutés par programmation.
Table fichier : tri et filtre possible sur toutes les colonnes
Le champ Table permet en version 2025 de proposer le tri et le filtrage à l'utilisateur sur toutes les colonnes, incluant les colonnes non indexées.
Sur une colonne non indexée, Il faut bien entendu s'assurer d'un volume raisonnable de données pour optimiser les temps de réponse.
Notes repositionnables par l'utilisateur final : nouveau look
Les Notes Repositionnables sont relookées en version 2025.
5 nouveaux champs métier
La version 2025 offre 5 nouveaux Champs Métier :
  • Récupération de code reçu par SMS,
  • Génération de QRCode avec logo central,
  • Sélecteur light de couleur web,
  • Signature manuscrite sur téléphone,
  • Saisie de séquence de pages.
Retrouvez ces Champs Métier directement dans les parties correspondantes : nouveautés 215 pour WINDEV 2025, 442 pour WINDEV Mobile 2025, et 763 pour WEBDEV 2025.
Champ Tableur : gestion native du format CSV
Le format de fichier CSV est un format historique qui était utilisé par des tableurs.
Il est aujourd'hui toujours très utilisé comme format d'export par de nombreux logiciels applicatifs.
WINDEV propose depuis toujours des fonctions WLangage de gestion des fichiers CSV.
En version 2025, le champ tableur permet d'afficher directement le contenu d'un fichier CSV, et de le manipuler.
Champ Traitement de texte : export vers PDF, liens conservés
Il est possible d'insérer des liens Internet dans un document.
En version 2025 lors de l'export d'un document contenant des liens vers des documents au format PDF (à l'aide de la fonction WLangage DocVersPDF), ces liens sont conservés avec leur URL cliquable.
Tableur : 3 nouvelles fonctions pour les formules
En version 2025, 3 nouvelles fonctions pour les formules des feuilles du tableur sont disponibles :
  • DATEDIF : différence de jours entre 2 dates,
  • CROISSANCE : valeur par rapport à une tendance exponentielle,
  • BDNDVAL : compte les cellules non vides d'une plage.
Divers
  • Il est possible d'appliquer le "pinceau" par programmation.
PDF : formulaire lecture et écriture dans les champs par programmation
Un document PDF peut contenir des champs "formulaire" dans différentes pages.
En version 2025, il devient possible de manipuler ces champs par programmation :
  • lire des valeurs.
  • écrire des valeurs.
  • sauver un PDF modifié par programmation (et par l'utilisateur final également).
  • etc.
Cela permet de réaliser des traitements automatiques :
  • générer des formulaires préremplis.
  • récupérer directement des données.
  • réaliser des traitements par lots : remplir un formulaire, envoyer le formulaire, sans intervention humaine.
  • etc.
PDF : formulaire : énumérer les champs d'une page
En version 2025, il est également possible d'analyser une page par programmation pour détecter les champs formulaire :
  • les lister,
  • connaître leur type.
Le type WLangage PdfPage contient maintenant l'information supplémentaire d'un tableau de champs PDF.
Cela permet des traitements encore plus automatisés.
PDF : extraire des pages d'un document PDF pour créer un nouveau document PDF
La nouvelle fonction WLangage PDFExtrait permet d'extraire une ou plusieurs pages d'un document PDF, et de créer un nouveau document avec ces pages.
Exemple de code :
MonPDF = MonPDFSource.Extrait("3,10,15-16,36")
Nouveauté Champ Graphe : pourcentage imagé
Un nouveau type de graphe fait son apparition en version 2025 : le graphe Pourcentage Imagé ("Pictural percentage graph" en anglais).
Ce nouveau graphe représente un graphique qui illustre visuellement des données sous forme de pourcentages, sous une forme illustrative : bouteille, personne, thermomètre, etc.
Cela rend l'information plus facile à comprendre au premier coup d'oeil.
Pour plus de détails, consultez Graphe de type "Pourcentage imagé".
Nouveau champ Graphe pourcentage imagé : la programmation
La programmation du champ Pourcentage Imagé est la programmation habituelle de remplissage des graphes.
L'image peut être fournie soit via les "7 onglets", soit par programmation.
Les formats supportés sont : vectoriel (SVG) ou bitmap (JPEG, PNG, etc.).
Le format vectoriel est conseillé pour favoriser les redimensionnements harmonieux.
La famille de fonctions WLangage "gr" habituelle permet de manipuler ce type de graphe.
Graphe : une icône à la place d'un libellé
En version 2025, les graphes de type Camembert, Donut et Hémicycle permettent de remplacer les libellés par des icônes.
Cela permet une présentation plus visuelle.
Pour plus de détails, consultez l'aide de la fonction grVignetteCatégorie.
Graphe : affichage plus rapide
Le moteur interne d'affichage des applications WINDEV peut maintenant utiliser Direct2D.
Lorsqu'une application WINDEV utilise ce moteur, l'affichage des graphes est bien plus rapide.
Graphe : bulle de survol personnalisable
Les graphes possèdent une bulle de survol.
En version 2025 cette bulle de survol est personnalisable, et peut contenir des données dynamiques, fournies par programmation.
Cette bulle de survol personnalisée est réalisée par l'intermédiaire une Fenêtre Interne : tout est possible !
Pour plus de détails, consultez Bulle personnalisée.
Editeur d'images : édition plein écran. édition et affichage
En version 2025, le champ Editeur d'Images propose un nouveau mode de visualisation des images : le mode "Afficher Plein Ecran".
Ce mode affiche uniquement l'image en plein écran.
La touche de raccourci F11 permet cet affichage.
Un nouveau mode "Edition Plein écran" fait également son apparition, pour éditer en plein écran.
Utile pour des alignements précis ou pour une vue d'ensemble.
Editeur d'images : affichage supersonique
En version 2025, quel que soit le mode d'affichage du moteur, l'affichage des images est considérablement plus rapide !
Cela est très appréciable est modification d'image : zoom, déplacement de calque, etc.
Ne dupliquez plus vos projets : un environnement unique
Vous le savez, il est possible d'utiliser WINDEV, WEBDEV et WINDEV Mobile dans le même environnement.
Les éléments des projets sont ainsi immédiatement communs aux 3 plateformes : analyses, requêtes, états, procédures, classes, code, etc.
Fenêtres, pages et fenêtres mobiles se trouvent dans le même projet.
Ces éléments s'ouvrent directement dans l'environnement de WINDEV.
Cela permet le portage et la maintenance facile d'une application WINDEV vers le mobile et vers le Web, sans avoir besoin d'importer ou de dupliquer des éléments du projet.
Disponible en version historique et en version SaaS.
En version 2025, l'environnement bénéficie d'évolutions utiles au quotidien, comme la couleur de l'icone en haut de l'environnement qui indique la configuration en cours (évidemment jaune pour WINDEV, bleu pour WEBDEV et orange pour WINDEV Mobile).
Rappel : il est bien entendu nécessaire de posséder une licence ou un abonnement du logiciel concerné.
Votre existant DESKTOP devient une application SaaS
Un besoin répandu est de transformer une application Windows (ou des parties d'applications) en une application SaaS, pour la commercialiser sous forme d'abonnement.
Un site d'administration SaaS est livré avec le Serveur d'Application WEBDEV 2025. WINDEV 2025, et la famille de fonctions SaaS permettent d'utiliser ce site pour administrer les applications que vous désirez distribuer en mode SaaS.
CTRL+E : recherche d'un fichier de données
Vous le savez, les touches CTRL+E sont des touches magiques : elles permettent de retrouver et de se placer sur un élément du projet.
En version 2025, la recherche est également effectuée dans la description des fichiers de données (tables) et des rubriques.
Classe modèle (MOR) : regénération de toutes les classes en une seule manipulation
Il est possible de générer des classes qui correspondent à la description des fichiers de données (des tables).
Cela permet de structurer son application en architecture MOR, Mapping Object Relationnel.
L'option de menu "Regénérer toutes les classes modèle" permet de regénérer la classe lorsque la structure du fichier de données (de la table) est modifiée.
En version 2025, une nouvelle option permet de regénérer toutes les classes concernées en une seule manipulation.
Avertissement : impact d'une modification de structure sur les applications déployées
Vous le savez, HFSQL gère automatiquement les modifications de structure des fichiers de données (les tables) dans les applications déployées.
Toutefois, les traitements déjà écrits peuvent être impactés (ou pas) par cette modification de structure :
  • suppression de rubrique.
  • modification de type de rubrique.
  • etc.
L'Editeur d'Analyses (l'Editeur de Schéma des Données) en version 2025 propose une nouvelle fonctionnalité qui avertit lorsqu'une modification de structure a un impact sur les applications existantes, même pour les applications que vous n'avez pas écrites.
Il suffit d'indiquer le nom (l'adresse) du ou des serveur(s) qui abrite les données et de lancer cette fonctionnalité.
Note : cette fonctionnalité est automatiquement lancée avant le déclenchement d'une "modification automatique des fichiers de données" (modif auto).
Voir nouveauté 173
Nouveau modifieur
Un nouveau magnifique modifieur fait son apparition en version 2025.
Voir nouveauté 062.
Volet de création des champs
Un nouveau volet tout aussi magnifique fait son apparition en version 2025 : le Volet de Création, qui permet la création des champs de manière intuitive.
Voir nouveauté 065.
Environnement plus réactif, plus rapide
L'environnement de la version 2025 est devenu plus rapide et consomme moins de ressources : il est donc bien plus agréable à utiliser.
Mise à jour de modèles : 5 fois plus rapide
Les modèles de fenêtres, de pages et d'états (de rapports) sont très utilisés pour normaliser les présentations : la mise à jour de modèles exploite tous les coeurs de la machine.
En version 2025 la propagation à l'ensemble du projet d'un ou plusieurs modèles modifiés est en moyenne 5 fois plus rapide.
Cela est appréciable sur les projets de taille importante.
Explorateur de projet : encore plus pratique
En version 2025 l'explorateur de projets propose 2 nouvelles fonctionnalités :
  • possibilité de renommer une fenêtre, un état, une page, une classe, une collection de procédures depuis l'explorateur.
  • seules les sections utilisées sont visibles, ce qui allège l'UI.
Choisissez votre vocabulaire : table ou fichier ?
En version 2025, il est possible de choisir le vocabulaire utilisé par l'environnement, l'aide et le WLangage.
Voir nouveauté 170.
Edition dans WINDEV suite : l'icône dans la barre Windows est dans la bonne couleur
WINDEV Suite permet d'éditer des applications Windows, Mobiles et sites web.
En version 2025, l'icône dans la barre des applications affiché par l'environnement est de la couleur de la configuration en cours d'édition : jaune pour les applications WINDEV, bleu pour les sites WEBDEV et orange pour les applis WINDEV Mobile.
Nouveaux raccourcis dans les éditeurs
3 nouveaux raccourcis pratiques font leur apparition dans les éditeurs :
  • Espace : déplace par le fond,
  • ALT : duplique,
  • MAJ+Redimensionnement : conserve les proportions.
Divers
  • Nouvelle présentation des tutos,
  • Migration des projets plus rapide,
  • Lancement de l'explorateur Windows par l'environnement : paramétrage du gestionnaire de fichiers à lancer (par exemple Total Commander).
Image de trop grande taille détectée
L'audit statique détecte les images dont la taille semble disproptionnée.
La réduction de cette taille allège et accélère l'application ou le site.
Nouveau warning : dessin dans une image sans couleurs
Un piège dans lequel un développeur peut tomber lors d'une modification d'image par programmation est d'oublier de spécifier la couleur (de forme ou de fond).
Dans ce cas, rien ne se dessine !
Afin d'éviter la perte de temps à chercher pourquoi rien ne se dessine, l'audit dynamique signale cet oubli !
Paramétrage des messages automatiques
Le Centre de Gestion des Projets est configuré par défaut pour envoyer automatiquement des messages d'information sur le suivi du projet à de nombreux destinataires.
En version 2025, il devient possible de sélectionner les messages qui seront envoyés, par destinataire.
Les sujets dont on peut paramétrer les envois de message :
  • Ajout d'une tâche à une exigence dont l'intervenant est responsable.
  • Fin du développement d'une exigence.
  • Fin du test d'une exigence.
  • Terminaison d'une tâche d'une exigence.
  • Nouvel incident.
  • Nouvel incident bloquant.
  • Correction, Archivage d'un incident.
  • Passage d'un incident en niveau bloquant.
  • Passage d'un incident en niveau non bloquant.
  • Réaffectation, Réactivation d'un incident.
  • Demande de plus d'informations sur un incident.
  • Incident passé dans l'état "Ne sera pas corrigé".
  • Ajout d'une solution de contournement à un incident.
  • Modification de la solution de contournement d'un incident.
  • Changement de lot d'un incident.
  • Changement de type d'un incident.
  • Changement de sprint d'un incident.
  • Annulation d'une tâche associée à une exigence.
  • Association d'une exigence à un sprint.
  • etc.
Divers
  • Nouvel état de fiche d'incident : corrigé et contre testé.
  • Possibilité d'envoyer un message ou un Email à tous les intervenants d'une exigence.
  • Possibilité de supprimer un projet et toutes ses dépendances.
L'UX du modifieur s'adapte au type de champ
Le nouveau modifieur est un outil dont vous ne pourrez plus vous passer !
Le nouveau Modifieur présente de manière intelligente et agréable les propriétés du champ en cours, ou du groupe de champs en cours ou de la fenêtre ou de la page en cours.
Les propriétés sont classées par ordre d'intérêt, selon le champ.
L'UI de l'édition de chaque propriété est visuelle.
Un modifieur universel
Le nouveau modifieur est proposé pour tous les éléments :
  • champ,
  • fenêtre,
  • page,
  • état.
La présentation est adaptée à chaque élément, tout en offrant une cohérence globale.
Modification en temps réel
Les modifications effectuées dans le nouveau modifieur s'appliquent en temps réel sur l'élément en cours.
Le ruban c'est bien, mais le volet c'est mieux
Le ruban de l'environnement propose l'ensemble des champs disponibles.
Comme le nombre de champs offerts est important, le ruban est chargé!
En version 2025, une présentation supplémentaire par Volet de Création est proposée.
Le mode Ruban existe toujours.
Nouvelle présentation
La présentation des champs par volet est beaucoup plus claire.
Les champs sont classés.
Chaque champ est présenté dans une vignette.
Le volet peut être positionné à droite ou à gauche de l'environnement ou être dédocké.
Fonctionnalités
Le volet de création des champs dispose de fonctionnalités qui deviennent vite indispensables :
  • Recherche intelligente sous forme d'un filtre combinable temps réel (Exemple : Date, combo date, saisie heure, etc.),
  • Champs prédéfinis,
  • Champs favoris,
  • Champs métier.
Le volet est donc disposable à votre choix : haut, bas, 2ème écran, etc.
Inventaire du logiciel (SBOM)
Un SBOM (Software Bill Of Material) est une nomenclature logicielle qui répertorie de manière exhaustive tous les composants logiciels et leurs dépendances d'une application.
Cette liste peut être générée automatiquement lors de la création de l'exécutable.
Pour plus de détails, consultez Configuration de projet.
Migrer un projet hors GDS
La Fabrique Logicielle permet maintenant de demander la migration d'un projet qui n'est pas contenu dans un GDS.
Une nouvelle action fait son apparition dans ce but : Migration d'un projet du disque.
Divers
  • Possibilité de changer l'ordre des paramètres d'un plan d'action,
  • Nouvelle action pour générer une bibliothèque de tests,
  • Paramétrage du mot de passe pour se connecter à une base GDS,
  • Nouveau paramètre pour spécifier le commentaire de réintégration,
  • Nouvelle action pour ajouter un projet dans la base du GDS.
Les comptes utilisateurs peuvent être exposés par un serveur OAuth
Les comptes du Groupware Utilisateur (GPU) peuvent être intégrés au serveur OAuth livré en version 2025.
Cela permet à des applications tiers d'utiliser les comptes du GPU pour réaliser une authentification.
GIT : propriétés au format texte
De nouvelles propriétés sont disponibles au format texte :
  • Libellé,
  • Image,
  • Visibilité,
  • etc.
Visualisation de l'historique des modifications d'un élément directement depuis l'environnement
En version 2025, il devient possible de consulter la liste des versions successives d'un élément et lancer des comparaisons directement depuis l'environnement.
Editeur d'images de l'environnement : il bénéficie de l'amélioration des performances
L'Editeur d'images intégré à l'environnement bénéficie de l'amélioration très importante des performances.
Les modifications sont bien plus rapides et fluides.
Optimisation de la vitesse d'extraction des messages à traduire
Lorsque le projet est présent dans un GDS, l'extraction des messages (fenêtre, pages, code, etc.) est plus rapide en version 2025.
Le gain est de l'ordre de 2 fois plus rapide.
Ajout d'élément de même nom qu'un ancien élément supprimé dans la base du GDS
Lorsque l'on supprime un élément du GDS, celui est conservé dans l'historique (heureusement !).
Lorsque, des mois après, on crée un nouvel élément qui porte le même nom que l'élément précédemment supprimé, le GDS permet maintenant :
  • soit de restaurer l'ancien élément,
  • soit d'utiliser ce nom pour le nouvel élément.
Ce mode opératoire est bien plus pratique que l'ancien.
Nouvelle option : fermer tous les documents non extraits
Souvent, lorsque l'on navigue dans un projet, on ouvre différents éléments pour les consulter, puis on laisse ces éléments ouverts.
Cela charge donc visuellement la barre des documents de l'éditeur.
En version 2025, une nouvelle option permet de fermer tous les documents ouverts mais non extraits.
Faux positif éliminé
Lorsqu'un GDS est utilisé en équipe, chaque développeur réintègre régulièrement ses modifications dans le GDS.
Lorsqu'un autre développeur récupère ces éléments, le GDS en affiche la liste.
Cette liste affiche également les éléments modifiés, dont ceux qui présentent uniquement des modifications de structure interne des objets.
En version 2025 il devient possible de ne pas afficher les éléments qui présentent uniquement une modification de structure interne, ce qui allège la liste.
Le merge de branches affiche également une liste de ce type.
Suppression de branche ou de répertoire : vitesse optimisée
Le GDS utilise sa propre base de données pour gérer les sources des projets.
Ce format de base de données évolue régulièrement, en particulier pour améliorer ses performances et ses fonctionnalités.
Pour vos GDS installés, il est donc utile de migrer cette base de données chaque année.
Un simple clic sur le choix "Migrer au format le plus récent" dans le volet "Outil" de l'administrateur GDS. lance cette migration, qui est totalement transparente.
Nous vous conseillons vivement de mettre à jour cette base de données.
Notez que le GDS reste compatible avec toutes les versions de l'environnement.
Par exemple, en version 2025, le format de la base de données accélère la vitesse de la suppression de branches et de répertoires.
Affichage des partages d'un projet
En version 2025 une nouvelle option permet d'afficher la liste de tous les projets (présents dans le même GDS) avec lesquels le projet en cours partage des éléments.
La liste affiche le nom des projets ainsi que le nom des éléments partagés.
Cela permet de connaître les projets qui seront impactés par la modification d'un de ces éléments.
Liste des éléments extraits (avec auteur) en 1 clic
Le GDS permet d'afficher la liste des éléments extraits, ainsi que l'auteur de l'extraction.
L'option pour afficher cette liste est maintenant présente directement dans le ruban.
GDS : divers
  • UI d'intégration d'élément : l'UI est normalisée quel que soit le nombre d'éléments (Un ou plusieurs).
  • Option pour recompiler automatiquement le projet lors de la récupération d'éléments.
Présentation
GDSDrive est votre GDS dans le cloud !
Souscrivez un abonnement à tarif compétitif et vous disposez d'un GDS immédiatement.
Ce GDS est accessible de partout dans le monde !
En version 2025 la mise à jour du format de la base du GDS est disponible depuis l'administrateur du GDS.
Editeur de code : tout est fluide
L'éditeur de code de la version 2025 ravit tous les développeurs!
Toute manipulation est maintenant rapide quelle que soit la taille du code : un vrai bonheur !
Multicurseur : modifier plusieurs lignes en une seule manipulation
En version 2025, la fonctionnalité de multicurseur fait son apparition dans l'éditeur de code.
Le multicurseur permet d'effectuer une même manipulation simultanément à tous les endroits où les curseurs sont positionnés.
Par exemple :
  • insérer un texte à plusieurs endroits simultanément,
  • renommer plusieurs occurrences en une seule manipulation,
Les manipulations s'effectuent à l'aide de touches de raccourci : Ctrl+Alt+Clic permet de placer les curseurs sur la ligne.
En-tête épinglé : pour savoir dans quel code on se trouve
La fonctionnalité d'en-tête épinglé est très pratique dès que le code dépasse la taille de l'écran et que le code comporte des imbrications.
Le principe : lors d'un scroll, la première ligne de chaque bloc qui n'est plus visible reste affichée en haut de l'éditeur.
Le clic sur une des "premières" lignes positionne directement sur ce code.
La fonctionnalité est débranchable.
Afficher tous les codes + masquer les codes vides en 1 clic
L'éditeur de code en version 2025 permet en 1 clic d'éditer tous les événements d'une fenêtre, d'une page ou d'un état et de tous leurs champs dans une seule fenêtre de code.
Cela permet d'avoir une vue d'ensemble.
Pour ne pas surcharger l'affichage, les événements qui ne possèdent aucun code ne sont pas affichés.
Les modifications de code sont bien entendu possibles, comme d'habitude.
Matérialisation d'indentation
Nouveauté de confort, qui réduit la charge mentale, il devient possible de matérialiser chaque bloc de code indenté.
Un trait fin se charge de cette mission.
Notez les traits fins qui matérialisent les blocs de code
Notez les traits fins qui matérialisent les blocs de code
Combo de complétion : coloration et type de l'élément
Les éléments affichés sont colorés de la même manière que dans le code.
La combo de complétion automatique évolue en version 2025.
Le type de l'élément est indiqué en fin de ligne : champ de saisie, libellé, entier, réel, booléen, etc.
Le code dans la combo utilise la coloration syntaxique
Le code dans la combo utilise la coloration syntaxique
Ligne de code : longueur 100.000 caractères
Quel développeur n'a pas pesté de ne pas pouvoir coller un contenu géant, comme un contenu JSON, directement dans une ligne de code !
En version 2025, la longueur des lignes dans l'éditeur de code est quasi illimitée (100.000 caractères).
Suppression des espaces et des TAB de fin de ligne
Il peut traîner des caractères Espace ou des caractères TAB en fin de ligne de code.
En version 2025, l'éditeur de code supprime automatiquement ces caractères parasites.
Confort d'utilisation : paramétrage de la taille du curseur et de la vitesse de clignotement
Cela peut paraître un détail, mais de nombreux développeurs sont sensibles au curseur de l'éditeur de code.
En version 2025, il devient possible de paramétrer l'épaisseur de ce curseur, ainsi que sa vitesse de clignotement.
Ascenseur visuel hypersonique
En version 2025, l'ascenseur visuel (avec aperçu du code) devient hyper rapide, ce qui rend son utilisation agréable.
Norme d'écriture des variables : "Pascal Case" ou "snake_case". Changement en 1 clic?
Pour écrire un nom de variable dans un code, il existe plusieurs règles de nommage.
2 règles couramment utilisées sont :
  • Pascal Case : NomDuClient : première lettre de chaque mot en majuscule
  • Snake case : nom_du_client : tout en minuscule, chaque mot séparé par un tiret bas.
En version 2025, il est possible de passer d'une règle de nommage à l'autre.
Ce changement s'effectue au choix pour :
  • l'élément courant,
  • tous les éléments du traitement courant (uniquement pour variables locales),
  • tous les éléments du projet.
Une utilisation détournée de cette nouveauté est d'utiliser une syntaxe pour les variables locales et l'autre syntaxe pour les variables globales. Les variables sont ainsi directement identifiables !
Divers
  • Nouveau raccourci MAJ + Roulette permet de naviguer horizontalement.
  • Le raccourci CTRL+ ^ remonte au début du bloc de code; par exemple dans bloc "Si ... Alors ... Sinon").
  • Le raccourci CTRL + D (D comme dupliquer) fonctionne également sur une sélection.
  • Nom du traitement affiché dans la barre de document.
  • Option pour désactiver les bulles de saisie des paramètres.
  • Conservation de la sélection sur retour de focus.
Webservices SOAP & REST
WINDEV et WEBDEV 2025 permettent de créer facilement des webservices, qui seront utilisables avec vos applications et vos sites, ainsi que par des applications et des sites tierces.
Les webservices créés peuvent être hébergés sous Windows ou sous Linux.
En version 2025 la vitesse d'utilisation des webservices fait un bond spectaculaire.
Webservices et montée en charge avec appels simultanés : 10 fois plus rapide
En version 2025, lors d'une montée en charge de consommation de webservices, les performances sont optimisées.
Par exemple une connexion à une base de données est conservée et non plus réouverte à chaque appel.
Le lancement des process est également optimisé.
Le gain généralement observé pour un webservice sollicité par plusieurs clients simultanément est de l'ordre d'une vitesse 10 fois plus élevée.
Notez que si la vitesse devient trop élevée pour vos traitements, et que vous désirez revenir à la vitesse de la version précédente, le mode d'optimisation peut être débranché.
Webservices et montée en charge avec appels séquentiels : 2,5 fois plus rapide
La vitesse d'exécution de l'appel des webservices appelés de façon séquentielle est elle aussi boostée.
Le gain est un appel 2,5 fois plus rapide.
Ouverture automatique de l'ATR, lorsque le code à déboguer contient des threads
L'ATR est le nom de l'Analyseur Temps Réel qui permet de consulter et déboguer l'activité des différents threads en cours d'exécution.
Cette fonction trop souvent méconnue est mise en avant : lorsque le code à déboguer contient des threads, un volet ATR s'ouvre automatiquement pour faciliter le débogage.
Possibilité de bloquer puis débloquer ("freezer") un ou des threads
En version 2025, le débogueur permet de bloquer temporairement l'exécution des threads de son choix.
Cela permet par exemple de ne pas impacter un pas à pas sur un code.
Un environnement DevOps intégré
WINDEV, WEBDEV et WINDEV Mobile, ainsi que WINDEV Suite (SaaS) en version 2025 forment un environnement DevOps toujours plus intégré.
Vous disposez de l'ensemble des fonctionnalités nécessaires à la mise en œuvre de la démarche DevOps : c'est la fin de l'éparpillement dû aux outils hétérogènes.
Vous disposez de tous les outils intégrés pour gérer la méthodologie DevOps : gestion du cycle de vie, codage, IA, sprints, tests, intégration continue, déploiement, livraison continue, exploitation, correction des bogues, retours clients, etc.
Aperçu : pages côte à côte
En version 2025, l'aperçu permet d'afficher les pages recto /verso côte à côte.
Quel que soit l'espace disponible, 2 pages seront affichées.
Il est possible d'indiquer que la première page est une page de couverture.
Marges différentes pour pages paires et impaires
En version 2025, l'Editeur d'Etats permet de spécifier des valeurs différentes pour les pages paires et impaires.
Cela est principalement utile pour les documents reliés ou pour les documents conservés en classeur physique.
Recto et verso différents
En version 2025, il devient possible d'imprimer un document provenant de 2 états (rapports) différents. Typiquement : une facture et des conditions générales.
Voir nouveauté 230.
Editeur d'états : divers
  • Un numéro de page est positionné par défaut pour chaque nouvel état créé.
  • Audit d'UI : lorsqu'un tableau est présent dans un état et ne propose pas de total de colonne, une erreur d'UI est générée.
Génération de code source WLangage
La version 2025 offre la génération automatique de code source par IA.
Voir nouveauté 001.
Les mots de passe utilisés en programmation : sécurité totale
Il arrive souvent que des mots de passe, des clés privées, des tokens soient utilisés en programmation.
Par exemple :
  • mot de passe de connexion à une base de données.
  • mot de passe d'un fichier de données (table).
  • mot de passe du compte pour envoi d'email.
  • token OAuth.
  • mot de passe d'une feuille de tableur.
  • mot de passe d'un document Word.
  • etc.
Pour des raisons évidentes de sécurité, il ne faut pas laisser ces éléments en clair dans le code source.
Pour éviter d'avoir à mettre en place des mécanismes de sécurité personnels ou tiers, la version 2025 propose en standard un coffre-fort à mot de passe, des chaînes secrètes.
Un coffre-fort à mots de passe dans votre projet
Le mode de fonctionnement est simple : à partir de la version 2025, le projet permet de sauver des mots de passe (des chaînes secrètes) dans un coffre-fort intégré au projet.
Il est également possible de créer un coffre-fort dans une collection de procédures : pratique en cas de partage.
Ce coffre-fort est lui-même accessible à l'aide d'un mot de passe.
Chaque chaîne secrète est associée à un identifiant et une description.
Dans le code source, il suffit d'utiliser cet identifiant.
Tous les développeurs du projet peuvent utiliser cet identifiant.
L’édition sécurisée des chaînes secrètes
L’édition sécurisée des chaînes secrètes
Utilisation en WLangage
L'utilisation en WLangage est très facile.
Dans le code, il suffit d'utiliser l'identifiant défini dans le coffre-fort.
Pour passer cette valeur de manière sécurisée à une procédure, le nouveau type WLangage ChaîneSecrète fait son apparition.
ConnnexionBDD est une Connexion
MotDePasseBDD est une ChaîneSecrète = MDP_BDD
ConnnexionBDD.MotDePasse = MotDePasseBDD
Protections intégrées
Bien évidemment en mode débogage et en mode trace, les mots de passe (les chaînes secrètes) ne seront jamais visibles.
Les fonctions qui permettent de visualiser un contenu (comme la fonction Info) sont sans effet.
Côté pratique, il est impossible de récupérer le contenu d'une variable de type ChaîneSecrète.
Tout est automatique
Il n'y a aucune manipulation à effectuer, aucun fichier à embarquer, aucun paramètre à définir : lorsque vous utilisez un coffre-fort, ce coffre-fort est automatiquement embarqué avec votre exécutable.
C'est un bénéfice de l'intégration intégrale de WINDEV.
Plusieurs mots de passe d'accès au coffre-fort
L'accès au coffre-fort lui-même est protégé par un mot de passe.
Il est possible de créer plusieurs mots de passe différents pour accéder à un même coffre-fort.
Il existe 2 niveaux de mots de passe :
  • mot de passe maître,
  • mot de passe secondaire.
Par exemple le chef de projet peut détenir le mot de passe maître, et créer un mot de passe secondaire par développeur qui est autorisé à créer ou modifier des mots de passe.
Mot de passe en clair détecté
En version 2025, les mots de passe indiqués en clair dans le code génèrent un warning à la compilation.
Cette vérification s'active dans les options de compilation.
3 exemples d'usage de mots de passe depuis le coffre-fort
TLS : Thread Local Storage, pour stocker des informations locales à un thread
La technique TLS permet à une variable globale de posséder une valeur pour chaque thread.
Cela permet d'utiliser un code existant manipulant des variables globales par plusieurs threads, sans écrasement de ces variables globales.
Appel de procédures dans des threads : plus rapide
En version 2025, l'exécution des threads utilisant des procédures est jusqu'à 8 fois plus rapide.
L'appel des procédures dans les threads a été fortement optimisé.
Possibilité de récupérer un certificat du magasin de certificats de Windows
La nouvelle fonction WLangage CertificatExporte permet d'exporter un certificat présent dans le magasin Windows vers un fichier local.
Cela permet d'être indépendant du magasin de Windows.
Cela est également utile pour certaines fonctions WLangage qui demandent à lire le fichier du certificat (.pfx et .cert).
Lorsque ce certificat est protégé par mot de passe, il est nécessaire de fournir ce mot de passe.
Regrouper un certificat et une clé privée dans un certificat (PFX)
En version 2025, il devient possible de fusionner un fichier de certificat sans clé privée et une clé privée dans un nouveau fichier de certificat au format pfx.
Cela est par exemple bien utile pour les utilisateurs de OpenSSL (mais pas que!).
Fonctions Drive : récupérer la date et l'heure des fichiers
La fonction WLangage DriveListeFichier bénéficie d'une nouvelle option permettant de récupérer des informations supplémentaires lorsque l'on liste des fichiers :
  • date et heure du fichier,
  • taille du fichier.
OAuth : 3 nouveautés WLangage
En plus des fabuleuses nouveautés générales OAuth (serveur OAuth, voir nouveauté 799, Webservices sécurisés, voir nouveauté 794 ), le WLangage s'enrichit de 3 nouveautés :
  • La fonction WLangage AuthIdentifie permet maintenant de réaliser une connexion en passant directement un login et un mot de passe. Cela permet par exemple de créer une fenêtre de login spécifique à l'application.
  • La fonction WLangage AuthDéconnecte permet de se déconnecter du serveur d'authentification.
  • La fonction WLangage AuthRévoqueToken révoque le token OAuth.
Chiffrement (cryptage)
Le chiffrement AES192 est largement utilisé pour la protection des données. Cet algorithme à clé symétrique sécurise les données en les chiffrant en bloc de 128 bits à l'aide d'une clé de 192 bits.
Le chiffrement AES192 est disponible en version 2025.
Par ailleurs, la version 2025 propose les nouvelles constantes crypteCTR et crypteCFB pour les modes d'opération CTR et CFB (définit le traitement des blocs lors du cryptage).
Conversion explicite de types simples (CAST)
En version 2025, il devient possible de forcer la conversion d'un type simple vers un autre (par exemple Entier vers Chaîne) sans utiliser de variable locale.
Exemple de code :
ref_produit est une chaîne = (chaîne) 378 + (chaîne) 578 // ->
donne 378578 ET Non 956
Compression : la fonction WLangage ZipAjouteFichier jusqu'à 4 fois plus rapide
La fonction de compression de fichier ZipAjouteFichier, qui ajoute des fichiers dans une archive Zip, est jusqu'à 4 fois plus rapide en version 2025.
Plus le nombre de fichiers à compresser est élevé, plus le gain est élevé !
Protocole IMAP : recherche avec filtre
Lors du parcours sur les emails dans une session IMAP, la fonction WLangage EmailCherchePremier permet maintenant d'indiquer un critère de recherche : nom de l'expéditeur, nom du destinataire, objet, corps du message, etc.
Manipulation par programmation de Json de plusieurs gigaoctets
De nos jours, de plus en plus de fichiers Json ont une taille importante, jusqu'à plusieurs Go.
Par exemple les fichiers du cadastre fournis par le gouvernement français à travers le portail OpenData sont au format JSON et de taille importante.
En version 2025, un nouveau mode d'accès aux contenus JSON fait son apparition.
Ce mode permet de gérer les contenus de taille illimitée.
Le mode habituel charge le contenu JSON entièrement en mémoire, ce qui pouvait poser problème de performances ou d'occupation mémoire selon la taille du JSON.
Le nouveau type JsonLecteur et la nouvelle fonction JsonOuvreLecteur permettent de lire le contenu JSON sans avoir à le charger intégralement en mémoire.
Cela permet de ne plus avoir de limites !
Et cela est beaucoup plus rapide.
Requête SQL par programmation : possibilité d'utiliser une source de données dans une fonction select
Il est possible de saisir une requête SQL directement dans le code.
En version 2025, la source d'une telle requête peut elle-même être une requête provenant directement du code.
DocuSign : gestion des paraphes et des dates de signature en WLangage
Afin de faciliter la signature électronique des documents, le Composant Interne DocuSign livré bénéficie de 2 nouvelles fonctionnalités pratiques :
  • la gestion des paraphes, avec positionnement et répétition.
  • la gestion des dates, avec saisie possible d'une date autre que la date du jour et positionnement.
Il n'est plus nécessaire de programmer ces sujets : l'assistant propose ces choix.
Valeur par défaut sur les paramètres non typés (=*)
En version 2025 il devient possible de rendre optionnel un paramètre non typé.
Cela permet la présence de paramètres optionnels dans du code générique.< }} {{section:WDScript : installation autonome livrée| WDScript est un éditeur de scripts WLangage, livré avec WINDEV, WEBDEV et WINDEV Mobile. WDScript permet : * d'écrire des scripts en WLangage. * d'exécuter des scripts WLangage existants. WDSCRIPT est maintenant fourni de manière autonome. }} {{section:Divers| * Les fonctions WLangage [[3075002|TableauCherche]] et [[3075007|TableauTrie]] fonctionnent sur les types UUID. * [[3070014|SocketLit]] : nouveau paramètre pour spécifier le timeout * La fonction [[1410090512|eMailAppliRécupèreArchitecture]] indique si le logiciel de messagerie du poste est en 32bits ou en 64bits * [[3013030|InitHasard]] renvoie la graine, permet de reproduire un même hasard * Famille de fonctions [[1000021159|SSH]] : la fonctionnalité Keep Alive est disponible, pour maintenir la connexion même en cas d'inactivité. }} }} [[name=webservices_&_microservices]] {{section:WEBSERVICES & MICROSERVICES| {{section:Optimisation en exécution| Dans certains cas, le temps de réponse des Webservices créés avec WINDEV ou WEBDEV de taille importante (plusieurs centaines de classes, etc.) pouvait être élevé.
En version 2025, l'appel à ce type de Webservices est drastiquement optimisé : le temps de réponse est quasi immédiat, comme les autres Webservices, et la consommation CPU est largement diminuée.
Voir Nouveauté 098.
Webservice OpenAPI : gestion des références ($ref)
En version 2025 les descriptions OpenAPI contenant des références locales ($ref) sont gérées.
Cela permet d'importer dans l'environnement de WINDEV la description de Webservices REST utilisant cette fonctionnalité.
Cela permet l'appel natif en WLangage de ce type de Webservice.
Webservice OpenAPI : gestion automatique des retours
En version 2025, la gestion des valeurs de retour des Webservices OpenAPI devient automatique.
Il n'est plus nécessaire d'analyser soi-même le contenu de la réponse.
Webservice OpenAPI : génération au format version 3
Les Webservices REST exposent maintenant leur description au format OpenAPI 3.
Le principe de la facture électronique
Une facture électronique se présente sous la forme d'un document PDF A/3 (lisible par l'humain ) et d'un document XML (pour les applications) qui contient les données de la facture.
WINDEV permet de :
  • générer les factures en PDF A/3,
  • générer le fichier XML correspondant,
  • intégrer le XML dans le PDF,
  • signer le PDF final (avec gestion des certificats électroniques de niveau RGS et eIDAS).
La version 2025 permet également de décrire la relation entre le PDF et les pièces jointes (ici en XML).
Envoyer, récupérer
WINDEV dispose de toutes les fonctionnalités pour envoyer les factures (vendeur) sur le portail public et récupérer les factures (fournisseur) sur le portail :
  • appel de Webservice REST,
  • support de OpenAPI,
  • récupération et analyse du XML joint,
  • vérification de la signature du PDF (en réception de facture),
  • service Windows d'interrogation du Portail Public.
Dès aujourd'hui toutes ces fonctionnalités permettent de mettre en place une facturation électronique que respecte le règlement (eIDAS).
Il est d'ores et déjà possible d'automatiser les liens avec le portail français Chorus Pro (mis en place pour les marchés publics).
La création de factures électroniques au format Factur-X est également possible.
XML
Gestion des tableaux XML sous forme répétée
Le format "forme répétée" est utilisé de manière courante dans les formats d'échange XML.
La version 2025 permet de désérialiser automatiquement des données XML reçues, et qui utilisent la forme naturelle des données répétées.
Il devient également possible de sérialiser des données XML sous cette forme.
Possibilité de créer un noeud vide
Certains Webservices attendent un noeud vide dans la structure du document XML.
Il est maintenant possible de créer facilement ce type de noeud en WLangage.
Possibilité de rafraîchir la description XML directement dans l'environnement
L'explorateur de projets de l'environnement permet maintenant de rafraîchir une description XML déjà chargée.
Cela est intéressant pour le cas où la description a été modifiée alors que l'on est en cours d'utilisation de l'environnement.
Opérateur de cast (downcast)
L'opérateur de cast permet d'effectuer une conversion d'une classe de base vers une classe dérivée sans utiliser de variable locale.
Exemple de code :
mon_véhicule est un CVéhicule
((CVoitureElectrique)mon_véhicule).calcul_autonomie()
Passage d'une méthode à une Callback d'API
Il est désormais possible de passer une méthode d'une instance de classe à une API externe.
Il n'est plus nécessaire de passer par une procédure et une variable globales, et donc cela simplifie le code.
Appel de code WLangage depuis C++
Le WLangage peut être appelé depuis de nombreux langages tiers dont C++.
En version 2025, les fonctions WLangage qui acceptent comme paramètres des points ou des rectangles sont maintenant supportées.
Proposez la signature électronique YouSign
La version 2025 de WINDEV propose la solution YouSign.
Ces fonctionnalités de signature électronique respectent la réglementation européenne (eIDAS).
Les 3 types de signatures électroniques
Les 3 types de signatures électroniques sont supportés :
  • La signature électronique simple, de base (SES),
  • La signature électronique avancée (AES),
  • La signature électronique avancée qualifiée (QES).
Le mode approbation
YouSign propose une fonctionnalité intéressante nommée "Approbation".
Cette fonctionnalité permet à un ou des destinataires, pas forcément signataires, d'approuver un document avant signature : par exemple approbation juridique, technique, etc.
Cette fonctionnalité est supportée nativement par la version 2025.
Des fonctions faciles à utiliser
Les fonctions WLangage sont livrées sous la forme d'un Composant Interne, avec leur code source.
Les fonctions permettent de :
  • Fixer le niveau de signature,
  • Transmettre un ou des documents à YouSign, à un destinataires (nom, email, numéro de téléphone, etc.), pour signature, pour information ou pour approbation,
  • Définir l'emplacement de la signature dans le document,
  • Savoir si un document est signé, et qui ne l'a pas signé,
  • Obtenir les dates/heures de signature,
  • Récupérer les documents signés,
  • Annuler l'opération.
Tous les aspects de vérification, d'envoi d'email, de vérification de pièce d'identité, de stockage des documents sont totalement pris en charge par le prestataire (ici YouSign).
Un assistant génère le code
Pour simplifier le développement, un assistant intuitif permet de générer le code nécessaire.
Accès à toutes les API
Pour traiter les cas particuliers, l'ensemble des API fournies par YouSign est accessible par un appel WLangage.
L'ensemble des points d'entrée est disponible directement dans l'éditeur de code.
Le principe de facturation
YouSign propose plusieurs types d'abonnements, qui donnent accès aux différents types de signatures.
Le type d'abonnement à choisir est un "abonnement API".
Présentation
WINDEV dispose de son propre vocabulaire, vous le savez.
En version 2025, il devient possible de sélectionner le vocabulaire que vous désirez utiliser.
L'exemple le plus représentatif est celui de «fichier» ou «fichier de données», que l'on souhaite souvent remplacer par «table».
Choisissez
Certains termes historiques peuvent maintenant être remplacés par d'autres termes.
Voici quelques exemples :
FichierTable
AnalyseSchéma des Données
GabaritThème
Environnement, aide
L'environnement dispose d'une option pour sélectionner le vocabulaire choisi.
L'environnement s'adapte ensuite au vocabulaire choisi; l'assistance à la saisie, les "7 onglets", etc.
Le WLangage permet de coder avec le vocabulaire de son choix (voir nouveauté 172).
L'aide utilise également le vocabulaire choisi.
Même en WLangage
Les fonctions du WLangage s'adaptent également au vocabulaire choisi !
Les termes sont interchangeables et peuvent être mixés dans un même projet.
Exemples de fonctions synonymes :
EcranVersFichierFenêtreVersTable
FichierVersEcranTableVersFenêtre
ConstruitTableFichierTableConstruitDataBinding
HOuvreAnalyseHOuvreSchémaDesDonnées
HListeFichierHListeTable
ChangeGabaritChangeThème
Propriétés :
LiaisonFichierDataBinding
FichierParcouruTableParcourue
Optimisation de l'ouverture des fichiers (des tables) lors d'une montée en charge du serveur
Lorsqu'un serveur HFSQL est très sollicité, une nouvelle gestion des caches permet d'améliorer la vitesse d'ouverture des fichiers de données (des tables).
Réplication serveur : un seul port réseau
En version 2025, il n'est plus forcément nécessaire d'ouvrir les ports de chacun des serveurs de réplication.
Il est possible de n'ouvrir qu'un seul port de communication.
Par exemple pour une réplication entre LAN et extérieur, il n'est plus nécessaire d'ouvrir le port entrant dans le LAN.
Cela permet d'augmenter la sécurité.
Réplication universelle : 4 nouveautés
4 nouveautés intéressantes apparaissent en version 2025 pour la Réplication Universelle :
  • Possibilité d'ajouter des fichiers de données (tables) dans une réplication universelle existante (sans avoir à recréer une nouvelle réplication universelle).
  • Passage des identifiants automatiques (ID Auto) de 4 à 8 octets maintenant automatique, avec propagation automatique des modifications dans les fichiers répliqués.
  • Ajout et suppression de rubrique clé unique maintenant possible automatiquement.
  • Modification de l'ordre des clés uniques dans la structure de données.
Fichier anonymisé ou pseudonymisé : copie et sauvegarde
HFSQL permet de mettre en place et gérer automatiquement l'anonymisation et la pseudonimisation de vos fichiers de données (tables).
La version 2025 de HFSQL permet de réaliser facilement des copies et des sauvegardes de ces fichiers anonymisés ou pseudonymisés sans qu'il soit nécessaire de posséder les droits de lire les données originales.
Dans le cas, le fichier copié contiendra "en dur" des données anonymisées ou pseudonymisées.
Sauvegarde automatique : Upload automatique de la sauvegarde
HFSQL permet de configurer des sauvegardes automatiques périodiques.
La version 2025 permet de configurer un Upload automatique des sauvegardes effectuées sur un serveur distant.
La sauvegarde peut être effectuée en utilisant un chemin réseau ou par SFTP.
Sauvegarde de base de données nombre de fichiers illimités
Les anciennes versions de HFSQL limitaient le nombre maximum de fichiers présents dans une sauvegarde : 65.000.
Cette limite disparaît en version 2025, le nombre de fichiers est maintenant illimité.
Docker HFSQL / Podman
Podman est un système proche de Docker.
Podman offre une grande compatibilité avec Docker, et permet d'exécuter certaines images Docker.
En version 2025, les images Docker HFSQL peuvent être exécutées dans Podman.
Structure compatible : lors d'une modification automatique des fichiers de données, vérification effectuée
Le déclenchement une modification automatique des fichiers de données ("Modif Auto") effectue une vérification supplémentaire.
Les risques d'incompatibilité entre les modifications de schéma des données entre la version installée et la version à propager impactant les applications sont signalées :
  • suppression de rubrique,
  • changement de type de rubrique,
  • renommage de rubrique.
  • etc.
Divers
  • La fonction hImporteCSV permet l'import d'un fichier CSV (fonction clone de hImporteTexte)
  • Amélioration de hTransactionListe
  • La constante WLangage hLSTTriée de hListeFichier est disponible en Client Serveur
  • h.FonctionTrigger renvoie également des constantes et non plus simplement des chaînes.
Order by accepte des fonctions avec paramètres
En version 2025, l'ordre SQL ORDER BY prend en compte fonctions qui prennent en paramètres des paramètres.
Cela permet de trier selon une fonction spatiale, par exemple un calcul de distance, et de passer cette distance en paramètre.
2 nouvelles fonctions SQL
2 nouvelles fonctions SQL font leur apparition en version 2025.
ST_CentroidCalcule le centre de masse d'une géométrie.
TIMEDIFFPermet de soustraire deux heures.
Présentation
HFSQLDrive permet d'héberger facilement et immédiatement vos bases de données (vos tables) dans le Cloud.
Une appli mobile qui stocke les données dans le Cloud ? Disponible en 3 clics !
Le tarif d'abonnement forfaitaire est vraiment très compétitif.
Profitez-en maintenant pour héberger vos bases de données à moindre coût !
Redémarrage automatique
Un arrêt inopiné peut se produire.
Par exemple lorsque suite à un problème réseau, un noeud du cluster se trouve déconnecté de plus de la moitié des autres noeuds.
Autre exemple d'arrêt (tout court) : après arrêt du cluster complet pour une raison matérielle, le cluster n'attend plus l'intervention manuelle qui désigne le maître.
En cas d'arrêt inopiné, un redémarrage de cluster s'effectue automatiquement.
Vitesse de connexion d'une application client au cluster
En version 2025, la vitesse de connexion au cluster d'une application devient constante, quel que soit l'état des noeuds du cluster.
Resynchronisation après arrêt d'un noeud : 5X+ rapide
En version 2025, les performances de resynchronisation d'un noeud qui a été arrêté sont en moyenne 5 fois plus rapides.
Copie de base de données vers le cluster
En version 2025, il devient possible de copier directement une Base de Données ou un fichier de données (table) dans un cluster depuis le Centre de Contrôle HFSQL.
Fonctions WLangage
La fonction WLangage hSupprimeFichier est maintenant disponible pour le cluster HFSQL.
Il n'est plus nécessaire d'arrêter le cluster pour faire du ménage !
Divers
  • Il devient possible d'activer le système de notifications sur chaque noeud.
  • La synchronisation des noeuds avec une ou des transactions en cours est améliorée.
  • Diverses améliorations de gestion des pannes.
Nouvelle fonction WLangage hActiveSpare
La nouvelle fonction WLangage HRSTransformeSpareEnServeur permet de basculer un serveur Spare (esclave) en serveur Maître.
Compte-rendu d'exécution des tâches planifiées (et +) : consultable dans le Centre de Contrôle
Une fonctionnalité souvent demandée est implémentée dans la version 2025 du Centre de Contrôle HFSQL.
Il est maintenant possible de consulter directement dans le Centre de Contrôle les comptes-rendus et l'historique d'exécution :
  • des tâches planifiées,
  • des procédures stockées planifiées,
  • des sauvegardes planifiées,
  • des vues matérialisées planifiées.
Inutile de se plonger dans les fichiers de logs !
Notez que la fonction WLangage hListeHistoriquePlanification permet de récupérer ces comptes-rendus par programmation.
Import de base dans un cluster
Depuis le Centre de Contrôle, il devient possible d'importer une base de données dans un cluster.
Inutile de programmer.
Divers
  • Déconnexion des utilisateurs: amélioration de l'UI.
  • Déclenchement manuel de l'exécution d'une vue matérialisée planifiée.
  • Edition de la planification du rafraîchissement d'une vue matérialisée.
Présentation
De nombreux Connecteurs Natifs sont disponibles pour des bases de données tierces : Oracle, SQL Server, AS/400, DB2, MySQL, PostgreSQL, SQLite, xBase, MariaDB, Informix, Progress, Sybase, etc.
Ces connecteurs natifs facilitent la programmation (binding, etc.). Ils évoluent en version 2025.
MYSQL : support de UTF8MB4
L'encodage UTF8MB4 est une version étendue de UTF8 qui permet de stocker des caractères Unicode sur 4 octets.
Cela est nécessaire pour supporter des caractères comme les emojis ou certains idéogrammes chinois.
Divers
  • Il est possible d'effectuer une requête à une base tiers sans programmer systématiquement l'ouverture de la connexion. La connexion sera ouverte automatiquement. En version 2025, cette connexion reste ouverte pour ne pas perdre de temps à la prochaine requête exécutée sur cette base.
Insert de SELECT possible
L'éditeur graphique de requêtes permet maintenant d'insérer un ordre SELECT dans une requête de type INSERT.
Cela permet d'insérer plusieurs enregistrements en une seule opération.
Possibilité d'éditer une requête SQL saisie dans le code avec l'éditeur visuel de requêtes
Il est possible de saisir du code SQL directement dans l'éditeur de code.
En version 2025, depuis l'éditeur de code, il est possible d'afficher cette requête directement dans l'éditeur visuel de requêtes.
Le code saisi est rétro-analysé, et la requête matérialisée sous forme visuelle.
Il est possible de modifier la requête visuellement, et le code sera mis à jour automatiquement.
IOT
Bluetooth le : possibilité d'être appelé lors du changement des caractéristiques d'un périphérique
La nouvelle fonction WLangage BTLECaractéristiqueChangementValeur active ou active ou désactive la détection des changements de valeur d'une caractéristique Bluetooth Low Energy (LE) : par exemple, lors de l'utilisation d'un capteur de température, être averti ou pas lorsque la température change.
4 nouvelles fonctions d'accès à la blockchain du Bitcoin
En version 2025, la nouvelle famille de fonctions Bitcoin s'enrichit de 4 nouvelles fonctions :
  • BitcoinCoreDateHeureDernierLancement renvoie la date du dernier lancement de Bitcoin Core. Pour déterminer l'uptime.
  • BitcoinCoreConnexionOccurrence renvoie le nombre de pairs connectés. De 0 à 10 normalement.
  • BitcoinCoreEspaceDisqueUtilisé indique la taille sur disque de la blockchain.
  • BitcoinCoreHashBloc renvoie le hash d'un bloc par indice. Le plus petit est le plus ancien.
Mon espace santé : signature avec les cartes à puce
En France, le "Dossier Médical Partagé" (DMP) est de plus en plus en plus utilisé.
Le Dossier est associé à la gestion de la Carte Vitale de l'assuré.
WINDEV 2025 propose la signature permettant de signer par carte à puce de toutes les communications entre le praticien et le centre de gestion.
Présentation
La Télémétrie c'est phénoménal.
Le concept de Télémétrie vous permet de collecter et d'agréger des informations, sur l'utilisation réelle qui est faite de vos applications :
  • fonctionnalités utilisées,
  • durée des traitements,
  • choix de menu sélectionnés,
  • boutons cliqués,
  • bugs éventuels,
  • horaires d'utilisation,
  • etc.
Ainsi que la configuration matérielle et l'OS des utilisateurs finaux.
L'installation d'une télémétrie s'effectue sur vos propres serveurs, ou via PCSCLOUD.NET qui propose la mise à disposition d'un serveur de télémétrie.
Nettoyage automatique des versions
Une application vit et après plusieurs années possède en général un historique de versions très riche.
La combo de sélection des versions de la télémétrie pouvait donc être très chargée.
En version 2025, les versions très peu utilisées ne sont plus proposées dans la combo de choix des versions de l'application.
Cela permet de faciliter les sélections.
Si une ancienne version venait à être de nouveau utilisée, elle réapparaîtrait automatiquement dans la liste.
Possibilité de créer des tests sur une application entière
L'automate de tests livré en standard avec WINDEV est un outil très apprécié. En version 2025, son usage devient encore plus universel.
En version 2025, en plus de créer des tests unitaires, il devient possible de créer des tests pour une application entière, ou une partie d'applications.
Possibilité de créer des tests sans posséder le code source
Il n'est plus nécessaire de posséder le source de l'application sur laquelle on crée des tests. Le ou les tests automatiques peuvent être générés en utilisant uniquement l'exécutable de l'application.
Les scripts des tests automatiques sur l'application sont générés, et devront être joués par le possesseur du code source.
Cela permet de fournir des applications à un service Qualité sans avoir à en diffuser le code source.
Détection des lenteurs : mesure du temps de réponse
En version 2025, il est possible d'indiquer une durée maximum d'exécution d'un test.
Si cette durée est dépassée, une erreur est générée.
Recevoir une alerte unique ou une alerte à intervalle régulier
Un test en erreur peut envoyer une alerte.
Selon le volume des tests, le volume des messages d'alerte peut devenir conséquent et nuire à sa lecture.
En version 2025, il devient possible d'indiquer pour chaque test :
  • qu'une alerte sera envoyée en cas d'échec à chaque exécution du test.
  • qu'une alerte sera envoyée uniquement à la première détection d'échec, puis une alerte sera envoyée lorsque le test passe correctement.
Divers
  • Amélioration de la saisie du code WLangage dans le robot : coloration syntaxique disponible.
Support de la base Valkey
La base Big Data Valkey est supportée par la version 2025.
Version minimum requise
  • Version 2025
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 06/02/2025

Signaler une erreur ou faire une suggestion | Aide en ligne locale