Juil 12

Lancer une application windev mobile d’une clef USB…

… Sans windev, ni dongle !

L’objectif est de pouvoir déployer une application windev (mobile), sur un PC standard, sans l’IDE de PCSoft, ni sa clef HASP: en utilisant le simulateur de PCSoft utilisé pendant le debug, pour une démonstration commerciale d’une application, par exemple.

... bon pour l'haleine du commercial

… bon pour l’haleine du commercial

Lire la suite

Mar 25

Comment envoyer depuis PHP une notification push à une application WinDev Mobile Android

Android PHP Notification push Google Cloud Messaging GCM WinDev MobileWinDev Mobile peut recevoir des notifications utilisant la plateforme GCM (Google Cloud Messaging) et les fonctions NotifPushActive et NotifPushProcedure.

Quelle déception/frustration de constater que seule une application WinDev peut envoyer une telle notification (fonction NotifPushEnvoie) ! Dans un monde où la communication entre systèmes hétérogènes devient incontournable, comment accepter une telle limitation qui restreint les échanges dans le microcosme WxxDev ?

Dans le cadre d’un de nos projets, nous avons besoin d’envoyer des notifications à une application WinDev Mobile Android depuis PHP. Après des essais infructueux, nous avons constaté l’incompatibilité des fonctions proposées par WinDev Mobile avec le standard proposé par les APIs Google.

Lire la suite

Déc 19

Tutoriel : les tableaux de bord de WinDev 19

Tutoriel WinDev 19Peter Halsted est un développeur WinDev installé au Mississippi. Il a rédigé un intéressant tutoriel expliquant la mise en place du système de tableau de bord proposé depuis la version 19 de WinDev.

Nous vous invitons à suivre ses explications ici :
Uncle Pete’s Corner – WinDev Dashboards

Mai 19

Recrutements en cours : Chefs de Projets / Développeurs WinDev/WebDev H/F

InfoGonesInfoGones est une entreprise experte dans le développement WinDev et WebDev. La qualité de nos prestations nous a permis de nous forger une solide réputation auprès d’entreprises Françaises (TPE/PME et grands comptes) mais aussi auprès de clients étrangers (USA, UK, Allemagne, Suisse, Belgique, Afrique du Sud, Gabon, Moldavie…).

Depuis sa création en 2010, InfoGones a fait le choix de ne pas se cantonner dans un domaine spécifique ce qui nous permet de réaliser des projets dans des contextes techniques et fonctionnels très variés et donc d’apporter notre expertise à des clients d’horizons différents. La Lire la suite

Fév 25

Head Hunting : Profils WinDev / WebDev /WinDev Mobile en Île-de-France

Head hunter

