Angepinnt Grundlagen: Benennung von Controls (Update: 24.10.2010)

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Grundlagen: Benennung von Controls (Update: 24.10.2010)

    Hallo,

    Da ich in letzter Zeit oftmals Neulinge darauf hinweisen muss*, ihren Controls Namen zu geben,
    hier mal meine "Nomenklatur"

    Hinweis: Dieser Thread steht bewusst unter "Grundlagen", damit Neulinge ihn dort finden.
    Man könnte Analog dazu den Thread [VB.NET] Beispiele für guten und schlechten Code (Stil) im Hauptforum sehen.

    An dieser Stelle möchte ich nochmal darauf hinweisen, dass Fragethreads mit dem Titel "Frage" auch in "Ziegelstein" umbenannt werden könnten (meistens ist der Thread dann genauso aufschllussreich).
    Als Anleitung zur richtigen Lösungsfindung hat der User Auvid folgenden Link gepostet:
    Smart Questions
    Bitte liest ihn euch (bis zum Ende) durch und nehmt es euch zu Herzen. Das erhöht die Qualität des Forums, die Effektivität der Suchfunktion und beschleunigt die Beantwortung einer Frage, da sich dann Leue, die sich mit dem Thema gut auskennen eher in eure Topic verirren, als wenn sie "Frage" "Problem" o.ä. heißt.
    Wenn ihr eine Fehlermeldung habt, guckt am Besten ersteinmal in der MSDNnach, was diese bedeutet. In letzter not könnt ihr wenigstens noch den Namen der Fehlermeldung in die Überschrift schreiben.

    Nun aber mal los:

    1.How to
    Alle, die es wissen können diesen Schritt überspringen. Es geht um die Benennung von Controls.
    Hierzu klicken wir das Control im Designer an (Einfacher Linksklick). Nun erscheit im Eigenschaften-Dialog** (i.d.R. rechts unten) eine Liste der Eigenschaften. Sollte der Eigenschaften-Dialog nicht angezeigt sein, so drückt ihr F4 oder View->Properties Window. Sollte dies nicht der Fall sein, so vergewissert euch, dass ihr dort den "Properties"-Knopf gedrückt habt (Links von den "Events" - dem Blitz). Nun scrollt ich nach ganz oben ins Feld "(name)". Dort könnt ihr die Namen dann eingeben und sie werden automatisch in Code geändert. Sollten Fehler auftauchen, so kann es sein, dass dies nicht erfolgte und ihr die Namen im Code (-Replace-) auch noch ersetzen müsst.



    2.Dateien
    Ich benutze generell ein Kleinbuchstaben-Tripel-Prefix für Controls und Dateien

    Klassen: cls (Class)
    Module etc.: vb (Visual Basic)
    Formulare: frm (Form)
    Startformular: frmMain
    Splash-screen: frmSplash

    3.Controls

    Button: cmd (Command)
    TextBox: txt (Text)
    MaskedTextBox: mtb
    RichTextBox: rtb
    ComboBox: cmb
    ListBox: lst (List)
    ListView: lv
    TabControl: tc
    TabPage: tp
    ProgressBar: prg
    Label: lbl
    CheckBox: chk
    PictureBox: img (Image)
    RadioButton: opt (Option)
    TreeView: tv

    4. Menüs

    Hier bewaht sich die Struktur wieder, Prefix mnu:

    mnuMain -> MenuStrip
    mnuFile -> Datei
    mnuFileOpen -> Datei - Öffnen
    mnuFileSaveAs -> Datei - Speichern unter...

    5. Klassen-Dateien (danke für die Nachfrage an vb-paradise.de/user/7790-yaph1l/)

    Hier stehen meist mehrere Klassen mit Grossbuchstaben am Anfang in einem Namespace.
    Die Datei hat noch das cls-Prefix, damit Klar ist, dass es sich um eine Sammlung von Klassen handelt.
    Variablen-Deklarationen sind Geordnet:
    Public (Globale)
    Private (Lokale)
    Properties (Globale)
    Properties (Lokale)

    Darauf folgen die Methoden (Nomenklatur wie bei Globalen Variablen (auch für lokale Subs/ Functions):
    Initialisierer (MyBase.Load, New etc.)
    Functions
    Subs

    Dabei haben Lokale Variablen (-> Dim, Private) und Properties (-> Private Property) einen Kleinbuchstaben voran und Globale einen Grossbuchstaben.

    Beispiel:

    clsXmlAssistant.vb

    VB.NET-Quellcode

    1. Namespace XmlAssist
    2. Public Class XmlParser
    3. Public PBlaTestWort1Mal2 As String
    4. Dim pA As Integer
    5. Public Property VarA() As Integer
    6. Get
    7. Return pA
    8. End Get
    9. Set (value As Integer)
    10. pA = value Mod 1000000 'Wert auf Max. 6 Stellen
    11. End Set
    12. End Property
    13. 'Code
    14. End Class
    15. Public Class XmlNodeInfo
    16. 'Code
    17. End Class
    18. End Namespace


    6. Variablen

    Variblen (Werte) haben Namen, die aus einem oder mehreren Wörter bestehen.
    Dabei haben die Wörter den ersten Buchstaben groß, es sei denn, es handelt sich um das erste Wort einer Lokalen Variable:

    Lokale

    lokaleVarible
    test
    temp
    alphaBetaGamma

    Globale

    GlobaleVariable
    Test
    AnzeigeText
    AlphaBetaGammaDelta

    7. VB Einstellungen (Options)
    Options sind Compiler-Optionen, die euch vor allem auf unsauberen Code hinweisen.
    So stellt man sie sich Automatisch ein:

    1. Tools->Options

    2. Geht auf (Projects and Solutions->VB Defaults) ***
    Solltet ihr es nicht sehen, markiert "Show all Settings"
    Und vergewissert euch, dass folgende Häkchen gesetzt sind:


    8. Abschießendes
    Anregungen, Ergänzungen, Kritik, Pinnen (;)) sind gern gesehen.

    -Randnotizen-

    *Dies ist kein Ausdruck irgendeiner Pflicht a là
    Da bist da um uns zu helfen

    sondern mein Bedürftins, möglichst leserlichen Code in diesem Forum zu verbreiten.
    **Ein Screenshot ist zur Identifikation angeheftet.
    ***Könnte mir hier Jemand den Duetschen Menünamen / Einstellungsnamen nennen? Danke im Voraus

    Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von „FAtheone“ () aus folgendem Grund: Neuer Abschnitt: VB-Einstellungen + Screenshots

    Irgendwie finde ich das mit den Dateien komisch, da du damit gegen die Regel "Klassen werden groß geschrieben" verstößt.
    Wie sähe das .NET Framework denn sonst aus:

    VB.NET-Quellcode

    1. clsConsole.WriteLine("Bla")
    2. clsWebRequest req = clsHttpWebRequest.Create(...)
    3. Dim btn As New clsButton
    4. ' usw...

    Oder heißen nur deine Dateien so?
    Ansonsten finde ich es sehr gelungen, auch wenn ich für Controls die Postfixnotaion bevorzuge.

    Viele Grüße, Phil.
    Also ich benenne nur die Dateien so, damit man sieht was es für eine Datie ist, da man Klassen ja auch gerne mal in andere Projekte kopiert und da will man ja wissen welches eine Klasse ist, der Name der Klasse ist groß geschrieben und Sinnvoll gewählt.
    Es steht ja unter Dateien ;)
    Ich benenne diese auch nur so.
    Beispiel:


    clsXmlAssistant.vb

    VB.NET-Quellcode

    1. Namespace AXml
    2. 'Klassen etc.
    3. End Namespace


    -> VB-Datei bezeichnet sich selbst als Klasse, im Code bleibt die Übersicht aka "Wo wurde das definiert"
    Ich hbae in VB-Dateien meist mehrere Klassen zu einer Funktionalität.


    Ich füge das noch hinzu.

    EDIT:
    Fertig.

    EDIT2:
    Habe ich noch i.welche Sachen / Controls vergessen?

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „FAtheone“ ()

    MAANTECH schrieb:

    Kann man fürn Button auch btn schreiben, da Command ja noch aus vb6 Zeiten stammt, oder?

    mfg MAANtech

    Nein das darfst du nicht tun !!!


    lol na klar, das sind Richtlinien keine Pflicht, du kannst deine Controls auch anders benennen. Der Sinn dahinter ist eben, willst du auf einen Button oder so zugreifen tippst du im Code "btn" oder "cmd" und schon werden in der Liste alle Buttons aufgelistet die du hast, ansonsten müsstest dir immer alle Namen der Buttons merken.
    Ich hoffe, ich darf zu diesem alten Thread noch was hinzufügen.
    Hier im Forum sollte bezüglich der Benennung von Controls eine Ausnahme gelten.
    Da war in einem Thread eine Form mit 24 Labels, die alle einen klugen und inhaltsbezogenen Namen hatten. lblAnzahlStufen, lblGeldZumEinkaufen usw.
    Ich wollte das Problem mal fix nachvollziehen und hatte eine Weile damit zu tun, die Namen dieser Labels abzugleichen.
    Wenn Probleme vorliegen und in Forms kommen viele Controls vor, sollten diese die Systemnamen haben, damit der Helfende seine Zeit zum Helfen verwenden kann und nicht zum Umbenennen verwenden muss. :thumbup:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    VB-Fragen über PN / Konversation werden ignoriert!