.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用于方法参数、内部字段、私有字段、局部变量



转载于:https://www.cnblogs.com/ZhangHuaning/archive/2011/01/20/1939970.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
共3个rar文件,链接: http://download.csdn.net/source/469595 http://download.csdn.net/source/469605 http://download.csdn.net/source/469608 本书为框架设计师和广大开发人员设计高质量的软件提供了权威的指南。书中介绍了在设计框架时的最佳实践,提供了自顶向下的规范,其中所描述的规范普遍适用于规模不同、可重用程度不同的框架和软件。这些规范历经.NET框架三个版本的长期开发,凝聚了数千名开发人员的经验和智慧。微软的各开发组正在使用这些规范开发下一代影响世界的软件产品。.<br>本书适用于框架设计师以及相关的专业技术人员,也适用于高等院校相关专业的学生和教师阅读参考。... <br><br>“在微软,本书所讲述的规范已经指导我们经历了.NET框架三个版本和无数其他项目的开发,而且它正在指导着下一代Windows操作系统API——WinFX的开发。我希望你也能凭借此书,开发出容易理解和使用的软件。”<br>——Anders Hejlsberg,微软杰出工程师,C#和Delphi之父<br><br>“本书是所有.NET开发人员的必读之作,这些来自微软.NET开发小组的真知灼见对于理解.NET之所以然至关重要,不仅能帮助开发人员设计自己的类库和框架、组件,而且有助于更加高效地使用.NET框架。”<br>——Jeffrey Richter,著名技术作家,《Microsoft .NET框架程序设计》、《Windows核心编程》作者<br><br>本书中的规范凝聚了数千名微软精锐开发人员的经验和智慧,最终成为微软内部公认的设计规范。本书针对的是.NET平台上的框架设计,但对.NET之外的其他平台的框架设计同样具有借鉴意义。书中的大多数规范对于使用.NET框架创建高质量的普通应用程序至关重要。<br>本书包含许多评注,解释了相应规范的背景和历史,读来令人兴味盎然。从中你能够读到来自Anders Hejlsberg、Jeffrey Richter、Paul Vick等微软技术大师们的声音。...

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值