Pour répondre à de nombreuses et fortes sollicitations pour la réalisation de projets WinDev/WebDev sur Paris et Île-de-France, InfoGones (http://www.infogones.com) crée actuellement son agence Parisienne. Nous recrutons donc dans ce cadre des développeurs et chefs de projets géographiquement proches de ce secteur.

Vous bénéficiez d’une expérience pertinente de WinDev et/ou WebDev et avez envie de la partager et d’améliorer votre connaissance de cet AGL ? Vous avez déjà développé avec un des SGBD :Oracle, PostGreSQL, MySQL, Sql Server, … ?

Venez rejoindre notre équipe de 27 collaborateurs !

Lire la suite

Nov 20

Valeur des balises XML tronquées

postt
Nous avons constaté lors de la migration de notre serveur de socket en version Windev 18 que ce dernier ne renvoyait plus les mêmes trames qu’auparavant. Pour résumer, le serveur de socket reçoit des messages qui ont pour objet la génération de fichiers PDF (sur le serveur). Une fois généré, le contenu du fichier PDF est renvoyé au poste client qui a émi la demande. La communication entre client et serveur est basée sur un protocole dont les messages sont structurés au format XML.

Après analyse des messages renvoyés par le serveur, il s’avère que les valeurs des balises XML sont limitées à 2^16 caractères (soit 65536).

Lire la suite

Oct 29

Le déploiement d’un site WebDev – Définitions (1/3)

A force de pratiquer le déploiement des sites WebDev, et de se heurter aux diverses épines du rosier, voici un ensemble de posts techniques qui aideront (je l’espère!) d’autres aventuriers à déployer leurs sites ou webservice.

Ce premier post servira d’introduction: il tentera de définir divers mécanismes d’inteprétation des sites WebDev. Il devrait être suivi par deux autres textes plus orienté sur les configuration des serveurs Apache et IIS.

LE client-serveur qu'on aime...

Le client-serveur à la lyonnaise… (Gestan)

Le serveur d’application WebDev est presque un module CGI

Un serveur Web est au minimum un passe-plat de fichiers, au mieux une grosse moulinette qui produit des fichiers (html mais pas uniquement) via du code écrit avec potentiellement n’importe quel langage (script PHP ou WebDev).

Le serveur web est configuré pour démarrer ces sous-programmes via des règles de comparaison sur les urls accédés, et saura déterminer le code à invoquer pour produire ce fichier html.

A chaque fois qu’un fichier correspondant au masque sera demandé par le navigateur, notre serveur exécutera une commande du type ‘interpreteur.exe monscript.awp’, qui générera du html sur la sortie standard (c’est ce flux qui sera ‘attrapé’ et renvoyé au navigateur). Noter que le script interprété aura accès à certaines variables positionnées par le serveur Web appelant (comme l’URL initiale qui a servi a invoquer l’interpréteur, le type de requête HTTP, etc).

Bref, résumé en quelques lignes c’est la définition d’un module CGI (cf Wikipedia). Le moteur d’application de webdev est un module CGI, et presque de la même façon que PHP.

Le presqu’interpréteur WebDev est un exécutable localisé dans REPERTOIRE-DU-SERVEUR-D’APPLICATION-WEB/AWP/wd1X0awp.exe . On notera que toutes les versions historiques des interpréteurs sont installées dans ce répertoire, (de même que le module de paybox)..

Similaire à PHP, mais pas entièrement…

Les exécutables CGI sont invoqués par le serveur web de la même manière qu’un utilisateur tapant la ligne de commande sur l’invite de commande: (chargement de l’exe en mémoire->allocation contexte d’exécution->[exécution de l’interpréteur et récupération du flux généré]->libération du contexte->libération de la mémoire). Le problème est que ce processus est très lourd pour un serveur web censé pouvoir générer des pages à des centaines d’utilisateurs en simultané.

Les développements ultérieurs de CGI ont consisté à minimiser cette charge en gardant l’interpréteur en mémoire plutôt que que de laisser à l’OS le soin d’allouer/libérer des contextes d’exécution. C’est le module fastcgi de PHP qui est positionné en mémoire une fois pour toute, qui économise 2 des 5 étapes.

WebDev a choisi une autre approche : lorsque le wd1X0awp.exe est invoqué pour générer une page, le module se met en relation avec le service d’application WebDev (un service s’appelant wd1X0admin.exe sous windows, un demon sous linux) qui gère plusieurs aspects de l’exécution de l’interpréteur: récupération des paramètres du projet webdev, création de session persistantes pour les pages/scripts AWL, et invocation de l’interpréteur du script WLangage.

De fait, c’est ce serveur d’application, résident en mémoire, qui invoquera au final l’interpreteur WLangage (plutot que wd1x0awp.exe).

Les contextes d’exécution persistant / non persistant d’une application Web(Dev)

Il y a deux grandes façons d’aborder le développement Web: une approche client-serveur ‘sans-état’ où chaque page visitée est indépendante de tout contexte de navigation (hormis quelques variables stockable dans les cookies ou des paramètres d’url). Ou une voie proche des clients lourds, où chaque fenêtre s’appuie sur un set important d’informations persistantes valide durant toute la session de travail de l’utilisateur.

Pour éviter la gymnastique intellectuelle d’une navigation ‘sans contexte’, WebDev propose les deux modes au développeur.

Lorsqu’un utilisateur accède à une portion de site ‘en persistant’, un processus wd1X0session.exe dédié est démarré et vivra tant que l’utilisateur naviguera sur le site. La session est identifiée par un token spécifique, et chaque action utilisateur sera accompagnée de ce token, et sera routé par wd1x0admin.exe sur la bonne session côté serveur.

Fin de la torture

Voilà, ce gros préambule digéré, nous pouvons passer à la suite des réjouissances: la configuration d’un site WebDev sous Apache et IIS.

Une autre (bonne) définition du mot ‘Torture’

 

 

Sep 04

Accès natif Oracle 18 – CLOB corrompus

posttAprès avoir migré un projet windev en version 18, nous avons eu la désagréable demi-surprise (« chat échaudé craint l’eau froide ») de constater certaines régressions.

Parmi elles, un grave problème lié à l’accès natif oracle (V18) qui a pour conséquence de ne renvoyer qu’une partie du contenu des rubriques de type CLOB. En effet, ces rubriques sont tronquées de façon aléatoire (!?!) d’où une inévitable corruption des données.

Lire la suite

Sep 05

Die Gones in Deutschland [Video]

La solution ScanMyTicket est exploitée du salon Toy Fair de Nüremberg (Allemagne), plus gros salon mondial du domaine du jouet. Plus de 1.000.000 de scans de tickets/barcodes ont été effectués pendant ce salon.

ScanMyTicket est une solution logicielle réalisée par InfoGones et Whos-In (Belgique) dans le cadre des prestations de cette dernière dans les domaines du ticketing et du contrôle d’accès.

L’application est utilisée sur plusieurs dizaines de point d’accès, sur terminal mobile (développement WinDev Mobile), et permet non seulement de contrôler la validité des tickets mais aussi les privilèges d’accès aux zones. Un module de statistiques en temps réel permet aux organisateurs de suivre les flux de visiteurs dans le salon.

En amont de ScanMyTicket, InfoGones a développé le site Web ExpoLand (réalisé avec WebDev) qui a été implémenté en 19 langues (dont des langues unicode). ExpoLand est une véritable CRM dédiée aux organisateurs de salons, qui a permis à plus de 80.000 visiteurs du salon Toy Fair de s’inscrire, de commander des catalogues et de régler leur billets.

De plus, ExpoLand intègre un module marketing utilisé par des agents locaux à travers le monde pour promouvoir le salon, valider et filtrer les inscriptions des professionnels. Ce système est exploité par la société Hess GmbH (Allemagne) dans le cadre des salons Toy Fair et Usetec.

[youtube]http://www.youtube.com/watch?v=fPSJYrC1R9g[/youtube]

Juin 11

Les Experts WinDev à Miami

Notre réputation a franchi l’océan Atlantique !

Nous avons été sollicités pour réaliser une application dans le domaine médical pour des centres oncologiques de Miami. Le but est de gérer des prescriptions médicales et de piloter des systèmes de perfusions automatisés.

Lire la suite

Mar 01

Accès natif MySQL : Bug de hCréationSiInexistant(« * »)

En version 16 (autres versions à tester), la fonction hCréationSiInexistant(« * »)fonctionne bien si la base MySQL est vide (aucune table).

Par contre, si il ne manque qu’une ou plusieurs tables dans une base existante, WinDev ne les crée pas automatiquement.

Pour contourner ce petit bug, nous vous proposons une fonction qui fera le travail à la place de hCreationSiInexistant (à noter que la fonction remplit bien son rôle si on l’appelle en spécifiant un nom de table particulier).

La fonction pg_CreeBase() récupère la liste des tables de l’analyse en cours et lance un hCreationSiInexistant(Table)

Lire la suite

Fév 02

Intégration d’un fichier dans un exécutable WinDev (FichierDansExe)

Intégrer un fichier dans du code pour l’extraire à l’exécution peut être utile pour des raisons de sécurité (pour s’assurer par exemple qu’une DLL n’a pas été modifée pour influencer l’exécution), pour assurer l’intégrité d’un fichier de données important. Je m’en sers personellement pour extraire temporairement un exécutable secondaire (intégré dans l’exe principal), et qui est ensuite détruit après utilisation.

Lire la suite

Jan 19

Calcul de distance entre 2 communes ou 2 codes postaux

J’ai rencontré sur un projet le besoin de calculer des distances entre villes, avec interrogation directe de la distance dans une base de données.

Je me suis donc intéressé à l’Orthodromie, qui permet de calculer une distance sur une sphère (en prenant la courbure moyenne de la Terre, car elle n’est pas une sphère parfaite). Le but du projet n’est pas de calculer une distance par la route, mais la distance la plus courte respectant la courbure de la terre.

Wikipedia donne une méthode intéressante (http://fr.wikipedia.org/wiki/Orthodromie) :

Lire la suite