Guiffan Florestan Veille BTS SIO Février 2016 Sommaire I. Introduction p2 II. Présentation p2 III. Les bases de données p3 IV. Screenshots p4 Sources 1 I. Introduction : WinDev est un atelier de génie logiciel (AGL) édité par la société française PC SOFT et conçu pour développer des applications, principalement orientées données pour Windows 8, 7, Vista, XP, 2008, 2003, 2000, mais également pour Linux, .Net et Java. Il propose son propre langage, appelé le WLangage. La première version de l'AGL est sortie en 1993. Apparenté à WebDev et WinDev Mobile. II. Présentation : Développeur : PC SOFT Dernière version : 21 Environnement : Windows, Linux, .NET et Java Langue : Français, anglais, chinois Langage : WLangage Type : atelier de génie logiciel (AGL) License: Propriétaire Site web: http://www.pcsoft.fr/windev WinDev utilise son propre « langage de programmation », le WLangage (abusivement désigné comme langage de cinquième génération), ressemblant beaucoup à du pseudo-langage. Il est possible d’écrire le code en anglais mais aussi en français. Ce langage et EDI permettent de développer beaucoup plus vite qu’avec d’autres EDI. L'éditeur d'interface graphique permet de créer des IHM (interfaces homme-machines) par glisserdéplacer. Il permet également de choisir un modèle de charte graphique parmi un ensemble proposé et d'en créer de nouveaux. À partir de la version 19 les champs peuvent être créés par pure programmation. Bien que prévu initialement pour Windows, WinDev supporte aussi GNU/Linux pour les applications avec et sans interface graphique, mais aussi Mac OS X. Il peut également s'appuyer sur le Framework Java pour une partie de ses fonctionnalités, ce qui permet une relative indépendance du fichier exécutable par rapport au système d'exploitation cible. Ses frères WebDev et WinDev Mobile permettent d'utiliser le même langage de programmation (WLangage), et les mêmes concepts (analyse, fenêtre, états, composants, classes…), pour la génération de sites Web et d'applications pour PocketPC, terminaux industriels (Windows CE), smartphones et tablettes (iOS, Android et Windows RT). WinDev utilise des formats de fichier propriétaire sous forme binaire. Ce qui implique l'utilisation exclusive du gestionnaire de source maison (GDS) ainsi que le moteur de recherche de l'EDI. Le code ne peut pas être édité via un logiciel classique tel que le bloc-notes et surtout ne peut être mis sous contrôle de version dans un système standard tel que Subversion, Git ou Mercurial, par exemple. En fait, le développeur WinDev est totalement lié à l’environnement de développement vendu par l'éditeur. La programmation orientée objet est possible, quoique moins puissante que dans la plupart des langages tels que C++ ou Java (pas de templates, par exemple). 2 III. Les bases de données WinDev gère de nombreux systèmes de gestion de base de données, que ce soit par l'intermédiaire des protocoles ODBC ou OLE DB ou par accès natif. Il existe un accès natif gratuit pour MySQL, pour PostgreSQL (depuis la version 14) et pour SQLite (depuis la version 16). D'autres modules payants permettant l'accès natif à Oracle, SQL Server, Sybase, AS/400, DB2, Informix et Progress_4GL. Il existe par ailleurs des accès natifs libres et gratuits comme MySQL4WD et PostgreSQL4WD de Rodolphe Jouannet qui offrent un accès natif à MySQL et PostgreSQL. Le module libre et gratuit SQLManagerX de Frederic Emprin permet d'écrire un seul code unifié pour gérer les différents systèmes de gestion de base de données. Par l'ajout d'autres modules, SQLManagerX offre un accès natif à un grand nombre de bases de données1. WinDev comporte aussi son propre système de gestion de base de données appelé HyperFileSQL (HFSQL) (anciennement nommé HyperFile). La base de données est appelée « analyse ». Il existe en version locale, client/serveur sous Windows, Linux et mobile. Les versions sont compatibles entre elles. 3 IV. Screenshots Interface de Windev 16 : Exemple de projet réalisé avec Windev 16 : application tablette ARGOS 4 Création d’un nouveau projet : Exemple d’analyse : 5 Exemple de code : Procédure globale RechercheAlerte // Résumé : rechercher si une alerte passée en paramètre existe. // si oui, elle est mise à jour ou supprimée selon le nouveau niveau, sinon elle est ajoutée dans le tableau de sa catégorie PROCEDURE RechercheAlerte(Donnees, TabAlerte) // variable de recherche IndiceElement est un entier = 1 Trouver est un booléen = Faux IdCas est un entier // on regarde s'il s'agit d'une alerte service ou host SI Position(gsSujetMail,"HOST ALERT",1,SansCasse+DepuisDébut) <> 0 ALORS IdCas = 1 SINON IdCas = 2 FIN SI TabAlerte..Occurrence > 0 ALORS // parcours du tableau pour vérifier si l'alerte existe déjà ou non TANTQUE IndiceElement <= TabAlerte..Occurrence ET Trouver = Faux // dans les deux cas il faut vérifier le nom de la machine SI TabAlerte[IndiceElement]:NomMachine ~= Donnees:NomMachine ALORS //info("machine ok") SELON IdCas CAS 1 : // cas alerte host SI TabAlerte[IndiceElement]:Address ~= Donnees:Address ALORS trouver = Vrai FIN CAS 2 : // cas alerte service SI TabAlerte[IndiceElement]:Service ~= Donnees:Service ALORS Trouver = Vrai FIN FIN FIN IndiceElement++ //info("fin de boucle") FIN FIN SI Trouver = Vrai ALORS // indice-1 car l'indice est incrémenter à la fin de la boucle juste avant d'en sortir SI Donnees:DateHeure > TabAlerte[IndiceElement-1]:DateHeure ALORS TabAlerte[IndiceElement-1]:Niveau = Donnees:Niveau TabAlerte[IndiceElement-1]:ValeurNiveau = Donnees:ValeurNiveau TabAlerte[IndiceElement-1]:Commentaire = Donnees:Commentaire TabAlerte[IndiceElement-1]:State = Donnees:State TabAlerte[IndiceElement-1]:DateHeure = Donnees:DateHeure SINON // si l'alerte est plus ancienne -> aucun traitement n'est à faire FIN SINON // alerte non trouvée donc ajout dans le tableau Trouver = Faux TableauAjouteLigne(TabAlerte, Donnees) // test : //Info("Alerte ajoutée.") FIN 6 Sources : https://fr.wikipedia.org/wiki/WinDev https://www.google.fr/imghp www.guiffan-florestan.fr www.pcsoft.fr 7