.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
XmlDataSource      xds
SiteMapDataSource mds
ReportViewer       rpv
 
RequiredFieldValidator         valr
RangeValidator                 valg
RegularExpressionValidator     vale
CompareValidator               valc
CustomValidator                valx
ValidationSummary              vals
 
SiteMapPath    smp
Menu           mnu
TreeView       tv
 
 
Connection conn
Commmand    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           主题文件夹
        /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用于方法参数、内部字段、私有字段、局部变量
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值