Asp.Net編碼規範

代碼編寫規範如下: (c#.net與asp.net)
1 目的
   一.爲了統一公司軟件開發設計過程的編程規範
   二.使網站開發人員能很方便的理解每個目錄,變量,控件,類,方法的意義
   三.爲了保證編寫出的程序都符合相同的規範,保證一致性、統一性而建立的程序編碼規範。
   四.編碼規範和約定必須能明顯改善代碼可讀性,並有助於代碼管理、分類範圍適用於企業所有基於.NET平臺的軟件開發工作

2 範圍
     本規範適用於開發組全體人員,作用於軟件項目開發的代碼編寫階段和後期維護階段。


1.1ASP.Net編碼規範通述

ASP.Net編碼分爲兩大部分,一部分爲靜態文件編碼,一部分爲包含服務器端腳本的動態文件編碼。靜態文件編碼分Script編碼和HTML編碼兩部分。
服務器端編碼則分爲服務器腳本、客戶端腳本、HTML腳本三部分。
編碼規範採用如下約定:
所有客戶端腳本一律使用JavaScript
所有服務器端腳本一律使用C#
靜態頁面輸出一律使用HTML腳本
本規範不適用於由服務器端腳本所產生的客戶端腳本代碼。

1.2靜態文件編碼規範
靜態文件腳本部分採用JavaScript編寫。輸出部分採用HTML標記語言。
1.2.1HTML標記語言編碼規範1.2.1.1標記的換行規範
* 一個標記必須佔用一行。不得出現兩個標記在同一行的情況(同一標記的關閉標記除外),如:
<tr><td>text</td></tr>
而必須寫成:
<tr>
<td>text</td>
<tr>
1.2.1.2標記的關閉規範
* 靜態文件內容必須包含在<body></body>標記中間
* <body>標記必須包含在<html></html>標記中間
* 對於需要關閉的標記,如:
<html><title><body><table><tr><td><p><textarea><select><font><option><div><span>
必須同其關閉標記同時出現。如
<body>…<p>…<font>….</font>….</p>…..</body>
* 不得出現交叉包含的語句,如:
<p><font>…..</p></font>
1.2.1.3標記的屬性賦值規範
對於接受屬性的標記,屬性值必須使用雙引號或者單引號包圍。如:
<body bgcolor=”red”>
<font size=’7’>

注:在頁面上如果是HTML標籤,儘量只能出現id,class屬性。屬性越少越好。




1.2.1.4標記的縮進規範
* 最高一級的父標記採用左對齊頂格方式書寫。
* 下一級標記採用左對齊向右縮進一個Tab的方式書寫
在下一級依此類推,分別左對齊相對於父標記向右縮進一個Tab的方式書寫
* 同一級標記的首字符上下必須對齊。
1.2.2客戶端JavaScript規範1.2.2.1變量命名規範
* 常量以及全局變量名必須全部使用大寫字母
* 變量名首字母必須小寫。
* 變量名必須使用其類型的所寫字符串開始。各種類型的所寫字符串如下:
* 整型變量:int
* 長整型變量:lng
* 浮點型變量:flt
* 雙精度變量:dbl
* 對象引用變量:obj
* 字符串變量:str
* Date類型變量:dtm
* 變量名必須採用有意義的單詞命名,如:
strUserName、lngArrayIndex
* 變量名除首字母小寫外,其他單詞首字符必須大寫
* 如果變量名過長可以使用單詞縮寫,除了被廣泛瞭解的單詞縮寫以外,所有使用單詞所寫的變量名必須在定義時給出註釋,如:
var strAdName //用於表示Administrator帳戶的名稱
var strAdminName //不用給出註釋,Admin被廣泛瞭解
1.2.2.2變量使用規範
* 變量使用前必須定義。沒有定義的變量禁止使用
* 變量的使用盡量縮小到小的作用域。如循環使用
  for(var I=0;I<12;I++){

}
而不是:
var I;
for(I=0;I<12,I++){

}
1.2.2.3對象命名規範
各種頁面對象如text輸入框、按鈕、下拉選擇框在命名時必須使用以下對應前綴:
* text輸入框:txt
* button按鈕:btn
* select下拉選擇框:sel
* option項:opt
* form表單:frm
* frame框架:fra
* hidden表單項:hdn
* div標記:div
* span標記:span
* 對話框對象:dlg
* 窗口對象:win
1.2.3函數以及子過程命名規範
* 函數命名必須使用動詞+名詞對的方式,並且能夠體現函數的功能
* 函數命名的動詞前綴必須是同函數功能相關的完整動詞
* 函數命名第一個單詞的首字母小寫,後面每一個單詞的首字母大寫

1.3動態文件編碼規範1.3.1HTML書寫規範命名(控件)
* TextBox輸入框:txt
* Button按鈕:btn
* DropDownList下拉選擇框:ddl
* Label文本:lbl
* CheckBox複選框:cbx
* RadioButton單選按鈕:rbtn
* hidden表單項:hdn

注:HTML書寫規範必須符合靜態文件HTML標記書寫規範,服務器控件命名一般以控件單純的首字母的簡寫形式作爲前綴。


1.3.2客戶端腳本規範
書寫規範必須符合靜態文件HTML標記書寫規範,服務器控件命名一般以控件單純的首字母的簡寫形式作爲前綴。


1.3.2客戶端腳本規範
動態文件客戶端腳本一律採用JavaScript書寫,並必須符合靜態文件編碼規範中有關JavaScript編碼規範的規定。


1.3.3服務器端腳本書寫規範
3 註釋規範
3.1 概述
a) 註釋要求英文及英文的標點符號。
b) 註釋中,應標明對象的完整的名稱及其用途,但應避免對代碼過於詳細的描述。
c) 每行註釋的最大長度爲100個字符。
d) 將註釋與註釋分隔符用一個空格分開。
e) 不允許給註釋加外框。
f) 編碼的同時書寫註釋。
g) 重要變量必須有註釋。
h) 變量註釋和變量在同一行,所有註釋必須對齊,與變量分開至少四個“空格”鍵。
如:int m_iLevel,m_iCount; // m_iLevel ....tree level
// m_iCount ....count of tree items
string m_strSql; //SQL
i) 典型算法必須有註釋。
j) 在循環和邏輯分支地方的上行必須就近書寫註釋。
k) 程序段或語句的註釋在程序段或語句的上一行
l) 在代碼交付之前,必須刪掉臨時的或無關的註釋。
m) 爲便於閱讀代碼,每行代碼的長度應少於100個字符。
3.2 自建代碼文件註釋

對於自己創建的代碼文件(如函數、腳本),在文件開頭,一般編寫如下注釋:

3.3 模塊(類)註釋
模塊開始必須以以下形式書寫模塊註釋:
///<summary>
///Module ID:<模塊編號,可以引用系統設計中的模塊編號>
///Depiction:<對此類的描述,可以引用系統設計中的描述>
///Author:作者中文名
///Create Date:<模塊創建日期,格式:YYYY-MM-DD>
///</summary>
如果模塊只進行部分少量代碼的修改時,則每次修改須添加以下注釋:
///Rewriter Rewrite Date:<修改日期:格式YYYY-MM-DD> Start1:

///End1:
將原代碼內容註釋掉,然後添加新代碼使用以下注釋:
///Added by Add date:<添加日期,格式:YYYY-MM-DD> Start2:
///End2:
如果模塊輸入輸出參數或功能結構有較大修改,則每次修改必須添加以下注釋:
///<summary>
///Log ID:<Log編號,從1開始一次增加>
///depiction:<對此修改的描述>
///Writer:修改者中文名
///Rewrite Date:<模塊修改日期,格式:YYYY-MM-DD>
///</summary>
3.4 類屬性註釋
在類的屬性必須以以下格式編寫屬性註釋:
/// <summary>
/// <Properties depiction>
/// </summary>
3.5 方法註釋
在類的方法聲明前必須以以下格式編寫註釋
/// <summary>
/// depiction:<對該方法的說明>
/// </summary>
/// <param name="<參數名稱>"><參數說明></param>
/// <returns>
///<對方法返回值的說明,該說明必須明確說明返回的值代表什麼含義>
/// </returns>
///Writer:作者中文名
///Create Date:<方法創建日期,格式:YYYY-MM-DD>
3.6 代碼間註釋

