Tuesday, February 19, 2013

Standard Naming Convention for ASP.NET and C#


Standard Naming Convention for ASP.NET and C#
In programming language naming convention have great benefits to reduce the effort needed to read and understand source code. It provides better understanding in case of reuse code after a long interval of time. It is an initial step for beginner to learn any programming language. It is a very important element. Here I have explained some criteria about naming convention for programmer.


There are different types of naming casing style. First let’s understand different types of casing styles.

  • Camel Case (camelCase): First letter of the word is lower case and then each first letter of the part of the word is upper case. Example: numberOfDays
  • Pascal Case (PascalCase): First letter of the word is upper case and then each first letter of the part of the word is upper case. Example: DataTable
  • Underscode Prefix (_underscore): The word begins with underscore singe and for the rest of the word use camelCase rule. Example: _strFirstName
  • Hungarian Notation: First letter of the word is about its data type and rest of the word is camelCase. Example: iStudentNumber (i=integer)
  • Uppercase: All letters of the word are uppercase. Example: ID, PI

Naming Convention Guidelines
1.      Private Variables
Use Camel Case for private variables.
Example: studentName

2.       Local Variables
Use Camel Case for local variables.
Example: studentName

3.       Method
Use Pascal Case for method name.
Example: public string HelloWorld { ... }

4.       Property/ Enumerations
Use Pascal Case for Property/Enumerations.
Example: StudentName, StudentAddress

5.       Parameter
Use Camel Case for parameter
Example: void SayHello(string studentName)
{
     string fullMessage = "Hello " + studentName;
}

6.       Namespace
Use Pascal Case for namespace. Use the company name followed by the technology name and optionally the feature and design as follows:
CompanyName.TechnologyName[.Feature][.Design]
Example: CybarLab.Database, System.Web.UI, System.Windows.Forms

7.       Class
Use Pascal Case for class
Example:
public class HelloWorld { ... }

8.       Interface
Use Pascal Case for interface. Use Prefix “I” with interface name, to indicate that the type is an interface. Do not use the underscore character (_).
Example: IServiceProvider, IMemberDirectory

9.       Event
Use Pascal Case for event.
Example: protected void Button1_Click(object sender, EventArgs e) {…….}

10.    Exception
Visual Studio .NET use “e” parameter for the event parameter to the call. To avoid conflicting please use “ex" as a standard variable name for an exception object.
Example:
catch (Exception ex)
{
                        // Handle Exception
}

11.    Constant
Use uppercase for constant variables with words separated by underscores. It is recommended to use a grouping naming schema.
Example (for group AP_WIN):
AP_WIN_MIN_WIDTH, AP_WIN_MAX_WIDTH
12.    Avoid abbreviations longer than 5 characters
13.    Avoid using abbreviations unless the full name is excessive
Example:
Good: string student
Not good: string stu

14.    Use meaningful, descriptive words for naming variables

15.    All member variables must use Underscore Prefix so that they can be identified from other local variables names

16.    Avoid naming conflicts with existing .NET Framework namespaces or types

17.    Do not include the parent class name within a property name
Example
Good: Customer.Name
Not good: Customer.CustomerName

18.    Use Pascal Case for file names

19.    Method name should tell you what it does

20.    A method should do only “one job”. Do not combine multiple jobs in one method even if those jobs have very few lines of code.


Naming Convention of ASP.NET Control
In general, naming ASP.NET controls is made using Camel Case naming convention, where the prefix of the name is the abbreviation of the control type name.



ASP.NET Control
Abbreviation
Standard Controls
Button
btn
CheckBox
cbx
CheckBoxList
cbxl
DropDownList
ddl
FileUpload
fu
HiddenField
hdn
Hyperlink
lnk
Image
img
ImageButton
ibtn
Label
lbl
LinkButton
lbtn
ListBox
lb
Literal
lit
MultiView
mv
Panel
pnl
PlaceHolder
ph
RadioButton
rbo
RadioButtonList
rbol
Table
tbl
TextBox
txt
View
v
Data Controls
DataList
dtl
DataPager
dp
DetailsView
dtv
EntityDataSource
ets
FormView
fv
GridView
gv
LinqDataSource
lds
ListView
lv
ObjectDataSource
ods
QueryExtender
qe
Repeater
rpt
SiteMapDataSource
smd
SqlDataSource
sds
XmlDataSource
xds
Validation Controls
CompareValidator
cpv
CustomValidator
ctv
RangeValidator
rv
RegularExpressionValidator
rev
RequiredFieldValidator
rfv
ValidationSummary
Vs

In summery we can say that use Pascal Case for anything which is public. Try to avoid underscore “_” or hyphen “-”.



For more please visit cybarlab.com