编码规范
一、编码篇
1、控件命名
控件类型 | 控件类型简写 | 标准命名举例 |
AdRotator | ar | arExample |
Button | btn | btnSubmit |
Calendar | cal | calMettingDates |
CheckBox | ckx | ckxBlue |
CheckBoxList | chkl | chklFavColors |
CompareValidator | valc | valcValidAge |
CustomValidator | valx | valxDBCheck |
DataGrid | dg | dgTitles |
DataList | dl | dlTitles |
DropDownList | drop | dropCountries |
HyperLink | hl | hlDetails |
Image | img | imgAuntBetty |
ImageButton | ibtn | ibtnSubmit |
Label | lbl | lblResults |
LinkButton | lbtn | lbtnSubmit |
ListBox | lb | lbCountries |
Panel | pnl | pnlForm2 |
PlaceHolder | ph | phFormContents |
RadioButton | rbtn | rbtnFemale |
RadioButtonList | rbl | rblGender |
RangeValidator | valg | valgAge |
RegularExpressionValidator | Vale | valeEmailValidator |
Repeater | Rpt | rptQueryResults |
RequiredFieldValidator | Valr | valrFirstName |
Table | Tbl | tblCountryCodes |
TableCell | tc | tcGermany |
TableRow | tr | trCountry |
TextBox | txt | txtFirstName |
ValidationSummary | vals | valsFormErrors |
XML | xml | xmlTransformResults |
备注:1、使用驼峰式命名规则,单词首字母大写,其他小写。 2、验证控件的使用:当出错时验证控件ValidationSummary文字显示错误提示。 |
2、窗体
规则:类名+操作名
示例:Student(不加操作名为主要窗体)
StudentEdit(添加或修改的页面)
StudentDB(类)
注意:StudentEdit,这里和存储过程命名规则不同,Edit有编辑的意思, 而往往Insert和Update都在同一个页面,所以这里用Edit
3、数据集
规则:1、获取单个表数据:DS+实际表名
2、获取多个表数据:DS+小模块名
3、获取所有表数据:DS+模块名
示例:1、DSstudent.xsd
2、DSstu.xsd
3、DScsm.xsd
4、报表
规则:1、打印单个表数据:RPT + 实际表名
2、打印多个表数据:RPT + 小模块名
3、打印所有表数据:RPT + 模块名
示例:1、RPTstudent.rpt
2、RPTstu.rpt
3、RPTcsm.rpt
5、变量
规则:首字母大写,两个或两个以上的单词时,使用驼峰表示法。循环时的变 量通常用i,j
示例:State,UserName
注意:尽量不要使用静态变量
6、对象
示例:SqlCommand com
SqlConnection con
SqlDataAdapter da
SqlDataReader dr
IDataReader idr
SqlParameter para
DataSet ds
……
7、方法
规则:1、一个方法对单个表操作时:表名 + 操作名
2、一个方法对多个表操作时:小模块名 + 操作名
3、一个方法对全局都操作时:模块名 + 操作名
示例:1、StudentSelect() // 无条件查询
StudentSelectByID() // 通过ID查询
StudentSelectByIDReturnName() // 通过ID查询,返回姓名
StudentInsert() // 添加
……
2、stuSelect()
3、csmSelect()
8、参数
规则:和数据库中字段名完全一样
示例:如数据库中字段叫做Name,则该参数也命名为Name
9、注释
规则: 1、功能,注释不能太长。
2、编码的同时书写注释。
3、重要变量必须有注释,变量注释和变量在同一行。
4、典型算法必须有注释。
5、在循环和逻辑分支地方的上行必须就近书写注释。
6、程序段或语句的注释在程序段或语句的上一行
7、在代码交付之前,必须删掉临时的或无关的注释。
8、每个.cs文件开头添加正则注释(模块名,文件名,作者,创建日期)。
注意: 1、注释写在最上面。
2、自定义函数开头添加正则注释(名称,功能,参数,返回值)。
示例:1-7(略)
/// 文 件 名:
/// 模 块 名:
/// 作 者:
/// 创建日期:
namespace Pearl.DesktopModules.Linkmans
……
10、方法
/// <summary>
/// 按照ID删除联系人群组
/// </summary>
/// <param name="ID">ID</param>
public void LinkmansGroupDelete(int ID)
{
SqlHelper.ExecuteNonQuery(base.connectionString,"LinkmansGroupDelete",ID);
}
11、异常处理
1、发生异常时,给出友好的消息给用户。
2、与数据库交互的代码都要加上错误处理,并在错误发生时将错误信息保存。
(调用日志模块保存)
注意:用到DataReader时,一定要在finally中关闭它。
二、数据库篇
1、数据库名
规则:项目的英文名称 + 项目开发年份
示例:CollegeStudentManage2006
2、表名
规则:模块名_小模块名_实际表名
示例:ss_Stu_Student
(ss: Sirius Studio)
(stu: 学生信息模块名称)
(student: 学籍表)
3、存储过程
规则:模块名_小模块名_类名+操作名
示例:ss_Stu_StudentInsert
ss_Stu_StudentUpdate
ss_Stu_StudentDelete
ss_Stu_StudentSelect
ss_Stu_StudentSelectByID
ss_Stu_StudentOrderByName
注意:Insert,Update,Delete,Select,OrderBy等,要与数据库语法一致。
4、索引
规则:仅在查询时需要的列上创建索引。
5、字段命名
规则:与相关的“信息化标准”命名一致。无统一标准的,按以下命名:
主键:规则:ID (IDENTITY)
示例:ID
其余字段:规则:英文,驼峰表示法
(两个单词或两个以上单词时,每个单词首字母大写,其它字母小写)
示例:Name,UserName
其它:规则:较短的 NVARCHAR(50)
较长的 NVARCHAR(200)
特长的 NVARCHAR(1000)
三、界面篇
一、布局
页面:宽度不要超过770
控件:(通常情况下的摆放位置)
TreeView:左侧,宽度180。
DataGrid: 右上,根据页面情况分页。
Lable: 上下左右无间距(最后用样式表控制间距)。
Button: 右下,多个Button时,上下左右无间距(最后用样式表控制间距)。
二、样式表
尽量用CSS样式文件控制整个界面风格。
规则:控件前缀+Default
示例:(下表)
控件类型 | 控件类型简写 | 样式命名举例 |
Button | btn | btnDefault |
// 按钮上文字较多,按钮较长时 btnLong | ||
// 按钮上文字较少,按钮较短时,如按钮上只有一个文字时,这种情况不常见 btnShort | ||
// 主要用于项目里所有较长的按钮同样长度,所有较段的按钮同样长度 | ||
DataGrid | dg | dg_headerDefault dg_itemDefault dg_footerDefault |
DropDownList | drop | dropDefault |
// 下拉列表文字较多,较长时 dropLong | ||
// 下拉列表文字较少,较短时 dropShort | ||
// 主要用于项目里所有长的下拉列表同样长度,所有短的下拉列表同样长度 | ||
Label | lbl | lblDefault |
// 主要标题 lblTitle | ||
// 副标题 lblSubhead | ||
// 小标题 lblCrosshead | ||
// 比较醒目的错误信息 lblMessage | ||
// 日期标签 lblDate | ||
TextBox | txt | txtDefault |
// 日期文本 txtDate | ||
// 较长文本 txtLong | ||
// 较短文本 txtShort | ||
Calendar | cal | calDefault |
CheckBox | chk | chkDefault |
CheckBoxList | chkl | chklDefault |
CompareValidator | valc | valcDefault |
CustomValidator | valx | valxDefault |
DataList | dlst | dlstDefault |
HyperLink | lnk | lnkDefault |
Image | img | imgDefault |
ImageButton | ibtn | ibtnDefault |
LinkButton | lbtn | lbtnDefault |
ListBox | lst | lstDefault |
Panel | pnl | pnlDefault |
PlaceHolder | plh | plhDefault |
RadioButton | rad | radDefault |
RadioButtonList | radl | radlDefault |
RangeValidator | valg | valgDefault |
RegularExpression | vale | valeDefault |
Repeater | rpt | rptDefault |
RequiredFieldValidator | valr | valrDefault |
Table | tbl | tblDefault |
TableCell | tblc | tblcDefault |
TableRow | tblr | tblrDefault |
ValidationSummary | vals | valsDefault |
XML | xmlc | xmlcDefault |