代碼間註釋分爲單行註釋和多行註釋:
//<單行註釋>

代碼中遇到語句塊時必須添加註釋(if,for,foreach,……),添加的註釋必須能夠說明此語句塊的作用和實現手段(所用算法等等)。
4 命名總體規則
? 名字應該能夠標識事物的特性。
? 名字一律使用英文單詞,而不能爲拼音。
? 名字儘量不使用縮寫,除非它是衆所周知的。
? 名字可以有兩個或三個單詞組成,但不應多於三個,控制在3至30個字母以內。
? 在名字中,多個單詞用大寫第一個字母(其它字母小寫)來分隔。例如:IsSuperUser。
? 名字儘量使用前綴而不是後綴。
? 名字中的單詞儘量使用名詞,如有動詞,也儘量放在後面。例如:FunctionUserDelete(而不是FunctionDeleteUser)。
5 命名規範
5.1 變量(Variable)命名
a) 程序文件(*.cs)中的變量命名
程序中變量名稱 = 變量的前綴 +代表變量含意的英文單詞或單詞縮寫。
? 類模塊級的變量請用“m_” +數據類型縮寫作爲前綴(其中,m 爲“memory”縮寫,數據類型縮寫見附件中的《數據類型縮寫表》)。
public class hello
{
private string m_strName;
private DateTime m_dtDate;
}
? 類的屬性所對應的變量,採用屬性名前加“m_”+ 類型縮寫前綴的形式
public class hello
{
private string m_strName;
public string Name
{
get
{
return m_strName;
}
}
}
過程級的變量使用類型縮寫前綴
public class hello
{
void say()
{
string strSayWord;
}
}
? 過程的參數使用“p_”+ 類型縮寫作爲前綴(其中,p 爲“parameter”縮寫)
public class hello
{
void say(string p_strSayWord)
{
}
}

補充說明:
針對異常捕獲過程中的Exception變量命名,在沒有衝突的情況下,統一命名爲exp;
如果有衝突的情況下,可以用“exp”+ 標誌名稱,如:expSql。
Try
{
//your code
try
{
//code
}
catch(Exception exp)
{
//your code
}
}
catch(Exception expSql)
{
//your code
}
補充:如果捕獲異常不需要作任何處理,則不需要定義Exception實例。
例:
try
{
//your code
}
catch( Exception exp)
{
}

? 鑑於大多數名稱都是通過連接若干單詞構造的,請使用大小寫混合的格式以簡化它們的閱讀。每個單詞的第一個字母都是大寫.
? 即使對於可能僅出現在幾個代碼行中的生存期很短的變量,仍然使用有意義的名稱。僅對於短循環索引使用單字母變量名,如 i 或 j。
? 在變量名中使用互補對,如 min/max、begin/end 和 open/close。
? 不要使用原義數字或原義字符串,如 For (i = 1;i <= 7;i++)。而是使用命名常數,如 For (i = 1;i <= NUM_DAYS_IN_WEEK;i++) 以便於維護和理解。
b) 控件命名
控件命名 = 控件名稱前二到三個字母 + 名稱,如Labl控件(labUserName)

