IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Utilisation de la POO


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2016
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Utilisation de la POO
    Bonjour à tous

    Je suis dans une réflexion à utilisé la POO dans mes futurs développement WINDEV.

    J'aimerai avoir un retour d'expérience afin de savoir si certains d'entre vous l'utilise ? L'efficacité ?

    A la base le WLANGAGE à été pensé procédural, mais depuis quelques temps on attend de l'objet à toute les sauces, d'ou ma question sur son utilisation dans Windev ?

    Merci

  2. #2
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 374
    Points : 9 707
    Points
    9 707
    Par défaut
    Bonjour,

    Je ne sais pas ce que tu attends comme retour, mais sache que Windev et le W-Langage gère la POO depuis la version 5 (et peut-être même avant, mais je ne m'en souviens pas).

    Bref, j'utilise la POO avec Windev depuis plus de 20 ans, sans soucis.

    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Laos

    Informations forums :
    Inscription : Mars 2003
    Messages : 552
    Points : 1 193
    Points
    1 193
    Par défaut
    Bonjour,

    Citation Envoyé par speed94 Voir le message
    ...
    J'aimerai avoir un retour d'expérience afin de savoir si certains d'entre vous l'utilise ? L'efficacité ?
    ...
    Je m'en sers régulièrement, mais je vais te faire une réponse de normand ^^, je sais me servir d'un crayon et pourtant je suis incapable de dessiner le portrait d'un passant...
    C'est plus pour souligner ton propos concernant l'efficacité... Elle ne dépend pas d'un "mode" de programmation mais de comment le développeur va designer son programme... et c'est d'autant plus vrai en POO
    Donc oui c'est efficace comme un peintre avec son pinceau, un dessinateur avec son crayon et un développeur aguerri à l'objet se servant de la POO

    Citation Envoyé par speed94 Voir le message
    ...
    A la base le WLANGAGE à été pensé procédural, mais depuis quelques temps on attend de l'objet à toute les sauces, d'ou ma question sur son utilisation dans Windev ?
    ...i
    En effet, ils ont comblé leur retard à ce niveau, et maintenant depuis les versions 22 et supérieure, on a enfin quelque chose d'exploitable (je veux dire par là, un peu plus poussé qu'une simple encapsulation de collection de procédure dans un objet)

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 051
    Points : 9 386
    Points
    9 386
    Par défaut
    Est ce que Windev permet de faire la POO avec tout ce que ça comporte, en particulier la notion d'héritage ?

    Je pose la question, même si je pense qu'elle n'apportera rien à Speed94.
    Quand on a commencé à programmer avec du procédural, et qu'on se met à la POO, on fait de la POO-light. Même si le langage permet de faire de la POO-hard, on n'utilise pas toutes les fonctionnalité, et on fait du light.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2016
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Merci pour vos réponses

    Ma question s'orienter plus sur la véracité de la POO dans Windev.
    Pour utiliser la POO sur d'autre langage, je ne doute pas de l’utilité et l’efficacité de la POO de maniéré générale

  6. #6
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 374
    Points : 9 707
    Points
    9 707
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Est ce que Windev permet de faire la POO avec tout ce que ça comporte, en particulier la notion d'héritage ?
    Oui. Mais bon, la POO sans la notion d'héritage, je ne vois pas trop l'intérêt...
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  7. #7
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 051
    Points : 9 386
    Points
    9 386
    Par défaut
    Donc Windev permet de définir une classe 'Véhicule', avec certaines propriétés, certaines méthodes, puis des classes 'Voiture' ou 'Camion' ou 'Autobus', qui héritent de la classe 'Véhicule', mais qui ont en plus des propriétés et des méthodes spécifiques ?
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 22
    Points : 38
    Points
    38
    Par défaut
    Bonjour

    Oui c'est tout à fait possible. Tout mes projets, depuis quelques années sont en POO. C'est surtout nécessaire pour les programmes de grosse taille (en procédural, ça devient rapidement difficile à gérer).

    Pour info, il y a un framework POO et un exemple simple d'utilisation sur wlplus.org. Le site rassemble aussi plein de liens vers des articles qui parlent de POO en WinDev.

    Voila de quoi répondre à votre question.

    Bon dev.

  9. #9
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 374
    Points : 9 707
    Points
    9 707
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Donc Windev permet de définir une classe 'Véhicule', avec certaines propriétés, certaines méthodes, puis des classes 'Voiture' ou 'Camion' ou 'Autobus', qui héritent de la classe 'Véhicule', mais qui ont en plus des propriétés et des méthodes spécifiques ?
    Même en version 5.5 c'était déjà possible !
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  10. #10
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 57
    Points : 102
    Points
    102
    Par défaut
    en poo windev on a presque tout mais il faudrait aller tres loin pour voir ce qui manque car on a deja
    definition UML,
    heritage,
    polymorphisme ...
    j'avoue que pour l'instant je n'ai pas trouvé de blocages sur ce que je voulais faire en poo avec windev

  11. #11
    Membre éclairé
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2017
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2017
    Messages : 325
    Points : 785
    Points
    785
    Par défaut
    J'ai commencé avec du procédural et ensuite, j'ai pu voir de la POO avec un pseudo ORM - sur lequel WinDev s'est d'ailleurs amélioré via la génération des classes modèles même si c'est pas encore parfait - et je l'ai testé.

    Désormais sur tous mes devs, c'est de l'objet autant que possible, sauf pour les traitements par lots (l'ORM n'est pas adapté pour ça). L'objet en tant que tel, quand il est bien réalisé, permet d'accélerer le dev au prix c'est vrai d'une phase initiale plus lente. L'ORM abstractise la gestion de la base de données et permet de manipuler les objets plutôt que les fichiers et la encore WinDev est sur la bonne voie. J'aime pas trop qu'on puisse taper les fichiers à volonté, les objets permettent de protéger la base, même si je mets beaucoup de contrôles dans l'analyse et que je suis partisan du typage fort (et j'y fait attention dans l'analyse comme dans le code), les objets ne se laissent pas faire non plus

    Il existe de mon côté un socle d'objets qui me servent notamment à gérer entièrement par code mes bases de données: ouverture, modification de mots de passe/de structure, mises à jour métier avant/après ouverture, bref tout ce qu'une appli en prod peut avoir besoin. Et ça fonctionne tellement bien. En quelques lignes j'ai pu adapter cette classe pour qu'elle fonctionne avec du C/S, la prochaine étape étant l'interfaçage avec les accès natifs.

    Je mets donc plus de temps (et encore, j'ai maintenant l'habitude et le GDS me permet de partager plusieurs de ces éléments ou de les importer rapidement donc tout est relatif) a créer mon socle, mes objets, mais une fois que c'est fait je livre à une vitesse...et la manipulation reste très simple en WinDev, on joue avec les objets comme des légos.

    Sauf que ce modèle objet qu'est l'ORM trouve ses limites dans les traitements par lots (certains traitements me sont inaccessibles via l'ORM car bien trop lents et gourmand en RAM), les transactions (c'est compliqué d'en faire, mais l'atomicité des fonctions est bien surveillée quand même pour y pallier un tout petit peu....), et dans une moindre mesure car ça dépend de la base, les requêtes un peu lourdes avec des join partout

    En utilisation normale je suis donc plutôt content de ce que fournit WinDev sur l'objet actuellement en version 24. Il faut juste bien faire attention à ce qu'on fait fait: les opérateurs d'affectation permettent de copier le contenu d'un objet dans un autre ou de déclencher des prises de référence, ça n'est pas spécifique à WinDev mais faut se mettre une rigueur dans la tête et savoir ce qu'on manipule et ce que ça a comme conséquence en mémoire (en mémoire RAM hein). Sinon, gare aux effets de bords imprévus...

  12. #12
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Bonjour,

    Une limite que je connais en POO sur windev est l'absence d'injection de dépendance... et c'est dommage !

    Bonne journée,
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  13. #13
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Bonjour,
    Je trouve qu'il manque aussi la surcharge des opérateurs.
    Le but n'est pas d'additionner des choux et des carottes, mais de permettre par exemple de redéfinir le test d'égalité pour comparer 2 objets de façon personnalisé.

    Et pourquoi l'équivalent de INTERNAL concernant la portée, pour qu'une méthode de classe soit par exemple accessible à toutes les classes d'un composant, mais inaccessible de l'extérieur de ce composant, ou les classes "amies" comme en Delphi (ou C++, je ne sais plus), pour autoriser une classe X à accéder aux membres/méthodes/propriétés protégées d'une classe Y sans lien d'héritage entre elles.

    Ces manques étant tout à fait contournables, je ne vois pas ce qui empêche de faire de la POO avec WinDev, surtout depuis l'arrivée des propriétés (avec la version 15!).

    Tatayo.

  14. #14
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2016
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Merci à tous pour vos réponses.

    Une dernière question sur cette réflexion.
    Concernant la gestion de la BDD (Ajout, Suppressin, Modification, requêtage) comment procédé vous ?

    - Géré directement dans les classes ?
    - Géré dans une classe à part (exemple : table toto hérite de totobdd)
    - Géré dans une classe à part qui hérite d'une "super classe" (exemple totobdd (requêtes spécifique à la table) hérite de supertotobdd (qui comprendra des méthodes communes à toutes les tables (ajout, suppression, modification)

    Les deux derniers cas se rapproche d'un modéle "M-V-C" qu'on peut trouver sur d'autre plateforme.

    Merci de votre retour

  15. #15
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2010
    Messages : 283
    Points : 263
    Points
    263
    Par défaut
    Salut,

    Tout dépend à quel point tu veux de la réutilisabilité dans tes projets.

    Perso, je me suis fait un semi-framework que est partagé dans chaque gros projet. J'ai donc mes classes Serveur qui gère uniquement des traitements de serveur (La connexion, l'écriture, lecture, etc).


    Tu peux utiliser le modèle MVP "M-V-C" de windev qui te génère automatiquement (de mémoire) tout tes classes et vue depuis ton analyses. Tu as un exemple livrable dans Windev pour la compréhension du MVP.


    Bon dev,

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/03/2011, 02h38
  2. [AS2] Conseils pour une bonne utilisation de la POO
    Par guy2004 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 9
    Dernier message: 20/03/2006, 08h24
  3. [POO] Utilisation d'une classe dans une classe !
    Par Okinou dans le forum Langage
    Réponses: 3
    Dernier message: 16/02/2006, 14h34
  4. Réponses: 5
    Dernier message: 22/01/2006, 09h10
  5. [POO] Pourquoi utiliser les classes ?
    Par GregPeck dans le forum Langage
    Réponses: 7
    Dernier message: 16/12/2005, 15h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo