来自:http://www.cnblogs.com/w-y-f/archive/2012/05/30/2526254.html

DotNet命名规范参考

一、命名规范

  注意事项:使用英文命名规则,尽量不使用缩写,禁止使用下划线

 1. DotNet专属对象命名规范:

  • 此命名规范规定了DotNet中专属的各类语言元素的命名规范:
  • Pascal:命名空间、类、方法、委托、属性、结构、接口、常量变量均使用Pascal命名规范。
  • Camel:私有成员、局部变量、参数、页面控件变量均使用Camel风格。
  • 文件名和类名要匹配。
  • 当类只用于作为其他类的基类,根据情况,以Base结尾。  Class CarBase
  • 接口需在添加第一个字母I表示其是个接口。
  • 成员变量与其对应的属性的差别只在于第一个字母的大小写。
  • 命名空间使用以下格式:CompanyName.SolutionName.ProjectName[.ModuleName]

  2. Javascript、CSS、Html命名规则

  • 此命名规范规定了javascript、css中专属的各类语言元素的命名规范:
  • Pascal:js类名使用Pascal风格。
  • Camel:js变量、js参数、js函数、css类名、html标签ID、Html标签均使用Camel风格。
  • js私有变量需加下划线前缀进行标注。

  3. SqlServer数据库命名规则

  • 此命名规范规定了SqlServer中专属的各类元素的命名规范:
  • Pascal:就名字本身而言,数据库、表、视图、存储过程、自定义函数、自定义数据类型、触发器均使用Pascal风格。但部分命名需加前缀的下面已给出。
  • 视图名使用小写字母v为前缀。
  • 存储过程名使用小写字母usp为前缀。
  • 自定义函数名使用小写字母ufn为前缀。

  4.组织结构命名规范

  • Pascal:DotNet解决方案、DotNet项目、DotNet专属文件、文件夹均使用Pascal风格。
  • Camel:文件扩展名、js文件名、css文件名、图片文件名均使用Camel风格。

   5. C#控件命名规范

Data Control

类 型

前 缀

示 例

AccessDataSource

ads

adsPubs

DataList

dlst

dlstTitles

DetailView

dvw

dvwTitles

FormView

fvw

fvwFonts

GridView

gvw

gvwCity

ObjectDataSource

ods

odsMenus

Repeater

rpt

rptQueryResults

ReportViewer

rvw

rvwRecord

SiteMapDataSource

smds

smdsSite

SqlDataSource

sds

sdsBooks

XmlDataSource

xds

xdsTitles

Validation Control

类 型

前 缀

示 例

CompareValidator

valc

valcValidAge

CustomValidator

valx

valxDBCheck

RangeValidator

valg

valgAge

RegularExpressionValidator

vale

valeEmail

RequiredFieldValidator

valr

valrFirstName

ValidationSummary

vals

valsFormErrors

Navigation Control

类 型

前 缀

示 例

Menu

mnu

mnuUser1

SiteMapPath

smp

smpSite1

TreeView

trvw

trvwMenu

Login Control

类 型

前 缀

示 例

ChangePassword

cpwd

cpwdUser1

CreateUserWizard

cuw

cuwLogin

Login

log

logCenter

LoginName

logn

lognUser

LoginStatus

logs

logsUser

LoginView

logv

logvUser

PasswordRecovery

pwdr

pwdrUser

WebParts Control

类 型

前 缀

示 例

AppearanceEditorPart

paed

paedPart1

BehaviorEditorPart

pbed

pbedPart2

CatalogZone

zca

zcatCity

ConnectionsZone

zcon

zconDataBase

DeclarativeCatalogPart

pdca

pdcaPart1

EditorZone

zed

zedNews

ImportCatalogPart

pica

picaPart

LayoutEditorPart

pled

pledNews

PageCatalogPart

ppca

ppcaMail

PropertyGridEditorPart

ppge

ppgeServer

ProxyWebPartManager

mpwp

mpwpWeb

WebPartManager

mwp

mwpSite1

WebPartZone

zwp

zwpSite2

ADO.NET 命名规范

数据类型

数据类型简写

标准命名举例

Connection

con

conNorthwind

Command

cmd

cmdReturnProducts

Parameter

parm

parmProductID

DataAdapter

dad

dadProducts

DataReader

dtr

dtrProducts

DataSet

dst

dstNorthWind

DataTable

dtbl

dtblProduct

DataRow

drow

drowRow98

DataColumn

dcol

dcolProductID

DataRelation

drel

drelMasterDetail

DataView

dvw

dvwFilteredProducts

WinForm Control 命名规范

数据类型

数据类型简写

标准命名举例

Label

lbl

lblMessage

LinkLabel

llbl

llblToday

Button

btn

btnSave

TextBox

txt

txtName

MainMenu

mmnu

mmnuFile

CheckBox

chk

chkStock

RadioButton

rbtn

rbtnSelected

GroupBox

gbx

gbxMain

PictureBox

pic

picImage

Panel

pnl

pnlBody