5.2 常量命名
常量名也應當有一定的意義,格式爲 NOUN 或 NOUN_VERB。常量名均爲大寫,字之間用下劃線分隔。
例:
private const bool WEB_ENABLEPAGECACHE_DEFAULT = true;
private const int WEB_PAGECACHEEXPIRESINSECONDS_DEFAULT = 3600;
private const bool WEB_ENABLESSL_DEFAULT = false;
注:
變量名和常量名最多可以包含 255 個字符,但是,超過 25 到 30 個字符的名稱比較笨拙。此外,要想取一個有實際意義的名稱,清楚地表達變量或常量的用途,25 或 30 個字符應當足夠了。
5.3 類(Class)命名
a) 名字應該能夠標識事物的特性。
b) 名字儘量不使用縮寫,除非它是衆所周知的。
c) 名字可以有兩個或三個單詞組成,但通常不應多於三個。
d) 在名字中,所有單詞第一個字母大寫。例如 IsSuperUser,包含ID的,ID全部大寫,如CustomerID。
e) 使用名詞或名詞短語命名類。
f) 少用縮寫。
g) 不要使用下劃線字符 (_)。
例: public class FileStream
public class Button
public class String
5.4 接口(Interface)命名
和類命名規範相同,唯一區別是 接口在名字前加上“I”前綴
例:
interface IDBCommand;
interface IButton;
5.5 方法(Method)命名
和類命名規範相同。
5.6 命名空間(NameSpace)命名
和類命名規範相同。
6 編碼規則
6.1 錯誤檢查規則
a) 編程中要考慮函數的各種執行情況,儘可能處理所有流程情況。
b) 檢查所有的系統調用的錯誤信息,除非要忽略錯誤。
c) 將函數分兩類:一類爲與屏幕的顯示無關,另一類與屏幕的顯示有關。對於與屏幕顯示無關的函數,函數通過返回值來報告錯誤。對於與屏幕顯示有關的函數,函數要負責向用戶發出警告,並進行錯誤處理。
d) 錯誤處理代碼一般放在函數末尾。
e) 對於通用的錯誤處理,可建立通用的錯誤處理函數,處理常見的通用的錯誤。
6.2 大括號規則
將大括號放置在關鍵詞下方的同列處,例如:
if ($condition) while ($condition)
{ {
... ...
} }
6.3 縮進規則
使用一個“Tab”爲每層次縮進。例如:
function func()
{
if (something bad)
{
if (another thing bad)
{
while (more input)
{
}
}
}
}
6.4 小括號規則
a) 不要把小括號和關鍵詞(if 、while等)緊貼在一起,要用空格隔開它們。
b) 不要把小括號和函數名緊貼在一起。
c) 除非必要,不要在Return返回語句中使用小括號。因爲關鍵字不是函數,如果小括號緊貼着函數名和關鍵字,二者很容易被看成是一體的。
6.5 If Then Else規則
如果你有用到else if 語句的話,通常最好有一個else塊以用於處理未處理到的其他情況。可以的話放一個記錄信息註釋在else處,即使在else沒有任何的動作。其格式爲:
if (條件1) // 註釋
{
}
else if (條件2) // 註釋
{
}
else // 註釋
{
}
注:if 和循環的嵌套最多允許4層
6.6 比較規則
總是將恆量放在等號/不等號的左邊。一個原因是假如你在等式中漏了一個等號,語法檢查器會爲你報錯。第二個原因是你能立刻找到數值而不是在你的表達式的末端找到它。例如:
if ( 6 == $errorNum ) ...
6.7 Case規則
default case總應該存在,如果不允許到達,則應該保證:若到達了就會觸發一個錯誤。Case的選擇條件最好使用int或string類型。
6.8 對齊規則
變量的申明和初始化都應對齊。例如:
int m_iCount;
int i,j;
float m_fIncome,m_fPay;

