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

C++Builder Discussion :

Sondage- Builder VS Windev


Sujet :

C++Builder

  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Par défaut Sondage- Builder VS Windev
    Bonjour,

    Je viens de voir la nouvelle version de WINDEV 11 qui à l'air excellente pour développer des application portable (win, java, linux, pocket pc...) maniant très bien des bases de données.

    Apparement, on développe rapidement en tappant un minimum de ligne de code.

    Je m'adresse aux utilisateurs de BCB qui ont ou utilisent Windev. Pouvez-vous me donner votre avis à propos des avantages et inconvénient de windev par rapport à Builder ????

    Et pour quelles types applications windev est plus avantageux que builder, et vise et versa ??

    Merci et a bientôt.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 288
    Par défaut
    Windev s'adresse plutot aux non professionnels (de l'informatique) que CBuilder. On peut effectivement créer une application rapidement mais ce qui me géne avec Windev c'est cette approche super copier-coller (qu'ils appelent le RAD) et qui fait que rapidement les fiches vont devenir difficile à maintenir parceque justement l'amateur ne saura pas factoriser le code.
    Avec légérement plus d'implication on fait aussi bien (en terme de RAD) avec BCB.

    De plus l'ouverture vers Windows est très relative, ils annonçaient comme un grand progrès l'arrivée des sliders avec Windev 8, ne parlons pas des fenêtres flottantes et tout ce qui fait l'interêt de Windows.
    la capture de certains événements Windows impossible alors qu'il est inévitable de devoir customiser le comportement de certains composants.

    ils ont soit disant des objets histoire de dire sur leur plaquette commerciale (tout PCSoft) qu'ils font de l'objet. Mais il faut voir la pauvreté de leurs objets car impossibilité d'avoir accès à certaines propriétés des fenêtres ce qui limite l'interêt.
    Ce fait illustre tout Windev, une belle vitrine et pas grand chose dans le magasin. BCB est incomparablement plus riche et plus ouvert.

    On a l'impression d'un outil propriétaire dont PCSoft garde jalousement les portes dans le but de capter ses clients. Résultat un outil peu évolutif et qui sort une nouvelle version tous les 6 mois histoire que tu mette la main au porte-monaie.

    Je déconseille fortement sauf pour les amateurs qui veulent faire un petit applicatif perso.

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Par défaut
    Mais sur certains points Windev à l'air plus puissant par sa simplicité justement que BCB. Par exemple :

    - Créer une application multilingue
    - Gestion des skins de l'appli (aux yeux d'un client, l'apparence est primordiale)
    - Intègre sa propre gestion de bd permettant de créer des Modèles de Données (MCD)...
    - gestion des impressions, code barre, importation en excel, pdf...
    - développé une appli sur pda ou smartphone

    En fait, je me dis que BCB est puissant si on achète une gamme de composants souvent mal documenté

    Certes windev est orienté pour les "amateurs" mais peut-être que pour créer une application simple utilisant une bd (gestion de clientèle par ex.), le résultat sera plus efficace ?

    Enfin, je pose ici des questions car je n'ai jamais utilisé Windev, seulement parcouru le bla bla et j'ai été impressionné par les vidéos de présentations et les screenshot.

    On est d'accord, je suis convaincu que pour faire une application utilisant des ressources scientifiques, gestion de matériel, réseau... BCB est indispensable comparé à Windev.

    Merci pour vos commentaires.

    PS: de plus, j'ai rarement vu une offre d'emploi: cherche développeur BCB, tandis que j'en vois fréquemment pour Windev.

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 288
    Par défaut
    Puissant n'est pas le terme que j'emploierais avec Windev, je dirais limité.

    > En fait, je me dis que BCB est puissant si on achète une gamme de

    BCB est proche de Windows c'est ça sa puissance, dans chacun des domaines que tu cite il peux faire largement mieux que Windev parceque justement il n'est pas limité aux outils offerts par l'éditeur. Il est ouvert.

    Pour les offres d'emploi il faut comparer Delphi à Windev, pas BCB.
    Quelles sont les resources Windev disponibles sur le web ? Compare un peu.

    Leur base de données native est une pauvre base de type Paradox. Pas sérieux, pas sécurisé, bon pour l'entreprise de Papa et c'est tout.

    J'ai utilisé Windev, j'avoue y avoir été à reculons mais le résultat ne m'a pas impressioné du tout.

    Il y a une erreur a ne pas commetre c'est le temps gagné à dessiner une fenêtre avec le RAD et le temps global passé en développement et en maintenance.
    Je dessine ma base, je génére ma fenêtre et j'ai fini. C'est ça leur démo. Mais un projet ce n'est pas ça, c'est de la maintenance, ce sont des règles de gestions.
    Combien de temps ais-je passé à dessiner les fenêtres de mon appli ? 5% peut-être moins, ça ne compte pas beaucoup. C'est l'envirronnement qui est important.

    A ce sujet la technique courante (y compris ave cle RAD) consiste à dupliquer les régles de gestions dans toutes les fenêtres et te voila avec un truc impossible à maintenir. Si tu as 10 règles dans 15 écrans différents je te mets au défi de maintenir correctement ton appli, et le problème est exponentiel.
    On peut certes faire la même erreur avec BCB mais c'est une question de culture. Et avec les objets et l'hértitage le phénomène est forcément plus limité.

    Quid enfin du cout des mises à jour de licenses (fréquentes avec Windev) ?
    Bien plus cher que d'acheter des composants.

    Encore une fois, Oui. Pour une appli simple tu peut envisager une solution Windev, mais c'est vrai aussi avec BCB.
    Tu trouveras du job en tant que développeur Windev plus facilement, mais développeur Windev tu resteras et tu seras mal payé. Si c'est un language valorisant que tu cherche je te conseille vivement Java et alors le C++ est une très bonne école.

    Bon, tu auras compris que je suis résolument anti Windev. Surement pas très objectif, mais sauf à un amateur je ne conseillerais à personne de faire du Windev.

  5. #5
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    J'ai testé Windev 10 à une époque (pour des applications PDA) et voilà ce que je peux en dire :

    -assez simple d'utilisation (Visual C++ 6 est largement plus difficile à utiliser)
    -demande une grosse étude au niveau BDD pour éviter de tout devoir refaire
    -un certain manque de souplesse si on veut s'écarter du chemin tracé par le système d'étude auto
    -je n'ai pas testé l'intégration de code autre que le W-Language mais je ne suis pas sûr que ce soit vachement optimisé...
    -je trouve ça, sur un certain point, dans la même famille que 4D...
    -la musique pendant leur présentation était merd****

  6. #6
    Membre éclairé
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Par défaut
    Ok...

    Donc si je comprends ce que tu veux dire, c'est qu'on se laisse influencer par les possibilités de windev qui gère une gamme de composants prédéfinis mais non évolutifs (en tenant en compte que l'on peut faire des choses complexe sans écrire une seule ligne de code). Mais en tant que développeur, on sera vite confronté aux limites de ces composants.

    On perd du temps dans la conception de l'interface sous BCB ex: placer des scroll pour un grid, construction d'une fenêtre par rapport à une table (quelle perte de temps de créer une fenetre représentant une table - par exemple Client -, placer les opérations d'ajouts/suppression/modification sur cette fiche, tous les champs connectés à cette table)...

    En conclusion, Windev serait pratique si :
    - on ne saist pas programmer (ce n'est pas un mal)
    - on veut faire une application qui ne sera pas évolutive
    - une application simple sur divers plate-forme (ppc, mac...)
    - une application multilingue (gros plus plus de windev)

    Par contre, Windev serai limité :
    - pour une application faisant un traitement que je qualifierai "scientifique" (transformé de fourrier, manipulation de flux vidéo...)
    - une application évolutive, ou plutôt réutilisable (se serait possible mais plus compliqué qu'en utilisant BCB)
    - une application connecté à des périphériques simples ou complexes

    MAIS, si j'analyse ta phrase : comparons Delphi et Windev sur le marché du travail, BCB est donc un sous produit de Delphi ! Je veux dire par là, qu'il est préférable de programmer en Delphi qu'en C++.

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 288
    Par défaut
    > En conclusion, Windev serait pratique si :

    Oui, d'accord avec ta conclusion. Juste quelques remarques :

    - La conception des interfaces en BCB est très simple, parfois même plus simple que Windev. Un controle redimensionnable c'est Align=alClient en Windev il faut passer 1 à 2 minutes par controle.
    - j'ai traduit mon appli (mais pas avec les outils Borland et c'est hyper simple, crois-moi.
    - "une application évolutive, ou plutôt réutilisable". Ce n'est pas l'application qui n'est pas évolutive mais la façon de coder en interne qui rends les évolutions profondes délicates (car ce n'est pas objet et ont a tendance à faire du copier-coller, le RAD lui-même procède ainsi).
    En ce qui concerne l'évolutivité : ce que tu appelles les skins de Windev sont incompatibles avec les thèmes de XP, ne parlons pas Vista et donc l'appli prendra vite un look vieillot.

    > Je veux dire par là, qu'il est préférable de programmer en Delphi qu'en C++.

    Oui. L'avantage de BCB est qu'il permet d'intégrer des librairies et du code natif venant de Delphi et aussi d'autres compilateurs C/C++. C'est pour moi le compilateur le plus ouvert qui soit. Par contre il n'est pas très répandu, mais si tu sais faire du CBuilder, tu saura faire du Delphi il n'y a que la language qui change mais les objets de base sont les identiques.

  8. #8
    Membre éclairé
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Par défaut
    Merci de tes commentaires Yarp, ils répondent parfaitement à ce que j'attendais. Je ne débatterai pas plus longtemps sur ce sujet, de toute façon tes commentaires sont très complet et je ne connais pas windev.

    Je vais rester à ma version de BCB6 pour l'instant, et étudier Delphi 2005. En fait, même si je suis statisfait de BCB dans l'ensemble, je trouve que BCB6 commence à être démodé par rapport aux autres plates-formes (ce qui ne veut pas dire que les programmes le sont évidemment).

    Pour cette raison, mon choix est porté sur Borland 2006, Delphi 2005 et Windev 11. Je met aux oubliettes Windev et je verrai pour Builder VS Delphi .

    Merci encore de tes réponses Yarp.

    PS: comment as-tu traduit ton application, avec quels outils ???

  9. #9
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 288
    Par défaut
    Traduc perso: je me sert des Tags comme ID (la plupart des controles en ont) et j'ai des dlls de resources avec chaque string = ID (le hint==ID+1).
    Ainsi il me suffit de charger la dll de parcourir tous les controles d'une fenêtres et de remplacer le texte avec celui de l'ID dans la dll.
    Le code est léger : enumérer les controles, charger le string, changer les strings.
    J'ai les traducs dans Excel, un export Excel qui me génére le .RC de chaque language, je compile les dlls et voila.
    Le gros avantage par rapport aux solutions officielles est
    1° je controle
    2° pas de crash si une string manque - non mais !
    3° l'IDE n'écrase pas les ID alors qu'il ne se géne pas de saloper tes traductions pour un oui ou pour un non.

    En ce qui concerne l'obsolescence des compilateurs, je me pose la même question. Avec l'arrivée de Vista et d'un nouveau SDK pour Windows, si Borland ne suit pas BCB est condamné. C'est l'avenir ce C++ vs C# qui est en jeux. J'aime beaucoup le C++ et surtout je ne crois pas en la pérénnité des solutions Microsoft. Je pense aussi que avec le nouveau SDK C++ a encore sa chance.
    Aussi je vois une porte de sortie vers la WTL ou WxWidgets mais ce ne sont pas des librairies vendeurs sur le marché du travail (je fais des sharewares alors je m'en fiche un peu).

  10. #10
    Membre éclairé
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Par défaut
    Ainsi il me suffit de charger la dll de parcourir tous les controles d'une fenêtres et de remplacer le texte avec celui de l'ID dans la dll.
    Le code est léger : enumérer les controles, charger le string, changer les strings.
    Je passe du coq à l'âne, au dromadaire même... Mais tu peux me donner des précisions à ce niveau ??? Ta solution à l'air d'être excellente, mais tu ne sais pas à quel point tu viens de me découvrir qq chose qui va me changer la vie!

    Tu as quoi concrètement dans ta DLL ? (je n'ai jamais travaillé avec une dll).

    Je ne comprends pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    un export Excel qui me génére le .RC
    Si tu peux mettre un morceau de code, ce serait vraiment top!

  11. #11
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 288
    Par défaut
    Il s'agit de ce qu'on appel une dll de resource. Une telle dll ne contient que des resources (pas de code).
    Pour créer une dll de resource il faut un fichier resource. Le .res de BCB est un fichier de resource mais j'utilise Visual Studio pour mes dlls de resources (plus pratique que BCB pour ça) donc j'ai besoin d'un .RC qui contient la liste des resources. Je me sert de Excel pour générer ces resources (BCB sait compiler un .RC, pas de pb pour le faire aussi avec BCB):

    Dans Excel j'ai par exemple (3 colonnes)

    ID English French
    54 Open Ouvrir

    Quand j'ai besoin de mon .RC pour générer la dll french j'exporte à partir de Excel (c'est une macro) et ça me crée unfichier de resource avec:

    STRINGTABLE ...
    54 Ouvrir
    56 Fermer
    etc...

    Avec ce fichier de resource je peux compiler ma dll "MySoft.fra" (chaque langue a sa propre extension). Attention de ne pas donner à ta dll le nom de ton appli sinon l'exe va essayer de la charger automatiquement, donne lui un nom différent.

    Dans mon appli le Tag de mnFileOpen est 54.

    Le code est trop basic puisque c'est du pur API et simple API:
    LoadLibrary pour charger la dll
    LoadString pour charger la string de la dll
    FreeLibrary pour libérer la dll
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     if (LoadString(hDll, mnFileOpen->Tag, pszCaption, 128))
       mnFileOpen->Caption = pszCaption;
    Evidemment je n'appelle jamais les controles par leur nom, j'énumère les controles de la fenêtre.
    J'ai une fonction TranslateForm, TranslateMenu, TranslateToolbar qui chacune énumére leur contenu respectif. Voici par exemple la fonction qui traduit une form (sauf les Toolbars et Menu qui sont faits à part mais le principe est le même):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    void __fastcall TfrmMain::TranslateControl(HMODULE hMod, TWinControl* Control,
            char* pszCaption)
    {
      TControl *hChild;
     
      for (int nCnt=0; nCnt<Control->ControlCount; nCnt++) {
        hChild = Control->Controls[nCnt];
     
        if (hChild->Tag > 0) {
          if (::LoadString(hMod, hChild->Tag, pszCaption, 128)) { // TRA_LEN
            if (dynamic_cast<TLabel *>(hChild))
              dynamic_cast<TLabel *>(hChild)->Caption =
                AnsiString(pszCaption, strlen(pszCaption));
            else if (dynamic_cast<TCheckBox *>(hChild))
              dynamic_cast<TCheckBox *>(hChild)->Caption =
                AnsiString(pszCaption, strlen(pszCaption));
            else if (dynamic_cast<TGroupBox *>(hChild))
              dynamic_cast<TGroupBox *>(hChild)->Caption =
                AnsiString(pszCaption, strlen(pszCaption));
            else if (dynamic_cast<TRadioButton *>(hChild))
              dynamic_cast<TRadioButton *>(hChild)->Caption =
                AnsiString(pszCaption, strlen(pszCaption));
            else if (dynamic_cast<TTabSheet *>(hChild))
              dynamic_cast<TTabSheet *>(hChild)->Caption =
                AnsiString(pszCaption, strlen(pszCaption));
            else if (dynamic_cast<TButton *>(hChild))
              dynamic_cast<TButton *>(hChild)->Caption =
                AnsiString(pszCaption, strlen(pszCaption));
            else if (dynamic_cast<TForm *>(hChild))
              dynamic_cast<TForm *>(hChild)->Caption =
                AnsiString(pszCaption, strlen(pszCaption));
          }
          if (::LoadString(hMod, hChild->Tag+1, pszCaption, 128)) { // TRA_LEN
            hChild->Hint = AnsiString(pszCaption, strlen(pszCaption));
          }
        }
        if (dynamic_cast<TWinControl *>(hChild)) {
          if (dynamic_cast<TWinControl *>(hChild)->ControlCount)
            TranslateControl(hMod, dynamic_cast<TWinControl *>(hChild), pszCaption);
        }
      }
    }
    A mes traducteurs j'envoie le fichier Excel, je dois maintenir les Tags des controles en phase avec Excel c'est la seule contrainte non automatisée.

    yarp
    www.senosoft.com

  12. #12
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 288
    Par défaut
    Enfin le code du .RC de la dll de resource Italienne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    //Microsoft Developer Studio generated resource script.
    //
    #include "resource.h"
     
    #define APSTUDIO_READONLY_SYMBOLS
    /////////////////////////////////////////////////////////////////////////////
    //
    // Generated from the TEXTINCLUDE 2 resource.
    //
    #include "afxres.h"
     
    /////////////////////////////////////////////////////////////////////////////
    #undef APSTUDIO_READONLY_SYMBOLS
     
    /////////////////////////////////////////////////////////////////////////////
    // Italian (Italy) resources
     
    #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ITA)
    #ifdef _WIN32
    LANGUAGE LANG_ITALIAN, SUBLANG_ITALIAN
    #pragma code_page(1252)
    #endif //_WIN32
     
    /////////////////////////////////////////////////////////////////////////////
    //
    // String Table
    //
     
    STRINGTABLE DISCARDABLE
    BEGIN
    	1	"1.9"
    	2	"Italiano"
    	5	"Cancella"
    	7	"Termina"
    	9	"(vuoto)"
    	11	"&Chiudi"
    	101	"&File"
    	103	"&Apri"
    	104	"Apri|Apri un file"
    END
     
    #endif    // Italian (Italy) resources
    /////////////////////////////////////////////////////////////////////////////
     
     
     
    #ifndef APSTUDIO_INVOKED
    /////////////////////////////////////////////////////////////////////////////
    //
    // Generated from the TEXTINCLUDE 3 resource.
    //
     
     
    /////////////////////////////////////////////////////////////////////////////
    #endif    // not APSTUDIO_INVOKED
    Ouvrir c'est Apri in Italianno et ce n'étais pas 54 mais 103
    En 104 on remarque le Hint.

    Tiens, essaye de faire avec Windev : No esta possible !

    L'export Excel ne vient pas de moi mais d'un article sur la traduction d'application sur CodeProject (il y a longtemps). Cherche le là bas, je ne l'ai pas trouvé avec google.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. sondage sur Windev
    Par zenico64 dans le forum WinDev
    Réponses: 1
    Dernier message: 18/12/2013, 09h34
  2. Outils, cours et NOUVEAUX tutoriels pour Borland C++Builder
    Par hiko-seijuro dans le forum C++Builder
    Réponses: 10
    Dernier message: 12/03/2006, 22h33
  3. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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