今天開始寫後台的處理程序了,有幾個體會。
編譯後的cs文件在體積和速度上都有明顯的縮小和加快,200多k的源文件壓縮以後才不到28k,速度基本是瞬時的。
注意點:
1:編譯的時候盡量把繼承同一個類的或者是處理同一個“對象”的類編譯在一起,這樣速度會快一點。
2:樣式表文件會被aspx文件的緩存項緩存(如果開啟閃屏smartNavigation="true",開啟閃屏的話弊病就不說了),效果就會非常明顯,當然這是在框架頁中體現出來的。
3:命名空間要非常有規律,否則幾百個的class,最後會混的。
4:要熟練掌握並使用委托處理時間。
5:明白render,createchildcontrol,prerender的前後次序,這點在創建控件的時候有用。
6:try..catch的時候捉捕Exception的動作高明一點FileNotFoundException等最好具體一點,推薦從System.ApplicationException派生,而不是System.Exception,應用程序就能夠區別由框架引發的異常和由用戶引發的異常。(在這點上,相信我,不要相信其他說法的任何文檔).
插曲:如果你的服務出現問題,首先查看的FORM是啟動的服務管理,例如Mysql是不是沒啟動,Apache是不是禁掉了.
7:注意==和equal是不一樣的,string和ToString也是不一樣的,清除Session的時候注意最好Remove,不要動不動Abandon,這就要求程序上什麼時候創建什麼變量都是很清楚的。
8:每種數據庫的執行關鍵字和分割符號都是不一樣的,所以盡量熟悉那些關鍵字再寫,記住,只有一個危險的,就是單引號,其他的都是安全的,熟練使用command對象,@,?,mysql中最好用單引號寫sql語句,因為不會被執行。
9: (插曲) 開始了FHR的第四次升級處理,md,原先的代碼好垃圾呀,析構函數居然沒關mysql對象,屬性管理器也沒用好,bs一下所有人。php的開發周期就是短,當前版本V0.04商業豪華版。(注:功能和V1.01商業Beta版沒法比,包括後台,1.01是非常大氣的,0.04不行呀,YY結束,開始干活),注意:修改了FHR_templat的結構和mysql類的析構函數和一些分頁,@define了一個變量Admin_Page_List.,某些地方看不順眼的也修改了一下。對模板的添加也是做了極大的修改(因為我要用)。ps:現在像條狗.
10.暫無.
1:判斷是否是字符型:
Char.IsNumber(char);
Char.IsNumber(string,int);
2:錯誤統一處理:
public static string OutMess(string[] args){
int ArgsLength = args.Length;
string strs = "<font color=red>";
if(ArgsLength <1) return strs;
switch(args[0]){
case "0":strs=(ArgsLength>1)?args[1]:"<b>操作失敗</b>.";break;
case "1":strs=(ArgsLength>1)?args[1]:"<b>操作成功</b>.";break;
default:strs=(ArgsLength>1)?args[1]:"<b>操作結束</b>.";break;
}
strs +="</font>";
if(ArgsLength>2){
strs += "<br/>2秒後跳轉到<strong>"+args[2]+"</strong><br>";
strs += "<meta http-equiv='refresh' content='2;URL="+args[2]+"' />";
strs += "<br/><a href="+args[2]+">點這裡直接跳轉</a>";
}
return strs;
}
3:用戶菜單讀取xml文檔,可以考慮加載到session文件裡面,記住,在page_unload的時候
System.Web.HttpContext.Current.Session.Remove(KEY);
OR:
System.Web.HttpContext.Current.Session.Abandon();
4:養成良好的
try{
...
}catch(XXException){
.....
}finally{
....
}
的編程習慣.
5:分開數據層和控制層.
6:使用變量的時候合理的初始化,以免Null引用.
7:記住:正則很慢.
8:使用列表控件如Repater,DataGrid的時候如無需要,一定要把
EnableViewState=false;
9:格式數據(DataFormatString):
DataFormatString="xxxxxx.aspx?ID={0}";
10:如果你的存儲過程老是提示什麼"xx旁邊有語法錯誤",可能是由於你declare的參數的長度不夠!
11:強制結束進程:
ntsd -cq-pPID
12:數據庫日志縮小
DUMP TRANSACTION 你的數據庫名 WITH NO_LOG
BACKUP LOG 你的數據庫名 WITH NO_LOG
DBCC SHRINKDATABASE(你的數據庫名)
EXEC sp_dboption '你的數據庫名', 'autoshrink', 'TRUE'
13:驗證double數據可以用:
^([0-9]+)[\.]?([0-9]*)(([E|e]{1}[\-]?)?([0-9]+))?$ ValidationExpression="^([0-9]+)([\.]?([0-9]+))?(([E|e]{1}[\-]?)?([0-9]+))?$"
其他待等.