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

Windows Forms Discussion :

Petits Programmes C#


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 17
    Points : 8
    Points
    8
    Par défaut Petits Programmes C#
    Bonjour / Bonsoir à tous.
    Je suis étudiant en BTS IRIS et je fais parfois des petits programmes, plus ou moins utiles.
    Je propose des les partager, librement, et vous demanderez de bien vouloir respecter les licenses gnu et copyright ... enfin vous connaissez la chanson !

    Et pourquoi pas aussi me donner des conseils sur des choses à modifier dans ces programmes !
    Calcul_imc_fenetre.zip

    Ce programme est destiné à calculer la masse corporelle des gens en fonctions de la taille, le poids et le sexe.

    Voilà j'attend des avis / réactions

  2. #2
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Bonjour, voici mes remarques et suggestions.

    Côté code :
    * Avant tout sépare la logique UI de la logique métier. Ici ça veut dire faire une fonction CalculIMC(int tailleEnMètres, int poidsEnKg, Genre genre) dans laquelle tu concentres la logique métier. D'abord ça fait un code plus maintenable et modulaire (si on fait des changements à l'UI pas besoin de changer la logique métier). Accessoirement ça fait aussi des fonctions plus lisibles, plus petites (fixe-toi une limite de dix lignes - si, si, fais-moi confiance), ne faisant qu'une chose chacune. Enfin ça fait une logique métier facilement testable et tu devrais prendre l'habitude d'ajouter des tests voire de toujours commencer par les tests.

    * Note qu'en général on cherche carrément à séparer les classes et même les fichiers mais pour le coup il serait un peu ridicule d'avoir une classe contenant une seule méthode, a fortiori dans un fichier à part.

    * Tu dois gérer les cas erronés, quand le poids et la taille ne sont pas correctement saisis. Pour l'instant l'application plante.

    * N'inclus pas toute la licence, ça gêne la lecture même si elle est en bas (ta licence occupe les deux tiers de l’ascenseur à droite). Inclus simplement une seule ligne en haut donnant le nom et la version de la licence et indiquant que celle-ci est jointe dans un fichier à part que tu ajouteras à la solution.

    * Winforms est simple et c'est l'essentiel pour toi pour l'instant. Mais à terme c'est une solution mourante et il vaudra mieux lui préférer WPF ou Html 5. Garde Winforms pour l'instant pour te concentrer sur ce qui importe mais n'investis pas trop dans son apprentissage.


    Côté UI :
    * Initialise ton formulaire avec des valeurs par défaut : l'utilisateur comprendra plus facilement le rôle de chaque élément et dans certains cas ça lui fait gagner du temps (le genre par défaut est valide pour 50% des utilisateur). Tu n'as qu'à ajouter des labels "kg" et "mètres" à côté des boîtes concernées.

    * Vire le bouton et met à jour au fil de la frappe de l'utilisateur. Rend visible les erreurs.

    * La boîte du résultat devrait être en lecture seule (propriété ReadOnly), les boutons radios devraient avoir un choix par défaut et être navigables via la touche tab.

    * En parlant de la navigation au clavier, les champs en lecture-seule n'ont besoin d'être visités que pour les aveugles et mal-voyants, pour les autres c'est une gêne. Quand c'est possible on cherchera donc à les rendre non-navigables en plaçant une description invisible ailleurs qui sera lue par la synthèse vocale pour les aveugles (proprioétés Name, AccessibileDescription, etc). Par exemple sur le champ du poids on rendra non-navigable le label "kilos" que j'ai suggéré et on placera une description "poids en kilos" sur le champ lui-même. Les voyants verront le premier mais pas le second, les non-voyants entendront le second mais pas le premier. Au passage, note qu'en plus des aveugles il existe des personnes qui peuvent lire mais seulement si ton appli respecte les jeux de couleurs systèmes à fort contraste (noir sur blanc ou blanc sur noir, selon le handicap). C'est automatiquement le cas par défaut mais gare si tu cherches à personnaliser l'apparence de ton appli, bien que parfois ignorer ces utilisateurs soit un choix conscient.



    Ça fait beaucoup de critiques. Que ça ne te décourage surtout pas : la conception logicielle est un art difficile, son apprentissage est long et il faut bien débuter un jour. Sois fier de ce que tu parviens déjà à réaliser et profite de ton voyage sur ces nouvelles terres que tu abordes.

  3. #3
    Membre chevronné
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 641
    Points : 2 154
    Points
    2 154
    Par défaut
    Citation Envoyé par DonQuiche Voir le message

    * Winforms est simple et c'est l'essentiel pour toi pour l'instant. Mais à terme c'est une solution mourante et il vaudra mieux lui préférer WPF ou Html 5. Garde Winforms pour l'instant pour te concentrer sur ce qui importe mais n'investis pas trop dans son apprentissage.
    Sources / Liens ? J'ai vu très souvent des technologies que tout le monde allait voir mourir mais la je pense que Winforms a de belles années devant lui encore.WPF a du mal a décoller , alors que c'est très séduisant.Pour le HTML5 je suis d'accord , mais c'est l'avenir en général , donc ça vaut le coup de l'apprendre quoi qu'il arrive.


    Sinon en critiques j'aurai :

    - Prends l'habitude de nommer tes contrôles. Un petit programme c'est bien , mais quand tu devrais traiter TextBox84 , je pense que tu aura quelque soucis a savoir ce que c'est.
    - Il y a des fonctions générées par Visual Studio que tu n'as pas enlevées (tous les TextChanged)
    - Evite les variables inutiles du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                taille2 = textBox2.Text;
                taille = Convert.ToDouble(taille2);
    Autant faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    taille = Convert.ToDouble(textBox2.Text);
    La pareil , ça ne parait pas important mais , autant prendre de bonnes habitudes dès le début .

    Pour le reste , DonQuiche a préciser la plupart des points qui ne vont pas.

    En conseil je te dirai de lire quelques codes sources d'autre développeurs , pour voir comment on structure un projet Winforms , et je dirais pareil que DonQuiche, ne te décourage pas , et code , quoi qu'il arrive , c'est en forgeant qu'on deviens forgeron.

  4. #4
    Membre chevronné Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    1 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 937
    Points : 2 018
    Points
    2 018
    Par défaut
    Bonjour

    Les conseils en réponse sont intéressants pour moi aussi ! merci

    Par contre je rebondis sur l'histoire du winforms WPF et HTML5.
    Le WPF je ne connais pas du tout mais le HTML (5 ou pas) j'utilise très régulièrement pour mes sites internet... il est où le rapport avec un winforms ?? A mes yeux c'est aussi comparable qu'un paquet de carotte avec une voiture bleue...
    J'espère que ça ne sous entends pas que tout "doit" demain être sous forme d'application web avec les cloud et compagnie. Déjà que la centralisation, le "cloud", présente à mes yeux de gros non sens ( consommation d’énergie, sécurité des données, criticité accordée au support physique de communication...) injustifiés dans beaucoup de cas, il n'en reste pas moins que beaucoup d'applications métiers ou personnelles ont et auront toujours besoin d'application de type winform, ergonomiques, accessibles sans connexion etc etc.
    Ça me file des frissons dans le dos cette nouvelle !
    Il y a 10 sortes de personnes dans le monde : ceux qui comprennent le binaire et les autres

  5. #5
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Citation Envoyé par PixelJuice Voir le message
    Sources / Liens ? J'ai vu très souvent des technologies que tout le monde allait voir mourir mais la je pense que Winforms a de belles années devant lui encore.WPF a du mal a décoller , alors que c'est très séduisant.
    Les dernières additions à WinForms de la part de MS datent d'une décennie et cette techno n'est pas disponible sous Windows Store, contrairement à WPF, ce qui est donc fâcheux pour du développement multi-facteurs de forme, et pour l'avenir vu que MS se concentre sur ce nouveau jeu d'API Windows Store qui sera demain utilisé partout, de l'embarqué à la XBox en passant par le nuage, les téléphones et les PC et formera le nouveau coeur de la plateforme Windows.

    Donc WinForms ne va disparaître de sitôt, il a encore son utilité notamment pour la grosse appli LOB faîte en RAD, mais il est en perte de vitesse et ressemblera demain à ce à quoi ressemble une appli Windows 3.11 : un alien issu du passé.


    Citation Envoyé par petitours Voir le message
    Le WPF je ne connais pas du tout mais le HTML (5 ou pas) j'utilise très régulièrement pour mes sites internet... il est où le rapport avec un winforms ?? A mes yeux c'est aussi comparable qu'un paquet de carotte avec une voiture bleue...
    Html, WinForms et WPF sont trois technologies dédiées à la mise en page de l'UI, tout simplement. Et d'ailleurs si tu fais des applis Windows Store, tu peux choisir d'utiliser Html ou Xaml (WPF), avec des extensions spécifiques à Windows Store dans les deux cas. Et je parle bien là d'applis hors-ligne tout aussi ergonomiques que les autres.

  6. #6
    Membre chevronné Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    1 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 937
    Points : 2 018
    Points
    2 018
    Par défaut
    Mais on est bien d'accord que HTML c'est ce langage interprété (plus ou moins très mal) par un navigateur web, non ?
    On est quand même à des années lumières de l'ergonomie d'un contrôle précis et dédié que l'on utilise dans les winform il me semble. Non seulement ça rajoute une couche pour l'IHM mais en plus c'est une couche archi pas performante (à coder comme en performance réelle) et surtout pas robuste du tout. Quiconque a fait de l'internet et donc du HTML a maudit internet explorer tous les jours et les autres régulièrement à cause d'un truc qui ne s'affiche pas correctement !
    Surcouche logicielles en surcouches logicielles, un petit nuage par ci par là... c'est comme pour windows 8 si je comprends bien : on change, on alourdi, on donne des joli nom, et...on régresse en ergonomie et productivité avec une machine plus puissante et consommatrice d'énergie qui est connectée à 10 serveurs pour juste leur demander la date du jour.

    Sans déconner, HTML, j'aurais jamais imaginé qu'on puisse utiliser ça pour l'interface d'une application ! J'imagine bien le SAV "bonjour monsieur, je ne trouve pas le bouton TRUC qui lance le MACHIN ?" "c'est le troisième carré en partant de la gauche, celui qui a une ombre dessous" "mais je comprends pas je n'ai que 2 carrés et aucun a des ombres..." " A tient maintenant j'ai une erreur 404" lol

    Moi qui investi beaucoup de temps sur .NET windowsform en ce moment ça me fait super peur tout ça !
    Il faut que je m'intéresse à WPF pour évoluer moins dangereusement ?

    Ca me secoue mais c'est surement une bonne chose d'anticiper où on doit aller...

    Merci
    Il y a 10 sortes de personnes dans le monde : ceux qui comprennent le binaire et les autres

  7. #7
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Citation Envoyé par petitours Voir le message
    Mais on est bien d'accord que HTML c'est ce langage interprété (plus ou moins très mal) par un navigateur web, non ?
    On est quand même à des années lumières de l'ergonomie d'un contrôle précis et dédié que l'on utilise dans les winform il me semble. Non seulement ça rajoute une couche pour l'IHM mais en plus c'est une couche archi pas performante (à coder comme en performance réelle) et surtout pas robuste du tout.
    Je ne suis pas fan de html mais pour faire une UI non-standard comme on en rencontre sur tous les sites web avec WinForms tu pourrais toujours t'accrocher, ce serait une vraie galère. Sans parler du fait que la mise en page est naturellement plus souple que ce qu'on a avec WinForms, un facteur important pour s'adapter à de multiples facteurs de forme. Alors html n'est certainement pas la panacée, après tout il date et n'a pas du tout été prévu pour tout ça (à l'origine il était dans l'optique d'une mise en page totalement automatisée à la wikisyntax). Néanmoins sur le contrôle de l'apparence il est beaucoup plus riche que WinForms (et il l'est beaucoup moins sur le contrôle des entrées par exemple). Pour ma part je regarde ces deux technos comme trop spécialisées et datées (même si html5 améliore beaucoup les choses).

    WPF en revanche est un troisième modèle plus moderne qui se rapproche davantage de l'idéal qu'on peut rechercher, même s'il souffre de plusieurs erreurs initiales (verbosité notamment, difficulté à modifier radicalement la mise en page selon la taille d'écran, etc). Son principal apport est qu'il systématise la liaison de données (qui devient la fondation de l'architecture) et qu'il découple la logique des contrôles de leur apparence (un bouton n'a aucune apparence intrinsèque, seulement une apparence par défaut très facile à substituer). Honnêtement c'est une techno difficile à aborder, qu'il faut coder à la main plutôt que par le biais d'un éditeur, aussi plaisante que casse-....

    Enfin, comme je l'ai dit, WinForms a encore de longues années devant lui. Mais c'est une techno sur le déclin. Ne panique pas mais ne t'endors pas non plus.

Discussions similaires

  1. petit programme
    Par vmitz73 dans le forum C++
    Réponses: 4
    Dernier message: 07/12/2005, 11h05
  2. [LG] Recherche de petits programmes Pascal
    Par Sid ali dans le forum Langage
    Réponses: 1
    Dernier message: 24/11/2005, 14h03
  3. aide petit programme pour débutant
    Par kartp0rqx dans le forum C
    Réponses: 16
    Dernier message: 14/10/2005, 19h31
  4. Faisabilité d'un petit programme FTP...
    Par ptit_seb dans le forum Windows
    Réponses: 2
    Dernier message: 15/09/2005, 21h10
  5. [SRC] Petit programme avec BD
    Par Nico62 dans le forum C++Builder
    Réponses: 3
    Dernier message: 10/01/2005, 20h07

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