70 votes

Meilleures pratiques pour les conventions de nommage des interfaces graphiques C #?

Les interfaces graphiques, qu'il soit écrit en WinForms ou XAML, semblent avoir le plus largement différentes conventions de nommage entre les projets que je vois. Pour un simple TextBox pour le nom d'une personne, j'ai vu plusieurs conventions de nommage:

TextBox tbName      // Hungarian notation
TextBox txtName     // Alternative Hungarian
TextBox NameTextBox // Not even camelCase
TextBox nameTextBox // Field after field with TextBox on the end
TextBox TextBoxName // Suggested in an answer...
TextBox textBoxName // Suggested in an answer...
TextBox name        // Deceptive since you need name.Text to get the real value
TextBox textBox1    // Default name, as bad as you can get

J'ai respecter les StyleCop règles pour tous mes .cs normalement des fichiers, et de voir les autres le faire aussi bien, mais l'interface graphique tend à briser ces règles ou varient énormément. Je n'ai pas vu les lignes directrices de Microsoft qui spécifiquement référence à des éléments d'interface au lieu de simplement les variables normales, ou même des exemples qui s'appliquerait à l'extérieur d'une application console.

Quelles sont les meilleures pratiques pour la désignation des éléments dans une interface graphique?

81voto

Neil N Points 14566

J'utilise la vieille école hongroise... txt pour la zone de texte, btn pour le Bouton, suivi par une généralisé mot, puis un mot plus précis. c'est à dire:

btnUserEmail

Nous avons eu beaucoup de gens disent des choses comme "omg c'est tellement vieux, VB6 appel!" Mais dans une INTERFACE utilisateur Riche winforms app, je peux trouver et de modifier les choses plus rapidement, car généralement la première chose que vous savez au sujet d'un contrôle est-il du type, alors il est de la catégorie, puis obtenir spécifique. Bien que le nouveau style de la convention de nommage de gars sont coincé à essayer de se rappeler ce qu'ils ont nommé cette zone de texte.

31voto

Lee Points 6659

J'utilise:

 TextBox nameTextBox;
 

Tout comme j'utiliserais:

 MailAddress homeAddress;
 

La raison en est que, dans ces cas, "TextBox" et "Address" décrivent ce que représente l'objet, et non pas comment il est stocké ou utilisé. Mais dans un autre cas, comme stocker le nom complet d'une personne, j'utiliserais:

 string fullName;
 

Ne pas:

 string fullNameString;
 

Parce que "String" ne décrit pas ce que représente l'objet, mais seulement comment il est stocké.

12voto

Christian Hayter Points 17999

Même convention que tout le reste dans .NET: nom descriptif de cas de chameau uniquement, éventuellement suivi d'un suffixe si vous devez distinguer différentes classes pour la même "chose" logique. Par exemple:

 string name; // a name
TextBox nameText; // the control used to edit the name
Label nameLabel; // the control used to label the edit control
List<string> nameList; // a list of names
 

et ainsi de suite ad infinitum. Peu importe la nature des suffixes tant qu'ils sont cohérents et descriptifs.

10voto

Brandon Points 401

Ce n'est pas mon invention, mais je l'aime bien:

 TextBox uxName = new TextBox();
Label uxNameLabel = new Label();
Button uxAccept = new Button();
 

Je préfère cela à la notation hongroise car tous mes contrôles d’interface utilisateur apparaissent dans un bloc dans intelisense. UX pour "User eXperience". C'est également pratique si vous changez un contrôle d'une zone de texte en une liste déroulante ou quelque chose du genre, car le nom ne changera pas.

3voto

Andrew Hare Points 159332

La chose la plus importante à propos des conventions de nommage est de choisir quelque chose qui a du sens, d’obtenir un consensus de toutes les parties et de vous y tenir comme si votre vie en dépendait.

Quant à la convention à utiliser, je voterais pour celle-ci:

 TextBox name
 

Il est court et a une valeur sémantique comme identifiant. Pour ce qui est du type d’identificateur, je me fierais à Visual Studio pour vous dire qu’il a tendance à être bon pour ce genre de chose.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X