10條ASP.NET編程經驗技巧(2)_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:ASP.NET 2.0 中XML數據的處理
      SqlDataSource和ObjectDataSource控件都是平面表格式的數據源控件,操作也相對簡單,在這里我就不細說了。 在這里我主要談下用于連接XML文件的XmlDataSource和用于連接站點導航數據的SiteMapDataSource這兩個層次數據源控件中XmlDataSource數據綁定到平面表格

      4、使用StringBuilder類

      字符串在.NET框架中是不可變的,這意味著改變字符串的操作符和方法會返回字符串的改變后的拷貝,這意味著性能還有提高的空間。當進行大量的字符串操作時,使用StringBuilder類就是一種比較好的選擇了。

      下面的C#代碼測試用二種方式從10000個子字符串中生成字符串所需要的時間。第一次使用了一個簡單的字符串串聯操作;第二次使用了StringBuilder類。

      要想查看結果字符串,可以去掉下面的代碼中注解行的注解符號:

      以下為引用的內容:

      < %@ Page Language=”C#” %>
      < script runat=”server”>
      void Page_Load(Object Source, EventArgs E)
      {
      int intLimit = 10000;
      DateTime startTime;
      DateTime endTime;
      TimeSpan elapsedTime;
      string strSub;
      string strWhole = “”;
      // 首先執行字符串連接操作
      startTime = DateTime.Now;
      for (int i=0; i < intLimit; i )
      {
      strSub = i.ToString();
      strWhole = strWhole “ “ strSub;
      }
      endTime = DateTime.Now;
      elapsedTime = endTime - startTime;
      lblConcat.Text = elapsedTime.ToString();
      // lblConcatString.Text = strWhole;
      // 使用stringBuilder類進行同樣的操作
      startTime = DateTime.Now;
      StringBuilder sb = new StringBuilder();
      for (int i=0; i < intLimit; i )
      {
      strSub = i.ToString();
      sb.Append(“ “);
      sb.Append(strSub);
      }
      endTime = DateTime.Now;
      elapsedTime = endTime - startTime;
      lblBuild.Text = elapsedTime.ToString();
      // lblBuildString.Text = sb.ToString();
      }
      < /script>
      < html>
      < body>
      < form runat=”server”>
      < h1>String Concatenation Benchmark< /h1>
      Concatenation:
      < aspabel id=”lblConcat” runat=”server”/>
      < br/>
      < aspabel id=”lblConcatString” runat=”server”/>
      < br/> < br/>
      StringBuilder:
      < aspabel id=”lblBuild” runat=”server”/>
      < br/>
      < aspabel id=”lblBuildString” runat=”server”/>
      < /form>
      < /body>
      < /html>

      比使用字符串連接的速度快近200倍。

      5、只在必要時使用服務器端控件

      ASP.NET中新引入了一種在服務器端運行的被稱作Web Server Controls的控件,在代碼中,它們經常通過下面的語法被說明:

      < asp:TextBox id=”txtLastName” size=”40” runat=”server” /> 它們有時也被稱作ASP控件。服務器端控件是由runat屬性指示的,它的值總是“server”。

      通過添加runat屬性,一般的HTML控件可以被很方便地轉換到服務器端運行,下面是一個簡單的例子:

      < input type=”text” id=”txtLastName” size=”40” runat=”server” />

      可以通過id屬性中指定的名字,我們可以引用程序中的控件,可以通過編程的方式設置屬性和獲得值,因此,服務器端處理方式有較大的靈活性。這種靈活性是有一定代價的。每種服務器端控件都會消耗服務器上的資源。另外,除非控件、網頁或應用程序明確地禁止view state,控件的狀態是包含在view state的隱藏域中,并在每次回送中都會被傳遞,這會引起嚴重的性能下降。

      在這方面的一個很好的例子是,網頁上控件表格的應用,如果不需要在代碼中引用表格中的元素,則使用無需進行服務器端處理的HTML表格。我們仍然可以在HTML表格單元中放置服務器控件,并在代碼中引用服務器控件。如果需要引用任意的表格元素,例如指定的單元,則整個表格必須是服務器控件。

      6. HyperLink控件、LinkButton控件的差別

      對于Web訪問者而言,HyperLink、LinkButton控件是一樣的,但它們在功能方面仍然有較大的差異。當用戶點擊控件時,HyperLink控件會立即將用戶“導航”到目標URL,表件不會回送到服務器上。LinkButton控件則首先將表件發回到服務器,然后將用戶導航到目標URL。如果在“到達”目標URL之前需要進行服務器端處理,則使用LinkButton控件;如果無需進行服務器端處理,則可以使用HyperLink控件。

      7、注釋代碼

      這一技巧并不是針對ASP.NET的,但它是一個良好的編程習慣。 注釋不僅僅應當說明代碼會執行什么操作,還應當注明原因。例如,不要僅僅在注釋中說明是在遍歷數組,而是要說明遍歷數組是根據某一算法計算一個值,除非算法是相當簡單的,否則還應當對算法進行簡要的說明。

      .NET工程中的不同的編程語言都有各自不同的注釋符號,下面是一個簡要的說明:

      以下為引用的內容:

      HTML < !-- 注釋 -->JavaScript // 注釋VBScript ‘ 注釋VB.NET ‘ 注釋C# // 注釋/* 多行內容的注釋*/
      SQL -- 注釋
      在服務器控件的開始和結束標記中沒有注釋符號,但服務器能夠忽略掉所有它不能識別的屬性,因此我們能夠通過使用沒有定義的屬性來插入注釋。下面是一個例子:

      < asp:TextBox id=”txtLastName” size=”40” comment=”這是我的注釋” runat=”server” />
      在Visual Studio .NET中對源代碼進行注釋非常簡單。高亮度顯示需要注釋的行,然后按Ctrl K C組合鍵添加注釋。要刪除注釋,只需高亮度顯示被注釋的代碼,并按下Ctrl K U組合鍵。

      在C#工程中,我們還可以通過在每行的開始處使用///輸入XML注釋小節。

      在注釋小節中,我們可以使用下面的XML標記組織注釋:

      以下為引用的內容:

      < summary>< /summary>
      < remarks>< /remarks >
      < param>< /param>
      < returns>< /returns>
      < newpara>< /newpara>

      要在Visual Studio .NET中查看這些XML注釋的格式化的報告,我們可以首先選擇“工具”菜單項,然后選擇“建立注釋Web網頁”菜單項。

      分享:淺談Ja.Net:融合 Java 1.5 和 .NET
      Java和.NET是現在以及未來幾年主要開發力量,這兩個世界并非完全分隔,比如可以使用 Ja.Net 實現互用性。Ja.Net是一個Java 1.5和.NET的接口平臺,Ja.NET 可視為Java之上的.NET Remoting(Microsoft .NET Framework內的主要組件)的堆棧實作,而在Java平臺上提

      來源:模板無憂//所屬分類:.Net教程/更新時間:2009-05-20
      相關.Net教程