Microsoft a des directives de dénomination sur son site Web ( ici ). J'ai aussi le livre Framework Design Guidelines.
Ce que je n'ai pas pu trouver, c'était une ligne directrice sur les noms des contrôles.
Par exemple, un bouton, lorsqu'il est déposé dans un formulaire, obtient le nom de type + le numéro, avec un chameau comme nom par défaut, tel que "bouton1".
Voici ce que je fais: je supprime le numéro et ajoute une description significative après. Par exemple, "buttonDelete" ou "buttonSave".
De cette façon, vous n'avez pas à maintenir une grande liste de contrôles et leurs noms abrégés dans une directive quelque part.
Êtes-vous d'accord?
Je n'ai pas de convention en tant que telle, mais j'essaie d'être très large avec la partie "type" du nom. par exemple. Le bouton, le bouton de lien et le bouton d'image ont tendance à être nommés "quelque chose de bouton". Les zones de liste déroulante, les listes de boutons radio finissent toutes par "quelque chose de sélecteur". Les TextBoxes et les Calendriers sont "quelque chose d'Input". De cette façon, j'ai une idée approximative de ce type de contrôle sans que le nom soit lié à la mise en œuvre réelle. Si je décide de remplacer un groupe de boutons d'option par une liste déroulante, pas besoin de renommer!
Avertissement: Ce qui suit s'adresse davantage à WinForm/WPF développement. Patrick Peters a souligné à juste titre qu'il y a des problèmes de bande passante/performances en jeu lors du traitement des contrôles ASP.NET.
Il n'y a pas vraiment de standard ici, et je pense que c'est parce que c'est l'un des plus scénarios de nommage arbitraires. Dans la plupart des cas, les contrôles sont privés pour la classe et ne sont utilisés qu'à la légère dans les gestionnaires d'événements.
Comme d'autres répondeurs, moi aussi tilisé pour passer un temps non négligeable à "fixer" les noms de contrôle. Je faisais des choses comme "btnSave", "tbxName" (tbx pour TextBox), etc. Cependant, en expliquant mon schéma à quelqu'un d'autre, j'ai réalisé à quel point c'était arbitraire. "Cbx" est-il une zone de liste déroulante ou une case à cocher?
Cela m'a amené à réexaminer ce que le concepteur fait automatiquement et à réaliser que je peux nommer les contrôles de manière claire, cohérente et rapide si je laisse le concepteur faire le travail. C'est en fait très similaire à la suggestion de l'affiche de la question:
Je remplace le numéro de contrôle par la sémantique du contrôle. Ainsi, "button1" (le concepteur par défaut) sera "buttonSave" et "listBox3" deviendra "listBoxWidgets". S'il n'y aura qu'un seul contrôle de ce type, je supprime simplement le nombre: "errorProvider1" devient "errorProvider".
Alors, comment est-ce mieux?
PS. Cela tend vers une question Bikeshed, mais comme je peux peindre un Bikeshed, je suis allé de l'avant et j'ai rejoint la discussion. ;)
Voici quelques exemples courants:
frm Form
mnu Form menu
cmd Command button
chk Check button
opt Radio button
lbl Text label
txt Text edit box
pb Picture box
pic Picture
lst List box
cbo Combo box
tmr Timer
Une liste plus longue se trouve à INFO: Conventions de dénomination des notations hongroises d'objets pour VB.
Je ne fais pas WinForms depuis un certain temps, mais ce que j'ai fait, c'est deux choses.
Fondamentalement, la plupart du temps, je ne créais pas du tout de bouton pour enregistrer. (Si vous avez une logique de sauvegarde, vous ne pouvez toujours avoir que le gestionnaire d'événements OnSaving abonné à l'événement Click du bouton).
https://msdn.Microsoft.com/en-us/library/ms233630 (v = vs.110) .aspx
Oui, changez ces noms
Pour moi:
Button btnDescription
TextBox txtDescription
ComboBox cboDescription
etc...
La programmation de l'interface graphique obtient le bâton court quand il s'agit de conventions de toutes sortes. Voir mon réponse à une autre question pour les directives que j'utilise pour nommer.
Je suis probablement l'une des dernières personnes à utiliser encore la notation hongroise. Je connais cet argument que le IDE peut vous dire le type de variable, mais cela ne m'aide pas lorsque je code dans Notepad ++ ou que je regarde une impression ... de toute façon, j'utilise les "btnSave", "cbOptions", "txtFirstName", "lblTitle", "ddlCardType", etc ... j'aime juste pouvoir jeter un coup d'œil au code et savoir ce que je regarde sans chercher une déclaration ou survoler une variable pour obtenir son type de données depuis l'IDE.
Oui, vous avez besoin d'identifiants significatifs pour toute variable - contrôle ou non - les noms par défaut sont uniquement parce que votre IDE ne sait rien de votre domaine problématique et ne peut donc pas toujours `` deviner '' un meilleur nom).
Oui, je suis totalement d'accord (mais je le renomme en ButtonDelete), donc les noms en minuscules sont pour les variables dans mon cas :)
Personnellement, je pense que tant que vous êtes cohérent, vous ne rencontrerez pas de problèmes même si quelqu'un d'autre lit votre code.
Je ne suis pas sûr, mais je pense que le nommage des contrôles dans Windows Forms est l'un des seuls endroits où je peux voir une utilisation pour notation hongroise . Je pense donc que vous êtes bon.
Je pense que la pensée actuelle désapprouve l'inclusion du type de contrôle dans le nom. Je serais enclin à les traiter comme un autre objet que j'utilise et à suivre la même convention de dénomination.
Utilisez certainement une dénomination significative, cela va sans dire :) Cependant, à la fin de la journée, si votre convention de dénomination a toujours un sens pour vous lorsque vous revisitez votre code des mois plus tard, je m'en tiendrai probablement à cela.