• 0

.NET Controls naming convention


Question

Hello, I am new to .NET programming. There is a set of naming convention in Java, for example, methodName for method name, CONTNT for constants. I want to know if there is also a set of naming conventions for .NET controls, such as textbox, labels, data grid...etc?

Thank you very much! :)

Link to comment
https://www.neowin.net/forum/topic/785788-net-controls-naming-convention/
Share on other sites

Recommended Posts

  • 0

One reason for the hungarian notiation is that we humans are visual atuned. We recognize patterns quite easily. Having a three char prefix allows developers to on sight know the object type.

I use a dirivative of the hungarian that uses a single char prefix for variables, two char prefix for database objects and three char prefix for objects (UI and other) This allows me to very quicky understand what is going on without having to run the code (to see var types) or look at the declaration.

Yes, there are some issues with this such as changing the variable type and then insuring that the prefix is changed everywhere. (That can suck) but I do not believe that it's such large bagage. I am currently working on a JavaScript site that was written with no patterns what-so-ever. It's a horrible way to work.

There is single good answer (drat) so what I often tell beginners and jr devs is to find a pattern and a logic that works for them. Don't simply use a pattern because others say it's good. (Which seems the reason for this post in the first place) and learn to adapt to new patterns and logic as they are put in front of you.

  • 0

Here's a good article about the merits of Hungarian notation and addresses some of the concerns that people have over it.

The use of this sort of notation has been the subject of debate for many years, so people's positions on this tend to be rather dug in. But I should note that a lot of the backlash against Hungarian notation originated from how it was initially used at Microsoft. For example, a lot of the earlier Windows APIs would use "dwSize" to denote the size of an object (systems Hungarian). But all that it told you was that it was a 32-bit uint, which, in most cases, was useless information. And worse, if the type changes, then the name becomes obsolete. lParam and wParam used to make sense in Win16, but wParam became a misnomer when it was promoted to 32 bits in Win32, and both became a misnomer when they were both promoted to 64 bits for Win64. Whereas the newer APIs will use cbSize (count, in bytes, of the size). The cb prefix (an apps Hungarian prefix) is extremely useful (especially in situations where you dealing with raw memory (using bytes) and strings (using characters, which is 2 bytes each in UCS-2)). "f" for "flag" is also useful, and differentiating between "I" and "C" for interface and class is essential for reading COM without getting a headache.

So a lot of it depends on how you use the notation, and just like comments, you can use it in a useful way or in a dumb way. I personally think that had the Windows API used the notation in a more "apps"-oriented manner that there would not have been this historical distaste for it and that there would be more consensus today over its usefulness. The larger and more complex the project (in which you will have other people who are not familiar with the code reading it and in which you are more likely to not remember the details of the code when you return to it), the greater the payoff to Hungarian.

Edited by kliu0x52
  • 0
  The_Decryptor said:
lblLabelName, txtTextBoxName, etc.

I picked it up when using VB6 and now I can't stop using that format with anything I do.

I also use Hungarian Notation. An especially unintuitive method is using names like FirstName or FirstNameTextBox. If I know there's a textbox for the first name, my first guess is going to be txtFirstName, but intellisense will kick in after txt listing all textboxes etc.

  • 0
  GraphiteCube said:
Thanks for replies, but... Have Microsoft published a set of recommendations/ suggestions/ standards on naming convention? Or at least a well-known/ well-accepted standard?

FxCop flags things like so:

public properties/methods/fields: Standard case (e.g.: IsEnabled, DoWorkQueue())

private fields: lower case beginning (e.g.: internalCount)

hungarian notation: No. (e.g. NameTextBox, not txtNameBox)

