.NET开发规范_转载

1、标示符大小写规则:
PascalCasing用于名字空间、类型、成员,如HtmlTag\HelloWorld
camelCasing用于方法参数、内部字段、私有字段、局部变量
namespace System.Security{}
public class StreamReader{}
public interface IEnumerable{}
public virtual string ToString(){}
public int Length{get;}
public event EventHandler Exited;
public static readonly TimeSpan InfiniteTimeout;
FileMode{Append,…}
Public static int ToInt32(string value)

2、通用命名约定:
名字易于阅读,如HorizontalAlignment比AlignmentHorizontal更好
可读重于简洁,如 CanScrollHorizontally比ScrollableX更好
少用下划线和连字符,
不用缩写词作为标识符名字一部分,如GetWindow比GetWin好,number比num好
使用常见名字,value或item
使用C#欲定义类型,如object而不是Object,string而不是String,int而不是Int32
优先使用后缀而不是用前缀表示已有API新版本
使用数字后缀表示已有API的新版本,如Car2比CarEx/CarNew好

3、程序集和DLL的命名
一般程序集和DLL一一对应
<Company>.<Component>.dll
如:Microsoft.VisualBasic.dll
Microsoft.VisualBasic.Vsa.dll
Litware.Controls.dll

4、名字空间的命名
<Company>.(<Product>|<Technology>).[<Feature>].[<Subnamespace>]
如:Microsoft.VisualBasic
Microsoft.VisualBasic.Design
Litware.Controls
Litware.Security
要用公司名称作为名字空间的前缀
要用稳定与版本无关的产品名称作为名字空间第二层
使用PascalCasing大小写风格
考虑在名字空间中使用复数形式,如System.Collections
不要用相同的名字来命名名字空间与位于该名字空间中的类型,如System.Debug再定义Debug

5、类、结构和接口的命名
用名字或者名字词组来给类型命名,使用PascalCasing大小写风格
考虑让派生类的名字以基类名字结尾,如Public class FileStream:Stream{}
要让接口名字以I开头,如IComponent

6、类型成员的命名
方法用动词或者动词词组(PascalCasing大小写风格),对于自定义属性加Attribute,对于自定义异常类加Exception
属性名用名词或者形容词词组,可以用前缀Is\Can\Has(PascalCasing大小写风格)
事件用动词或动词短语, +ing表示之前,+ed表示之后,命名事件处理函数加上EventHandler后缀,用sender和e作为参数名字(PascalCasing大小写风格)
局部变量使用camelCaing,私有成员变量加m_,后面用camelCasing大小写风格,如m_Name
常量命名全部大写,如const int PAGE_SIZE = 20

7、参数的命名
参数使用camelCasing大小写风格

8、资源的命名
与属性命名规则类似
资源关键字用PascalCasing大小写风格
简短不失可读性
字母、数字和下划线组合

9、排版规范
缩进用TAB。不用 SPACES。注释需和代码对齐。花括弧 ( {} ) 需和括号外的代码对齐。用一个空行来分开代码的逻辑分组。
10、              编码规范
避免在同一个文件中放置多个类
避免在同一个文件中写多于500行代码(机器自动生成代码除外)
避免写超过25行代码的方法
避免写超过5个参数的方法,如果要传递多个参数,使用结构
一行不要超过80个字符
避免对直观内容作注释
对于If,总是用{}将语句包含起来
避免利用函数返回boolean值作为条件语句,要把返回值赋给临时变量,然后检测,如
Bool IsOK(){}
//避免if(IsOK())
Bool ok=IsOK();
If(ok)
避免显示类型转换,使用as安全的转换到另一个类型
            Dog dog=new Animal();
            Animal animal=dog as Animal;
            If(animal!=null){}
在使用一个对象前,总检查它是否为null,如Session变量
不要硬编码向用户显示字符串,要使用资源
不要硬编码随时都会变化的字符串,如数据库连接字符串
使用string.Empty取代””
使用一个长字符串时候,使用StringBuilder代替string
让应用程序支持跟踪和日志
访问数据库的时候总是使用事务,总是使用企业服务或System.Transactions事务,不要使用ADO.NET事务by enlisting the database explicitly
使用Windows身份认证,不要用SQL Server认证
避免在储存过程加入逻辑

11、              常用控件、组件前缀规范
Label          lbl
TextBox        txt
Button         btn
LinkButton     lbtn
ImageButton    ibtn
HyperLink      lnk  
DropDownList   ddl
ListBox        lbx
CheckBox       cbx
CheckBoxList    cbl
RadioButton    rbtn
RadioButtonList rbl
Image          img
ImageMap       imgm
Table          tbl
BulletedList   bltl
HiddenField    hfd
Literal        ltr
Calendar       cal
AdRotator      adrt
FileUpload     fup
Wizard         wzd
Xml            xmlc
MultiView      mltv
Panel          pnl
PlaceHolder    plh
ContentPlaceHolder cplh
View   view
Substitution sbtt
Localize     lcl

DataGrid       dg
GridView       gv
DataList       dl
DetailsView    dv
FormView       fv
Repeater rpt
SqlDataSource   sds
AccessDataSource ads
ObjectDataSource ods
XmlDatCommmand   cmd
Parameter parm
DataAdapter dap
DataReader reader
DataSet ds
DataTable dt
DataRow dr
DataColumn dc
DataRelation relation
DataView dv

12、              源代码结构规范
   #region
/*-----------------------------------------------------------------*
* Purpose:
*
*-----------------------------------------------------------------*
* Author:
* Date:
*
*-----------------------------------------------------------------*
* Modification Log:
*
* 11/2/96 -   Joe Q. Programmer SF2K900002
*        Added .....
* 6/14/96 -   Joe Q. Programmer SF2K900001
*        Changed .....
*-----------------------------------------------------------------*/
#endregion
#region using
using System;
using System.Collections.Generic;
using System.Text;

//其它名字空间
#endregion
namespace myNamespace
{
    ///<summary>
    ///
    ///</summary>
    class myClass
    {
        #region Fields
        #endregion
        #region Properties
        #endregion
        #region Methods
        #endregion
        #region Events
        #endregion
    }
}

13、              程序文档结构规范
/App_Browsers 浏览器
/App_Code     程序文件夹
/App_Data      数据文件夹
/App_GlobalResources 全局资源文件夹
/App_LocalResources    主目录资源文件夹
/App_Themes          主题文件夹

an>        /App_Themes/主题1 /Images
        /App_Themes/主题1 /SkinFile.skin
        /App_Themes/主题1 /StyleSheet.css
/App_WebReferences   web引用文件夹
/新文件夹1          功能块1
    /新文件夹1/App_LocalResources 资源文件夹
/新文件夹2          功能块2

14、              数据库规范
均采用Tab-前缀+单数英文名词表示,不加空格,每个词的首字母大写。表示单个实体的表名:TabXxxx——XXXX为实体英文单词,例如:员工信息表——TabEmployee;
表示两个实体关系的表名:TabXxYy——XxYy为实体英文单词,例如:项目课程信息表——TabProjectCourse
均采用View-前缀+视图主要内容或基表名称构成,其他约定同表名
均采用Proc-前缀+存储过程主要用途名称构成,其他约定同表名

15、              javascript规范:
PascalCasing用于类型、成员
camelCasing用于方法参数、内部字段、私有字段、局部变量



posted @ 2011-01-20 11:59  璞石攻玉  阅读(303)  评论(0编辑  收藏  举报