m_iCount = 0;
i = 1;
m_fIncome = 0.3;
6.9 單語句規則
除非這些語句有很密切的聯繫,否則每行只寫一個語句。
6.10 單一功能規則
原則上,一個程序單元(函數、例程、方法)只完成一項功能。
6.11 簡單功能規則
原則上,一個程序單元的代碼應該限制在一頁內(25~30行)。
6.12 明確條件規則
不要採用缺省值測試非零值。例如:使用“if ( 0 != f( ) )”而不用“if ( f( ) )”。
6.13 選用FALSE規則
大部分函數在錯誤時返回FALSE、0或NO之類的值,但在正確時返回值就不定了(不能用一個固定的TRUE、1或YES來代表),因此檢測一個布爾值時應該用 FALSE、0、NO之類的不等式來代替。例如:使用“if ( FALSE != f( ) )” 而不用“if (TRUE == f( ) )”。
6.14 獨立賦值規則
嵌入式賦值不利於理解程序,同時可能回造成意想不到的副作用,應儘量編寫獨立的賦值語句。例如:使用“a = b + c ; e = a + d;”而不用“e = ( a = b + c ) + d ”。
6.15 定義常量規則
對於代碼中引用的常量(尤其是數字),應該define成一個大寫的名字,在代碼中引用名字而不直接引用值。
6.16 模塊化規則
某一功能,如果重複實現一遍以上,即應考慮模塊化,將它寫成通用函數。並向小組成員發佈。同時要儘可能利用其它人的現成模塊。
6.17 交流規則
共享別人的工作成果,向別人提供自己的工作成果。
在具體任務開發中,如果有其它的編碼規則,則在相應的軟件開發計劃中予以明確定義。
7 編程準則
7.1 變量使用
a) 不允許隨意定義全局變量。
b) 一個變量只能有一個用途;變量的用途必須和變量的名稱保持一致。
c) 所有變量都必須在類和函數最前面定義,並分類排列。
7.2 數據庫操作
a) 查找數據庫表或視圖時,只能取出確實需要的那些字段。
b) 使用無關聯子查詢,而不要使用關聯子查詢。
c) 清楚明白地使用列名,而不能使用列的序號。
d) 用事務保證數據的完整性。
7.3 對象使用
a) 儘可能晚地創建對象,並且儘可能早地釋放它。
7.4 模塊設計原則
a) 不允許隨意定義公用的函數和類。
b) 函數功能單一,不允許一個函數實現兩個及兩個以上的功能。
c) 不能在函數內部使用全局變量,如要使用全局變量,應轉化爲局部變量。
d) 函數與函數之間只允許存在包含關係,而不允許存在交叉關係。即兩者之間只存在單方向的調用與被調用,不存在雙向的調用與被調用。
7.5 結構化要求
a) 禁止出現兩條等價的支路。
例如:if (a == 2)
else if (a== 3)
//
else if (a == 2)
//
else
//
b) 避免使用GOTO語句
c) 用 IF 語句來強調只執行兩組語句中的一組。禁止 ELSE GOTO 和 ELSE RETURN。
d) 用 CASE 實現多路分支
e) 避免從循環引出多個出口。
f) 函數只有一個出口。
g) 不使用條件賦值語句。
h) 避免不必要的分支。
i) 不要輕易用條件分支去替換邏輯表達式
7.6 函數返回值原則
1) 函數返回值
避免使用結構體等複雜類型
使用bool類型:該函數只需要獲得成功或者失敗的返回信息時候
使用int 類型:錯誤代碼用負數表示,成功返回0
8 代碼包規範
本項目中,每個任務在完成一個穩定的版本後,都應打包並且歸檔。
8.1 代碼包的版本號
項目中,代碼包的版本號由圓點隔開的兩個數字組成,第一個數字表示發行號,第二個數字表示該版的修改號。具體用法如下:
1) 當代碼包初版時,版本號爲 V1.00;
2) 當代碼包被局部修改或bug修正時,發行號不變,修改號第二個數字增1。例如,對初版代碼包作了第一次修訂,則版本號爲 V1.01;
3) 當代碼包在原有的基礎上增加部分功能,發行號不變,修改號第一個數字增1,例如,對V1.12版的基礎上增加部分功能,則新版本號爲 V1.20;
4) 當代碼包有重要修改或局部修訂累積較多導致代碼包發生全局變化時,發行號增1。例如,在 V1.15 版的基礎上作了一次全面修改,則新版本號爲 V2.00。
8.2 代碼包的標識
本項目所產生的代碼包都有唯一、特定的編碼,其構成如下:
S-項目標識-代碼包類型-版本號/序號
其中:
1) S:本項目的標識,表明本項目是“XXXX”。
2) 項目標識:簡要標識本項目,此標識適用於整個項目的文檔。
3) 代碼包類型:取自以下表的兩位字母編碼。
4) 版本號:本代碼包的版本號。
5) 序號:四位數字編碼,指明該代碼包在項目代碼庫的總序號。
例如:
一個Windows下RAR源碼的壓縮代碼包命名爲: S-XXXX-WS-V1.02/0001
項目的代碼包分類表
類 型 編 碼 注 釋
RAR包
(web) 源碼文件 WS 源代碼文件包
編譯文件 WB 編譯文件包
安裝文件 WI 安裝文件包
源碼代碼 + 安裝文件 WA 源代碼和安裝文件包