DataGrid

dgrd

dgrdView

ListBox

lst

lstProducts

CheckedListBox

clst

clstChecked

ComboBox

cbo

cboMenu

ListView

lvw

lvwBrowser

TreeView

tvw

tvwType

TabControl

tctl

tctlSelected

DateTimePicker

dtp

dtpStartDate

HscrollBar

hsb

hsbImage

VscrollBar

vsb

vsbImage

Timer

tmr

tmrCount

ImageList

ilst

ilstImage

ToolBar

tlb

tlbManage

StatusBar

stb

stbFootPrint

OpenFileDialog

odlg

odlgFile

SaveFileDialog

sdlg

sdlgSave

FoldBrowserDialog

fbdlg

fgdlgBrowser

FontDialog

fdlg

fdlgFoot

ColorDialog

cdlg

cdlgColor

PrintDialog

pdlg

pdlgPrint

WebControl 命名规范

类 型

前 缀

示 例

Adrotator

adrt

adrtTopAd

BulletedList

blst

blstCity

Button

btn

btnSubmit

Calendar

cal

calMettingDates

CheckBox

chk

chkBlue

CheckBoxList

chkl

chklFavColors

CompareValidator

valc

valcValidAge

CustomValidator

valx

valxDBCheck

DropDownList

drop

dropCountries

DataGrid

dgrd

dgrdTitles

DataList

dlst

dlstTitles

RangeValidator

valg

valgAge

FileUpLoad

fup

fupImage

HiddenField

hfld

hfldName

HyperLink

hlk

hlkDetails

Image

img

imgAuntBetty

ImageButton

ibtn

ibtnSubmit

ImageMap

imap

imapSite

Label

lbl

lblResults

LinkButton

lbtn

lbtnSubmit

ListBox

lst

lstCountries

Literal

ltl

ltlTitle

Localize

loc

locChina

MultiView

mvw

mvwForm1

Panel

pnl

pnlForm2

PlaceHolder

plh

plhFormContents

RadioButton

rad

radFemale

RadioButtonList

radl

radlGender

RegularExpression

vale

valeEmail_Validator

Repeater

rpt

rptQueryResults

RequiredFieldValidator

valr

valrFirstName

SubStitution

subs

subsTime

TextBox

txt

txtFirstName

Table

tbl

tblCountryCodes

TableCell

tblc

tblcGermany

TableRow

tblr

tblrCountry

ValidationSummary

vals

valsFormErrors

View

vw

vwCity

Wizard

wiz

wizRegister

二、注释规范

  1. 文件头注释

/******************************************************************

* 版权:

* 功能描述:

* 创建时间:

* 作者:

* 版本:

* 修订描述:

* 最后修订日期:

******************************************************************/

三、编码准则

  1. 避免过长的方法,方法体应该少于60行。
  2. 避免使用诸如0,1,2之类的字面状态量,应该使用更有表达意义的const变量或枚举来取代。
  3. 拒绝代码冗余,冗余是代码腐化的根源。
  4. 坚持单一职责原则,一个类只因有一个变化的原因。

5.   缩进用 TAB,不用 SPACES。

6.   在每个运算符前后都空一格。

7.   花括弧 ( {} ) 需和括号外的代码对齐。每个花括弧需独立一行。

8.   用一个空行来分开代码的逻辑分组。

9.   在一个类中,各个方法需用一空行,也只能是一行分开。

10. 注释需和代码对齐。只在必需的地方注释。行数不多的注释会使代码看起来优雅。(前提是你的代码命名有意义和逻辑结构清晰)。

11. 如果应为某种原因使用了复杂艰涩的原理,为程序配备良好的文档和重分的注释。

12. 避免在同一个文件中放置多个类。

13. 避免使用大文件。如果一个文件里的代码超过500行,必须考虑将代码分开到不同类中。

14. 总是使用接口。避免只有一个成员的接口,努力保证一个接口有3~5个成员。当使用抽象类的时候,提供一个接口。

15. 一个方法只完成一个任务。不要把多个任务组合到一个方法中,即使那些任务非常小。

16. 避免写超过5个参数的方法。如果要传递多个参数,使用结构。

17. 除了要在switch语句块中实现代码跳转,不要使用goto关键字。

18. 避免使用很多成员变量。声明局部变量,并传递给方法。不要在方法间共享成员变量。否则很难知道是哪个方法在什么时候修改了它的值。

19. 在最靠近一个局部变量被使用的地方声明该局部变量。

20. 避免 string name=””;  正确 string name=String.Empty;

21. 异常处理

    • 错误消息而应给出具体错误消息和相应的用户需要做的操作。
    • 千万不要捕捉了异常却什么也不做。异常信息要精确记录错误的所有可能细节,包括发生的时间,和相关方法,类名等。
    • 别写太大的 try-catch 模块。如果需要,为每个执行的任务编写单独的 try-catch 模块。 这将帮你找出哪一段代码产生异常,并给用户发出特定的错误消息如果应用程序需要,可以编写自己的异常类。对自定义的异常类加上后缀Exception。
    • 不必每个方法都用try-catch。当特定的异常可能发生时才使用。不必在所有方法中捕捉一般异常。不管它,让程序崩溃。这将帮助你在开发周期发现大多数的错误。
    • 数据库操作和文件操作时,finally很必要。

