La génération de code WLangage à la volée 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.
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.
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.
La fonctionnalité d'IA générative est livrée sous forme de preview.
De nouvelles fonctionnalités vont apparaître avec le temps et le moteur lui-même va se perfectionner par auto-apprentissage.
Le nouveau champ Bouton Segmenté fonctionne comme un groupe de boutons ON/OFF regroupés en un seul champ.
Le rendu visuel est automatiquement plus soigné.
Le fonctionnement est standardisé : choix exclusif ou multiple possible.
Le contenu de chaque choix peut être un texte ou une image. La programmation est bien plus simple.
Il est possible de transformer (refactorer) un champ Interrupteur en Bouton Segmenté multiple ou un champ Sélecteur en Bouton Segmenté exclusif.
La programmation d'un Bouton Segmenté est bien plus simple que celle d'un ensemble de Sélecteurs, Interrupteurs ou Boutons On/Off.
La programmation d'un Bouton Segmenté permet :
Le mot-clé Réactive permet d'indiquer que la procédure doit surveiller les variables et les champs utilisés dans son code. Et bien sûr de s'exécuter en cas de modification.
Une Procédure Réactive peut être une procédure globale au projet (et donc réactive en permanence), une procédure locale de fenêtre ou une procédure locale de champ.
Les Procédures Réactives proposent 2 options :
Une Procédure Réactive peut modifier une variable ou un champ, eux-mêmes utilisés par une autre Procédure Réactive. Dans ce cas, l'autre Procédure Réactive s'exécutera.
Le framework bénéficie de mécanismes de sécurité : en cas de cycle, le framework gère !
Dans cette fenêtre, on souhaite réaliser les traitements suivants :
PROCÉDURE RÉACTIVE Gestion_Livraison()<délai=1s>
GR_LIVRAISON..Grisé = Vrai // Par défaut
SI INT_CGV[1] = Vrai ALORS
SEL_MODE_LIVRAISON..Grisé = Faux
SELON SEL_MODE_LIVRAISON
CAS 1 // Livraison à une adresse
COMBO_ADRESSE..Grisé = Faux
CAS 2 // Livraison à un point relais
COMBO_POINT_RELAIS..Grisé = Faux
CAS 3 // Retrait en magasin
FIN
FIN
Avec une Procédure Réactive : 11 lignes de code simplissimes ! Dans cet exemple, il suffit de créer une Procédure Locale dans la fenêtre, et de déclarer cette procédure comme Réactive, et c'est tout !
Cette procédure sera exécutée automatiquement lorsque INT_CGV ou SEL_MODE_LIVRAISON change de valeur, par exemple lors d'un clic de l'utilisateur.
Les Procédures Réactives permettent de déclencher automatiquement l'exécution de traitements.
Une Procédure Réactive est exécutée automatiquement lorsqu'une variable ou lorsque la valeur ou le contenu d'un champ utilisé dans la procédure est modifié soit par l'utilisateur final, soit par programmation.
Une variable ou un champ change ? La Procédure est exécutée !
Une saisie de montant HT ou TTC.
Le fonctionnement attendu est le suivant : lorsque l'on saisit un montant dans un champ, les autres champs se mettent à jour automatiquement.
Il est bien entendu possible de coder ce fonctionnement en WLangage, directement dans chaque champ concerné.
Dans ce cas, il faut créer une procédure qui effectue le calcul, et placer l'appel de cette procédure dans le Traitement de Modification de chacun des 3 champs.
En version 2025, il suffit d'indiquer que la procédure de calcul est une Procédure Réactive.
Le framework de WINDEV surveille le changement de valeur des champs et des variables et exécute automatiquement la procédure lorsqu'un changement est détecté.
Inutile de coder à chaque endroit ou à chaque champ où la modification peut intervenir.
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 totale de WINDEV.
L'accès au coffre-fort lui même est protégé par 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.
Par exemple, le chef de projet peut détenir le mot de passe maître, créer un mot de passe secondaire par développeur qui est autorisé à créer ou modifier des mots de passe.
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.
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.
Le nouveau modifieur est proposé pour tous les éléments :
La présentation est adaptée à chaque élément, tout en offrant une cohérence globale.
Les modifications effectuées dans le nouveau modifieur s'appliquent en temps réel sur l'élément en cours.
Le nombre de champs offerts est tellement important que 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.
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é.
Le volet de création des champs dispose de fonctionnalités qui deviennent vite indispensables :
L'éditeur de pages de WEBDEV 2025 apporte une nouveauté très utile : la vision 3D sophistiquée des champs de la page.
Cette vision 3D devient vite indispensable pour la gestion des champs conteneurs: flexbox, cellules,...
Cette vue 3D est disponible au choix pour la page entière ou pour un conteneur donné.
La vue 3D permet de sélectionner un champ et d'ouvrir les «7 onglets» de ce champ.
La vue 3D peut être manipulée :
Cela permet de visualiser facilement les imbrications et les empilements des champs.
Fonctionnalité puissante, il est possible d'éditer en même temps la vue 2D et la vue 3D.
Lorsqu'un champ est sélectionné dans une vue, il est automatiquement sélectionné dans l'autre vue.
Il est donc possible de sélectionner un champ dans la vue 3D et de l'éditer immédiatement en 2D.
La présence d'un certificat sur un serveur Internet HTTPS permet de garantir à l'internaute qu'il s'adresse au domaine dont il a saisi l'adresse.
Il n'est pas possible d'usurper le nom de domaine.
Un site Internet est accessible à travers le protocole HTTP.
HTTPS est la version sécurisée de HTTP.
Les navigateurs récents n'autorisent quasiment plus la navigation sur des sites qui n'utilisent pas HTTPS.
L'installation d'un site Internet nécessite donc la mise en oeuvre du protocole HTTPS et donc la présence d'un certificat sur le serveur.
Les certificats Let's Encrypt sont très utilisés. Il s'agit de certificats gratuits générés automatiquement par l'organisation ISRG, qui est principalement soutenue par Google.
La version 2025 du Serveur d'Application WEBDEV permet de gérer automatiquement :
Pour utiliser un certificat Let's Encrypt sur un serveur WEBDEV, il suffit de cocher la case «Générer automatiquement un certificat Let's Encrypt» dans le compte pour lequel le certificat doit être activé.
Il est possible de spécifier son ou ses noms de domaines qui seront protégés par le certificat.
Le Serveur d'Application de WEBDEV 2025 s'occupe de tout !
Il est bien entendu possible d'utiliser d'autres types de certificats que ceux de type Let's Encrypt.
Dans ce cas, il suffira d'installer et de gérer manuellement ces certificats.
Le protocole OAuth est un standard ouvert utilisé pour délivrer des autorisations sécurisées.
Un serveur d'authentification OAuth gère les points suivants :
Un serveur d'authentification OAuth peut être hébergé sur un serveur physique de tout type: réseau local («on premise»), hébergeur, cloud, ...
Un serveur d'authentification OAuth est présent par défaut dans le Serveur d'Application WEBDEV 2025.
Pour utiliser ce serveur d'authentification, il suffit d'activer la fonctionnalité de Serveur d'Authentification OAuth lors de l'installation du Serveur d'Application WEBDEV 2025.
L'utilisation de ce serveur d'authentification rend l'installation, l'administration et la programmation simplissime, et tout cela sans aucun coût supplémentaire au Serveur d'Application.
Ce serveur d'authentification peut être également utilisé pour l'authentification SSO.
Le serveur d'authentification OAuth livré avec WEBDEV 2025 propose toutes les fonctionnalités attendues.
En particulier, le serveur gère une base de données des comptes. Le serveur propose un site d'administration de la base des comptes: création et édition de comptes, importation de LDAP, ...
La mise en oeuvre d'une authentification OAuth pour l'accès à un site ou une application demande la saisie d'un Login.
La gestion de cette saisie est prise en charge par le serveur d'authentification.
La page de saisie est paramétrable.
Cette page gère l'oubli de mot de passe.
La création d'un nouveau compte est possible depuis la page de login.
La double authentification (par email et par Authenticator) est gérée.
La fonction WLangage AuthIdentifie permet de gérer l'authentification, en affichant la page de Login.
Un langage tiers peut utiliser le serveur d'authentification WEBDEV par l'intermédiaire de requêtes HTTP.
Un token est un jeton temporaire généré par le serveur, qui identifie l'utilisateur.
Lors de la création d'identifiants OAuth (couple IDClient, IDSecret), il est possible de définir facilement des permissions (des «scopes»), qui gèrent les autorisations du token généré.
Le serveur OAuth gère automatiquement la demande de consentement de l'utilisateur pour utiliser une ou des permissions (scopes) proposées.
Le renouvellement de Token est géré automatiquement.
WEBDEV permet bien entendu de créer facilement des webservices REST.
En version 2025, WEBDEV permet également de créer tout aussi facilement des Webservices REST à accès sécurisé par token OAuth.
WEBDEV 2025 s'occupe de tout !
L'accès au webservice nécessite la fourniture d'un token.
L'appelant du webservice doit donc obtenir ce token.
Un protocole standard pour obtenir ce token est OAuth.
Rappel : OAuth permet de gérer des autorisations d'accès.
Ce token est fourni par un serveur d'authentification, basé sur un protocole OAuth.
Il suffit de créer un webservice de la manière habituelle. Dans la description du webservice, il faut indiquer l'adresse du serveur d'authentification qui sera utilisé.
Il n'y a rien d'autre à programmer grâce à WEBDEV 2025.
oauth_parametres est un OAuth2Paramètres
...
// Demande d'authentification
MonToken est un AuthToken = AuthIdentifie(oauth_parametres)
// Récupération du nombre de factures de l'utilisateur connecté
req est un httpRequête
req.AuthToken = MonToken
req.URL = "http://serv.monentreprise.com/V1/Facturation/Facture?num_facture=" + num
req.Envoie()
Pour des autorisations plus fines, par exemple accordées à des utilisateurs particuliers, il est possible d'utiliser le concept de permission (scope).
Il s'agit d'une autorisation définie dans le serveur d'authentification, à l'aide d'une UI.
Exemple de permission: accès en écriture, accès à une ressource spécifique,..
Pour chaque point d'entrée du webservice il est possible d'indiquer le ou les scopes nécessaires.
Un webservice sécurisé nécessite l'utilisation d'un serveur OAuth. WEBDEV 2025 laisse le choix de ce serveur :
En cas d'utilisation d'un serveur d'authentification tiers il suffit de vérifier que ce serveur d'authentification possède les services nécessaires.
SSO est l'acronyme de Single Sign On, que l'on pourrait traduire par «S'authentifier une seule fois pour toutes».
Le SSO permet à l'utilisateur de s'authentifier une seule fois, ses identifiants étant reconnus automatiquement sur tous les sites compatibles, sans besoin de les ressaisir.
Le login et mot de passe sont stockés uniquement sur le serveur d'authentification, garantissant la sécurité et simplifiant l'accès aux sites
Tout est géré automatiquement pour les sites développés avec WEBDEV 2025.
Pour que chacun des sites puisse fonctionner en mode SSO, ce site doit appeler un serveur d'authentification.
Le serveur d'authentification :
Ce serveur d'authentification est livré en standard avec le Serveur d'Application WEBDEV 2025.
Le protocole utilisé par WEBDEV 2025 est le protocole standard OpenID Connect, ce qui permet à des sites non développés avec WEBDEV d'utiliser ce serveur d'authentification.
Tout site qui veut bénéficier d'un SSO donné doit connaître une clé secrète délivrée par le serveur d'authentification.
Pour authentifier un utilisateur, le site doit appeler la fonction WLangage AuthIdentifie, dont un paramètre est cette clé secrète.
La première authentification d'un utilisateur affiche la page de login du serveur d'authentification. Une fois connecté, le serveur délivre un Token (stocké dans un cookie).
Les authentifications suivantes détecteront automatiquement ce cookie, et valideront l'accès au site de manière silencieuse.
Il n'y a rien à programmer: tout est réalisé automatiquement par la fonction WLangage AuthIdentifie !
Pour qu'un site WEBDEV utilise une authentification SSO, 2 méthodes sont proposées :
La méthode la plus simple pour utiliser SSO dans un site WEBDEV est d'utiliser le GPU intégré. Avec cette méthode, il suffit d'indiquer les paramètres d'accès au serveur d'authentification dans la fenêtre de paramétrage du GPU. Impossible de faire plus simple.
La méthode par programmation est destinée aux sites qui n'utilisent pas le GPU.
La programmation reste simple grâce aux fonctions WLangage AuthIdentifie et OpenIDIdentifie.
Un état imprimé peut proposer un contenu de nature différente au recto et au verso.
L'exemple typique est une facture, imprimée au recto sur une feuille, et dont des conditions générales de vente sont imprimées au verso.
En version 2025, il devient possible d'utiliser 2 états différents pour imprimer des documents recto/verso.
L'aperçu d'un état contenant un recto et un verso différent visualise les pages côte à côte.
La nouvelle fonction WLangage iInitEtatVerso permet de spécifier le nom de l'état à imprimer au verso.
Cet état peut tenir sur une seule page, ou sur plusieurs pages.
Lorsque l'état présent au verso comporte plus de pages que l'état présent au recto, il est possible d'indiquer d'utiliser le recto des pages «blanches».
L'état imprimé au verso peut être un document PDF rappelé sur chaque page.
// Imprime les CGV au dos de la facture
iInitEtatVerso(ETAT_CGV)
iImprimeEtat(ETAT_Facture, numero_facture)
Les nouvelles fonctions WLangage ScanDepuisCaméraVersImage et ScanDepuisCaméraVersPDF permettent de prendre des photos avec un téléphone, et de transformer la photo en document exploitable.
Les éléments parasites sont supprimés, et le document est corrigé de l'éventuelle parallaxe de prise de vue.
Un usage utile de la fonctionnalité est le scan d'un document signé de façon manuscrite.
La fonction WLangage lance la prise de vue sur le téléphone, et matérialise le document détecté sous forme de parallélogramme. L'utilisateur peut modifier la zone.
Une fois la zone validée, l'éventuelle parallaxe est corrigé.
L'utilisateur peut scanner plusieurs pages à la suite.
Un document PDF contenant toutes les pages est généré.
Le scan propose un comportement avancé. Dans ce mode, le résultat renvoyé est un tableau de variables de type Image.
Cela permet d'effectuer tous les traitements spécifiques désirés.
Il est par exemple possible d'appliquer un OCR sur les images scannées en appelant les fonctions WLangage OCRDétecteZoneTexte et OCRExtraitBlocTexte.
Un mode opératoire courant de validation dans une appli est de demander la saisie d'un code reçu par SMS.
La saisie de code dans le processus de paiement ou d'identification est souvent fastidieuse pour l'utilisateur du téléphone qui doit naviguer entre plusieurs applis.
Le Champ Métier «Récupération de code SMS» permet à votre appli d'automatiser la récupération et la saisie du code.
Ce Champ Métier utilise entre autres la nouvelle fonction WLangage SMSDétecteCodeUsageUnique.
L'UX du Champ Métier dépendra du téléphone de l'utilisateur.
Sous Android, l'opération est totalement transparente, tandis qu'iOS rajoute une sécurité en demandant un clic à l'utilisateur final.
Tous ces aspects sont gérés automatiquement par ce nouveau Champ Métier de la version 2025 : vous avez juste à copier ce Champ Métier dans votre appli !
Et bien entendu, ce Champ Métier est totalement paramétrable, tout peut être modifié et personnalisé: champ, code,...
Apposez votre signature manuscrite sur un document PDF directement depuis votre téléphone.
Ce document PDF peut être un scan réalisé avec le téléphone.
Il suffit de prendre en photo, une fois pour toutes, votre signature et votre paraphe (la fonctionnalité est incluse dans le Champ Métier) et de les positionner à l'emplacement souhaité.
Le nouveau Champ Métier «Signature manuscrite dans un PDF» est livré en version 2025.
Rappel : la signature électronique est également disponible sur mobile, avec DocuSign ou YouSign.
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 ChangePalette en indiquant la palette à appliquer.
Le changement est appliqué dynamiquement, par le moteur graphique de WINDEV 2025.
Une palette est un ensemble de couleurs (une centaine).
Chaque couleur est destinée à un usage précis dans le gabarit : fond, texte, filet...
Chaque couleur est nommée en fonction de son usage : couleur_fond_principal, couleur_texte_principal, couleur_bandeau, couleur_fond_bouton...
Une palette définie attribue une couleur à chaque «nom de couleurs». Par exemple couleur_fond_bouton = jaune ou couleur_fond_bouton = RVB(125,200,36)
Lorsqu'une couleur nommée est modifiée, tous les champs qui utilisent cette couleur changent de couleur dynamiquement.
Lorsque la palette en cours est changée, tous les champs passent automatiquement en nouvelles couleurs.
La nouvelle fonction WLangage ChangePalette permet de changer la palette de couleurs utilisée par un gabarit et donc de modifier le look de l'application en une seule ligne de code.
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 !
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.
La fonction PaletteGénère permet aussi de créer une palette de couleurs spécifique. Cette fonctionnalité est très utile lorsqu'un projet doit se conformer à une charte graphique définie. Il est également possible de créer des couleurs nommées supplémentaires et de les inclure dans une palette.
Le gabarit définit le style des champs: cadre des champs, arrondi, effet, police et taille de police, taille des champs... 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.
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 icônes changent automatiquement pour rester lisibles. En thème sombre par exemple, les couleurs passent en blanc.
Une palette est un fichier JSON présent sur le disque. Il est donc très facile de la partager entre différents projets.
Partout où une couleur est utilisée dans le code WLangage (fonction, propriété,...) il devient possible de spéficier une «couleur nommée» à la place de la couleur en «dur». Il en est de même dans les «7 onglets».
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 :
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 :
Il était 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.
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, à l'aide d'une forme illustrative: bouteille, personne, thermomètre,...
Cela rend l'information plus facile à comprendre au premier coup d'oeil.
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,...).
Le format vectoriel est conseillé pour favoriser les redimensionnements harmonieux.
La famille de fonctions WLangage gr habituelle permet de manipuler ce type de graphe.
Le gabarit Apollo fait son apparition en version 2025.
Cela vous offre de nouvelles possibilités de personnalisation.
Utilisez librement ces gabarits pour vos applications et vos progiciels, ainsi que tous les gabarits livrés avec WINDEV.
Et n'oubliez pas : vous pouvez appliquer une palette pour changer les couleurs, et également créer vos propres gabarits.
Le gabarit «Emeraude» pour mobiles est livré avec la version 2025 : utilisez-le librement pour personnaliser vos applis !
Utilisez librement ces gabarits pour vos applications et vos progiciels, ainsi que tous les gabarits livrés avec WINDEV Mobile.
Et n'oubliez pas : vous pouvez appliquer une palette pour changer les couleurs, et également créer vos propres gabarits.
La version 2025 de WINDEV propose la solution YouSign, en plus de la solution DocuSign. Ces fonctionnalités de signature électronique respectent la réglementation européenne (eIDAS).
Les 3 types de signatures électroniques sont supportés :
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...
Cette fonctionnalité est supportée nativement par la version 2025.
Les fonctions WLangage sont livrées sous la forme d'un Composant Interne, avec leur code source.
Les fonctions permettent de :
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).
Pour simplifier le développement, un assistant intuitif permet de générer le code nécessaire.
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.
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».
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.
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é.
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.
ref_produit est une chaîne = (chaîne) 378 + (chaîne) 578
// donne 378578 et non 956
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 des problèmes 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.
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!).
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,...
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.
Une application WINDEV peut lancer une autre application (un autre process) écrite en WINDEV ou avec un autre langage. Cela concerne principalement les applications Console (lancées en ligne de commande).
En version 2025 il devient possible de lire sa sortie Standard (stdout) et sa sortie Erreur (stderr).
Il est également possible d'écrire sur son entrée standard (stdin). Cela permet de piloter le process lancé, et de récupérer le compte rendu du process.
En version 2025, la fonction ZipAjouteFichier est jusqu'à 4 fois plus rapide.
La version 2025 est une version vraiment impressionnante.
Parmi les 925 nouveautés, découvrez vite celles qui vous seront indispensables et celles qui rentabiliseront immédiatement votre version.