項目中所有代碼包的標識清單將在《項目開發計劃》中予以具體定義。
9 代碼的控制
9.1 代碼庫/目錄的建立
項目負責人在VSS中建立項目的文檔庫目錄,即爲“Software”目錄,以便快速查詢。
9.2 代碼歸檔
所有代碼在完成一個穩定的版本後,項目負責人都應打包後,存放於VSS中該目的“Software”目錄下,並且依據代碼包的命名規範爲代碼包分配一個唯一名稱。
10 輸入控制校驗規則
10.1 登陸控制
用戶登陸ID和登陸密碼,要限定輸入長度範圍,必須檢查輸入合法性。
10.2 數據錄入控制
a) TextBox輸入
1、 要保持用戶輸入和數據庫接收的長度一致
2、 必須進行輸入合法性校驗
如:E_mail格式 [email protected]...
電話格式 020-12345678 (020)12345678
郵政編碼是六位
b) 除CheckBox、RadioButton外,禁止在DataGrid內嵌入其他編輯控件,用以添加編輯數據
11. 數據庫命名規範:
SqlServer命名規範
使用本系統遵循以下命名規範:
1、表命名:用一個或三個以下英文單詞組成,單詞首字母大寫,如:DepartmentUsers;
2、表主鍵名稱爲:表名+ID,如Document表的主鍵名爲:DocumentID
3、存儲過程命名:表名+方法,如:p_my_NewsAdd,p_my_NewsUpdate;
4、視圖命名:View_表名,如:ViewNews;
5、Status爲表中狀態的列名,默認值爲0,在表中刪除操作將會改變Status的值而不真實刪除該記錄;
6、Checkintime爲記錄添加時間列,默認值爲系統時間;
7、表、存儲過程、視圖等對象的所有都爲dbo,不要使用數據庫用戶名,這樣會影響數據庫用戶的更改。


附件1:數據類型縮寫表

數據類型 縮寫
string str
int i
char chr
sbyte sb
byte bt
uint ui
long l
ulong ul
float f
double d
bool b
decimal dec

附註:數據庫服務器命名規範,控件名縮寫+控件作用單詞的全稱,如:btnNext, txtPassword(密碼文本框),txtRPassword(密碼確認文本框),單詞的第一個字母必須大寫如果有多個單詞,則爲控件縮寫+控件作用的第一個單詞+第二個單詞的全稱,每個單詞名的第一個字母必須大寫
附件2:服務器控件名縮寫表
a、web控件
web控件名 縮寫
AdRotator art
Button btn
Calendar cd
CheckBox chk
CheckBoxList chkl
Comparidator cpv
CustomValidator ctv
DataGrid dg
DataList dl
DropDownList ddl
HyperLink hl
Image img
ImageButton Ibtn
Label lab
LinkButton lbtn
ListBox lst
Panel pl
PlaceHolder ph
RadioButton rb
RadioButtonList rbl
Rangidator rv
RegularExpressionValidator rev
Repeater rp
RequiredFieldValidator rfv
Table tb
TableCell tc
TableRow tr
TextBox txt
ValidationSummary vs
XML XML