DotNet命名规范参考(转)的更多相关文章

  1. 告别编码5分钟,命名2小时!史上最全的Java命名规范参考!

    简洁清爽的代码风格应该是大多数工程师所期待的.在工作中笔者常常因为起名字而纠结,夸张点可以说是编程5分钟,命名两小时!究竟为什么命名成为了工作中的拦路虎. 每个公司都有不同的标准,目的是为了保持统一, ...

  2. web前端开发CSS命名规范参考

    做为一个web前端工程师,每天接触HTML.css就像吃饭一样,但是作为一名合作.优秀的web前端工程师,对DIV+CSS命名还是有一定的规范的,本文整理了一份web前端开发中DIV+CSS各种命名规 ...

  3. CSS命名规范参考及书写注意事项

    CSS书写顺序 *{ /*显示属性*/ display position float clear cursor … /*盒模型*/ margin padding width height /*排版*/ ...

  4. css 命名规范参考[转]

    命名空间 另外最好的实践就是当命名你的类名的时候,使用命名空间前缀来进行分类.这些前缀会在你的命名前添加一组字符,但是这个值能立刻标记每一个类的目的,在你看 HTML 或者样式的时候是很需要的.我使用 ...

  5. CSS 命名规范及标题供参考与学习

    一.CSS 命名规范   XHTML-CSS写作建议 所有的xhtml代码小写 属性的值一定要用双引号("")括起来,且一定要有值 每个标签都要有开始和结束,且要有正确的层次 空元 ...

  6. Java命名规范

    驼峰法则: 将所有字母都小写(包括缩写),然后将单词的第一个字母大写. 每个单词的第一个字母都大写,来得到大驼峰式命名. 除了第一个单词,每个单词的第一个字母都大写,来得到(小)驼峰式命名. 为避免歧 ...

  7. 浅谈Android编码规范及命名规范

    前言: 目前工作负责两个医疗APP项目的开发,同时使用LeanCloud进行云端配合开发,完全单挑. 现大框架已经完成,正在进行细节模块上的开发 抽空总结一下Android项目的开发规范:1.编码规范 ...

  8. Android 命名规范 (提高代码可以读性)

    android文件众多,根据名称来辨别用途很重要,因此命名要规范 这篇文章可参考:Android 命名规范 (提高代码可以读性) 刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名 ...

  9. iOS开发(OC)中的命名规范

    开小差:最近发现自己有一个经验主义的毛病,不太容易接受新的知识,这对从事技术研发的人来说不太合理,需要改之. 正文:通过读写大量代码我有自己的一套编程思路和习惯,自认为自己的编码习惯还是不错的,代码结 ...

随机推荐

  1. Linux虚拟机与外面系统ping不通,或者连不上网

    很多其它具体文档:http://download.csdn.net/download/zml_2015/8843061 非常多人在做linux课程设计的时候,用的linux虚拟机与外面的系统ping不 ...

  2. BI商业智能项目中的若干风险要素

    BI商业智能项目应在 “业务驱动,总体规划,统一设计,分期实施” 的总体设计原则下分期实施,采取Agile BI方法论迭代开展,先确保核心功能满足客户需求,在总体规划下不断完善整个系统,以提高可交付性 ...

  3. SSAS 发布报错处理方法 Login failed for user 'NT Service\MSSQLServerOLAPService' 28000

    Create login and grant access: Open up SQL Server Management Studio [login to the database engine]&g ...

  4. UIAlertView笔记

    链接地址:http://www.cnblogs.com/scandy-yuan/archive/2013/03/11/2954194.html 1. 最简单的用法 UIAlertView*alert ...

  5. java的for循环问题的解决,以及安卓中ListView插入数据的问题

    package test.testdemo; import org.springframework.jdbc.core.JdbcTemplate; import com.util.Pub; publi ...

  6. HTML5 总结-Web存储-7

    HTML 5 Web 存储 在客户端存储数据 HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 ses ...

  7. Python网络编程——设定并获取默认的套接字超时时间

    Sometimes,you need to manipulate the default values of certain properties of a socket library, for e ...

  8. python成长之路10

    断点续传   python2.7 多继承  py35多继承   socketserver源码     支持并发处理socket   i/o多路复用   上节回顾     socket          ...

  9. struts ModelDriven

    在表单提交的时候传值是这样,name=admin.username name=admin.password,然后在action中定义属性admin生成get和set 也可以实现ModelDriven这 ...

  10. UI 响应者链

    响应者链  概念: 每一个应用有一个响应者链,我们的视图结构是一个N叉树(一个视图可以有多个子视图,一个子视图同一时刻只有一个父视图),而每一个继承UIResponder的对象都可以在这个N叉树中扮演 ...