There's an entire MSDN library section about it here.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • KDE brings UI improvements, bug fixes and more to Plasma 6.4 as stable release draws near by David Uzondu With less than a month to the release of Plasma 6.4, the KDE dev team has shared what it has been working on in the latest issue of its weekly roundup. The update shows a heavy focus on user interface polish and a whole slew of bug fixes as the June 17 release date gets closer. The team has pushed a number of UI refinements for the upcoming version. On the System Settings page for Wi-Fi, the network list can now be fully navigated with a keyboard. KDE also disabled the ability to drag and drop displays on top of one another in the monitor settings. This was done because it could create unsupported arrangements that triggered a cascade of strange bugs throughout the system. Waking up a sleeping computer by pressing the power button no longer causes the bizarre logout screen to appear after you unlock it, which is a relief. Alignment issues in the settings page for the Digital Clock widget were also resolved. The list of bug fixes for 6.4 is extensive. The development team has fixed the most common crash affecting the System Monitor and squashed another one related to a divide-by-zero error. For users with multiple monitors, a long-awaited fix has landed that prevents windows from disappearing when the screen they are on gets disconnected. Even the humble Sticky Notes widget received attention; it will no longer freeze the Plasma shell if you place it on a very thick panel. Discover, the software center, also had a bug patched that caused it to crash if closed too quickly after launch. Here's the full list of improvements: Putting a Sticky Note widget on a very thick panel can no longer cause Plasma to freeze; now, you can use a thick panel with a sticky note on it as a notes sidebar. Fixed the most common System Monitor crash. Fixed another crash in System Monitor, this time a divide-by-zero. Fixed a case where xdg-desktop-portal-kde could crash after you choose a video source to start streaming. Fixed a bug that caused Discover to crash if you close it immediately after it launched. Fixed multiple subtle bugs with the screen chooser widget and OSD that caused it to do the wrong thing on rotated screens or when mirroring screens. Fixed a bug that caused the System Settings’ search field not to be focused properly when pressing Ctrl+F while any UI elements in a settings page already had focus. Fixed the root cause of multiple issues involving windows disappearing when you disconnect the screen they’re on. Clicking a button on a desktop widget that opens a menu no longer inappropriately makes the widget enter Widget Edit Mode. Files with a # or ? character in their name or full path are no longer unexpectedly missing from the history lists in Kicker/Kickoff/etc launchers. Fixed a bug that caused the screen chooser window to sometimes not appear as expected when OBS was launched. Fixed a bug that caused tiled windows on a multi-screen setup to lose their tiling settings when the system went to sleep and woke up again. The "Move window to [activity]" feature now works properly when invoked from the Task Manager widget. Fixed a bug in the Kicker Application Menu that caused keyboard navigation not to work if the popup opened with an item under the pointer. In the Overview effect’s grid view, dragging windows tiled on one virtual desktop over to a different virtual desktop now keeps them tiled as expected. The focus may be on the imminent 6.4 release, but work on what comes next never really stops. Looking ahead, development on Plasma 6.5 is already well underway. Just last week, the KDE team brought several performance improvements to Plasma 6.5.0. This week, the team fixed a nagging bug that sometimes caused the Networks widget to think a hotspot was still enabled after disconnecting from Wi-Fi. On the features side, the System Settings' Fonts page now prevents you from breaking your system entirely by setting fonts below 4pt. In addition to that, switching time spans in the Info Center’s energy page now features smooth graph animations. Performance-wise, kwriteconfig should also be faster, allowing changes you made to the keyboard layout using the tool to reflect immediately.
    • Display Driver Uninstaller (DDU) 18.1.1.4 by Razvan Serea Display Driver Uninstaller (DDU) is a utility for completely removing AMD/NVIDIA/INTEL graphics drivers and related packages from your system, attempting to eliminate all leftovers (including registry entries, folders and files, driver store). Though AMD/NVIDIA/INTEL drivers can usually be removed via the Windows Control Panel, this uninstaller tool was created for situations where standard uninstall fails, or when you need to fully remove NVIDIA or ATI graphics card drivers. After using this driver cleaner, your system will behave as though it’s the first time you’re installing a new driver—similar to a fresh Windows installation. As with all such tools, we recommend creating a restore point beforehand, allowing you to undo changes if issues arise. If you're having trouble installing an older or newer driver, try it—there are reports that it resolves such problems. Recommended usage: The tool can be used in Normal mode but for absolute stability when using DDU, Safemode is always the best. Make a backup or a system restore (but it should normally be pretty safe). It is best to exclude the DDU folder completely from any security software to avoid issues. You do NOT need to uninstall the driver prior using DDU. Requirements: .NET Framework 4.8 Compatible with Windows 7, 8, 8.1, 10, and 11 (32-bit or 64-bit) Note: Using on Insider Preview builds is at your own risk. Display Driver Uninstaller (DDU) 18.1.1.4 changelog: Intel: Added NPU presence detection before removing shared DLL files (these were previously left to prevent potential NPU-related issues). Intel: Added optional NPU removal Improved "Extension" driver removal process. Updated several translations. Download: Display Driver Uninstaller 18.1.1.4 | 1.7 MB (Freeware) Download: DDU Portable | 1.2 MB Links: Display Driver Uninstaller Home Page | Screenshot | Forum Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • That is what I also think to a point. How is 26 necessarily different than just another iteration like 18, 19, 20, etc? At first I think it would be better for Apple to use 2026, 2027, and then maybe truncate it to just 28, 29, and so on. Granted, I also think it makes more sense to use the year when it was released (2025 or 25), not 26/2026. Maybe Apple's thinking is as stated by Aditya that the bulk of a release being the current release is during the following year (2026, for example) after it is released (2025, for example). There are other examples of these sorts of things. In the NBA, the season has always started in the Fall and ends in the Spring. When the season ends is how the season is named. So, this is the 2025 NBA season and the Pacers and Thunder are playing to be the 2025 NBA Champions. The NFL starts in the Fall and the end of the season is always in the beginning of the next year as well. The Super Bowl was played on February 9, 2025, but that was the end of the 2024 NFL season. So, contrary to the NBA, the NFL names it season based on when it starts, not when it ends. Maybe that is because more of the NFL season is played at the end of the year (2024 in the most recent example) whereas most of the NBA season is played in the first half of the following year (2025 in the current example).
    • Years ago I was at COMDEX in Las Vegas and a pit boss told me all the casino hotel staff said of the geeks "They bring one clean shirt and a $10 bill and they don't change either one all week..."
  • Recent Achievements

    • Week One Done
      abortretryfail earned a badge
      Week One Done
    • First Post
      Mr bot earned a badge
      First Post
    • First Post
      Bkl211 earned a badge
      First Post
    • One Year In
      Mido gaber earned a badge
      One Year In
    • One Year In
      Vladimir Migunov earned a badge
      One Year In
  • Popular Contributors

    1. 1
      +primortal
      495
    2. 2
      snowy owl
      252
    3. 3
      +FloatingFatMan
      251
    4. 4
      ATLien_0
      228
    5. 5
      +Edouard
      191
  • Tell a friend

    Love Neowin? Tell a friend!