Q: Should I use Hungarian Notation?
A: Hungarian Notation
gained popularity in the classic VB days before the .NET framework came along. Hungarian
Notation is essentially the practice of prefixing objects with a few letters that
denote its class type.
For example, a control might be named "txtFirstName" to denote that it is a text
box (txt) meant to hold a person's first name. Another example name would be
"btnSubmit" to imply that the object is a button control that submits a form.
More examples would include a variable named "strCity" to indicate a string variable
that holds a city name, or iRecordID to indicate an integer variable that holds
the ID number of a database row.
While Hungarian Notation was highly useful back then, it has fallen out of favor
with developers ever since the .NET framework came along. The main reason
it is rarely used these days is because the .NET framework brought along with it
a nearly overwhelming number of classes. It's simply not practical to give
them all prefixes that could be consistently remembered by any human being.
Luckily, the advanced new features that Visual Studio implemented in the same time
frame also made it less necessary for humans to remember such details. By
simply hovering the mouse over any variable you could now instantly see all kinds
of details about the underlying value and object type. Similar features, like a robust
Intellisense implementation also helped to alleviate the need for such archaic prefixes.
For these reasons the vast majority of developers no longer need or use Hungarian
Notation. Those that do still use it tend to use it only to prefix standard
controls, so you might still see something like "txtFirstName" around the net here
and there.
Even though Hungarian Notation may be nearing extinction, other naming conventions
are now thriving such as Camel and Pascal Case.
For further reading about Microsoft's recommended design guidelines and best practices you might start here.