最佳ASP.NET編程習慣

           
          初學編程的朋友往往喜歡收集一些很“奇妙”的編程技巧,然而,技巧的積累往往并沒有提高程序質量,反而引導一些編程者一味追求奇和新,忘記了基本編程習慣的培養,不利于團隊的合作,可能,這也是中國并不缺少聰明的程序員,但是缺少聰明的開發團隊的一個原因吧。在ASP.NET的開發中,可以學習的技巧不少,但是,一些基本的編程習慣我們一定要養成,這樣不但能根本上提高程序質量和開發效率,而且,也利于程序的閱讀和團隊開發。如果自己寫的程序只有自己可以看懂或者只有幾個人可以看懂,即使程序技巧神乎其技,對于程序的升級和維護都是致命問題。 

          一、 錯誤(以外)的處理 
          程序健壯性最基本要求就是程序錯誤的處理與捕捉,在ASP.NET中,錯誤的處理有和其他編程語言一樣的機制,可以使用Try…Catch…Finally等方式,這一點和ASP相比具有較大的進步。而且,使用這些錯誤處理方法,可以大大提高程序的可讀性和程序調試速度,在這幾個優勢結合的情況下,我們更加應該注意這一點。 
          關于錯誤的處理,我們可以參考這篇文章(英文): 
          http://www.123aspx.com/redir.aspx?res=28336 

          二、 字符串的處理 
          網頁設計中,字符串的處理幾乎是最常見的了。使用ASP.NET以后,字符串的處理比ASP的速度快,而且,在ASP.NET中,專門增加一個字符串處理類StringBulider,使用這個類可以完成一些常見的字符串操作,而最主要的,使用StringBuilder可以大大提高字符串處理速度。 
          在ASP.NET中,最常見的就是使用“&”來連接兩個字符串: 
          Dim myOutputString As String = "My name is" 
          Dim myInputString As String = " Alex" 
          myOutputString = myOutputString & myInputString 
          Response.Write(myoutputString) 
          現在,我們來看看StringBuilder的使用,在使用StringBuilder的時候,我們對字符串可以做一些基本的操作,比如Append、Replace、Insert、Remove等,現在我們來看具體舉例。 
          (1)StringBuilder中Append的使用 
          Append和其他語言的Append一樣,就是在字符串最后增加其他字符。 
          Dim sb as StringBuilder = New StringBuilder() 
          sb.append( "<table border=''1'' width=''80%''>" ) 
          For i = 0 To RowCount - 1 
          sb.Append("<tr>") 
          For k = 0 To ColCount - 1 
          sb.Append("<td>") 
          sb.Append( dt.Rows(i).Item(k, DataRowVersion.Current).toString()) 
          sb.Append( "</td>" ) 
          Next 
          sb.Append("<tr>") 
          Next 
          sb.Append( "</table>") 
          Dim strOutput as String = sb.ToString() 
          lblCompany.Text = strOutput 
          在以上的程序中,用Append方法實現了一個表格的輸出,需要注意的一點是,StringBulider必須首先使用ToString()方法將其轉化為String類型才可以直接輸出。在以上的舉例中,我們看到的全部是Append一個直接的字符串,其實,這個方法有一個很方便的功能,那就是可以直接Append其他類型的變量,比如可以直接Appemd一個Integer類型的數值,當然,我們輸出以后自動轉化為一個字符串: 
          Sub Page_Load(Source As Object, E As EventArgs) 
          Dim sb As System.Text.StringBuilder 
          Dim varother As Integer 
          varother=9999 
          sb =new System.Text.StringBuilder() 
          sb.append("<font color=''blue''>可以Append其他類型:</font>") 
          sb.append(varother) 
          Response.write(sb.toString()) 
          End Sub 
          (2)字符串中其他方法的使用 
          我們還可以使用其他方法,我們來看看常見的: 
          Insert方法,可以在指定位置插入其他字符,使用方法:Insert(插入位置,插入字符); 
          Remove方法,可以在指定位置刪除指定字數字符,使用方法:Remove(其實位置,字符數); 
          Replace方法,可以替換指定字符,使用方法:replace(被替換字符串,替換字符串) 
          字符串的具體介紹和使用方法可以參考以下文章(英文): 
          http://aspfree.com/aspnet/stringbuilder.aspx 
          http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemTextStringBuilderClassTopic.asp 

          三、 數據庫鏈接Connection和DataReader的關閉 
          在使用ASP編程的時候,我們就已經知道,在使用數據庫連接以后,一定要將連接關閉,然后設置為NoThing。在Asp.NET中,我們仍然需要這樣使用,不過,在ASP.NET中,由于使用了ADO.NET,所以,在一些相關的處理方面,實際還是有一些細微的區別,而這些區別,往往也就是我們設計的時候最需要注意的。現在,我們通過舉例,來看看在常見的ADO.NET操作中,需要注意哪些問題。 
          (1)舉例一 
          Dim myConnection As SqlConnection = new SqlConnection(ConfigurationSettings.AppSettings("DSN_pubs")) 
          Dim myCommand As SqlCommand = new SqlCommand("Select pub_id, pub_name From publishers", myConnection) 
          Dim myDataReader As SqlDataReader 
          Try 
          myConnection.Open() 
          myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection) 
          DropDownList1.DataSource = myDataReader 
          DropDownList1.DataBind() 
          Catch myException As Exception 
          Response.Write("An error has occurred: " & myException.ToString()) 
          Finally 
          If Not myDataReader Is Nothing Then 
          ''關閉DataReader 
          myDataReader.Close() 
          End If 
          End Try 
          在以上的舉例中,我們注意到,這里只關閉了DataReader,并沒有關閉Connection。為什么呢?仔細觀察以上的ExecuteReader方法,原來,設置了ExecuteReader參數,當執行完ExecuteReader以后,會自動關閉Connection。所以,這樣設置以后,就沒有必要再手動關閉Connection了。

          posted on 2009-02-11 09:22 SevenDays 閱讀(135) 評論(0)  編輯  收藏 所屬分類: .NET技術

          <2009年2月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          1234567

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 台中县| 乐昌市| 云龙县| 信丰县| 苏尼特左旗| 天峨县| 农安县| 报价| 建宁县| 哈密市| 洪江市| 城市| 曲沃县| 乌兰浩特市| 类乌齐县| 云和县| 阳江市| 布拖县| 贞丰县| 尉犁县| 类乌齐县| 汉中市| 富宁县| 璧山县| 南靖县| 榆树市| 洛川县| 广德县| 车险| 东莞市| 延庆县| 习水县| 靖宇县| 孝感市| 高淳县| 临泉县| 马公市| 吴江市| 上栗县| 漯河市| 陆川县|