b、html控件
html控件名 縮寫
HtmlAnchor hah
HtmlButton hbtn
HtmlForm hform
HtmlGenericControl hgc
HtmlImage himg
HtmlInputButton(按鈕) htxt
HtmlInputButton(重置) hrbtn
HtmlInputButton(提交) hcbtn
HtmlInputCheckBox hick
HtmlInputFile hifile
HtmlInputHidden hihidden
HtmlInputImage hiimg
HtmlInputRadioButton hirb
HtmlInputText(密碼) hpwd
HtmlInputText(文本) hitxt
HtmlSelect hslt
HtmlTable htab
HtmlTableCell htc
HtmlTableRow htr
HtmlTextArea htxta

c.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

1.3.3.1字符集設定原則
* 所有將對客戶端產生中文輸出的ASP程序文件,必須在輸出前設定Charset爲”GB2312”.如:Response.Charset = “GB2312”
1.3.3.2Request、Session、Application使用規範
* 所有需要放入Session、Application中的對象,必須採用有意義的英文名字。除了被廣泛瞭解的單詞縮寫以外,不得采用單詞縮寫。如:
Session(“cp”) = strCurrentUserIP ‘不允許
Session(“CurrentUserIP”) = strCurrentUserIP
Session(“Pwd”) = strPwd ‘允許,Pwd被廣泛瞭解爲密碼
* 所有需要在代碼內用到的Request、Session、Application中的元素,必須在代碼頭部賦值給代碼內聲明的變量。
* 如果獲得Form中提交的內容,必須使用Request.Form(“itemName”).
* 如果獲得QueryString中提交的內容,必須使用Request.QueryString(“itemName”)
* 不得在代碼中出現Request(“”)這樣的引用方式




『三層規範』

  1.數據模型層(實體層)
         命名規範:項目名稱+Models
         類文件命名:對應數據庫表名(屬性:對應數據庫表字段)

  2.數據訪問層
        命名規範:項目名稱+DAL
        類文件命名:對應數據庫表名+Service(一般定義爲靜態類)
        方法返回類型:儘量返回自定義的類型。(比如:實體對象,實體集合等。)

  3.業務邏輯層
       命名規範:項目名稱+BLL
       類文件命名:對應數據庫表名+Manager(一般定義爲靜態類)

  4.頁面
       命名規範:對應數據庫表名(或者:動詞+數據庫表名)
       頁面的存放位置:一般放在Views頁面文件夾以(數據庫表名)命名的文件夾中
       頁面調用:一般調用BLL層的類文件和自定義幫助類文件。(目前由於項目的比較小可以直接調用DAL層的類文件)

『數據庫編碼規範』


Ö 採用大小寫混合,提高名字的可讀性。爲區分一個標識符中的多個單詞,把標識符中的每個單詞的首字母大寫。不採用下劃線作分隔字符的寫法。有兩種適合的書寫方法,適應於不同類型的標識符:
PasalCasing:標識符的第一個單詞的字母大寫;
camelCasing:標識符的第一個單詞的字母小寫。


標識符

大小寫

示例



Pascal

namespace Com.Techstar.ProductionCenter

類型

Pascal

public class DevsList

接口

Pascal

public interface ITableModel

方法

Pascal

public void UpdateData()

屬性

Pascal

Public int Length{…}

事件

Pascal

public event EventHandler Changed;

私有字段

Camel

private string fieldName;

非私有字段

Pascal

public string FieldName;

枚舉值

Pascal

FileMode{Append}

參數

Camel

public void UpdateData(string fieldName)

局部變量

Camel

string fieldName;
發佈了56 篇原創文章 · 獲贊 24 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章