1. ข้อกำหนดพื้นฐานที่สุดสำหรับความทนทานของตัวจัดการข้อผิดพลาด (นอกเหนือจาก) คือการจัดการและบันทึกข้อผิดพลาดของโปรแกรม ใน ASP.NET การจัดการข้อผิดพลาดมีกลไกเดียวกันกับภาษาการเขียนโปรแกรมอื่น ๆ คุณสามารถใช้ Try...Catch ได้ ..สุดท้ายและวิธีการอื่นๆ นี่เป็นการปรับปรุงที่ดีเมื่อเทียบกับ ASP นอกจากนี้ การใช้วิธีจัดการข้อผิดพลาดเหล่านี้สามารถปรับปรุงความสามารถในการอ่านโปรแกรมและความเร็วของการดีบักโปรแกรมได้อย่างมาก เมื่อรวมข้อดีเหล่านี้เข้าด้วยกัน เราควรให้ความสำคัญกับสิ่งนี้มากขึ้น
เกี่ยวกับการจัดการข้อผิดพลาด เราสามารถอ้างอิงถึงบทความนี้ (ภาษาอังกฤษ):
http://www.123aspx.com/redir.aspx?res=28336
2. การประมวลผลสตริง ในการออกแบบเว็บ การประมวลผลสตริงถือเป็นเรื่องปกติมากที่สุด หลังจากใช้ ASP.NET การประมวลผลสตริงจะเร็วกว่า ASP นอกจากนี้ใน ASP.NET คลาสการประมวลผลสตริง StringBulider จะถูกเพิ่มเป็นพิเศษ ใช้คลาสนี้เพื่อดำเนินการสตริงทั่วไปให้เสร็จสมบูรณ์ และสิ่งที่สำคัญที่สุดคือ การใช้ StringBuilder สามารถทำได้อย่างมาก ปรับปรุงความเร็วของการประมวลผลสตริง
ใน ASP.NET สิ่งที่พบบ่อยที่สุดคือการใช้ "&" เพื่อเชื่อมต่อสองสาย:
Dim myOutputString As String = "ชื่อของฉันคือ"
Dim myInputString As String = "อเล็กซ์"
myOutputString = myOutputString & myInputString
Response.Write (myoutputString)
ตอนนี้ มาดูการใช้งาน StringBuilder กันดีกว่า เมื่อใช้ StringBuilder เราสามารถดำเนินการพื้นฐานบางอย่างกับสตริงได้ เช่น Append, Refplace, Insert, Remove ฯลฯ ตอนนี้เรามาดูตัวอย่างที่เฉพาะเจาะจงกัน
(1) การใช้ Append ใน StringBuilder
Append เหมือนกับ Append ในภาษาอื่นๆ คือการเพิ่มอักขระอื่นๆ ที่ส่วนท้ายของสตริง
Dim sb เป็น StringBuilder = New StringBuilder()
sb.append( "<เส้นขอบตาราง='1' width='80%'>" )
สำหรับ i = 0 ถึง RowCount - 1
sb.ผนวก("<tr>")
สำหรับ k = 0 ถึง ColCount - 1
sb.ผนวก("<td>")
sb.Append( dt.Rows(i).Item(k, DataRowVersion.Current).toString())
sb.ผนวก( "</td>" )
ต่อไป
sb.ผนวก("<tr>")
ต่อไป
sb.ผนวก( "</ table>")
Dim strOutput เป็น String = sb.ToString()
lblCompany.Text = strOutput
ในโปรแกรมข้างต้น วิธี Append ใช้เพื่อรับรู้ผลลัพธ์ของตาราง สิ่งหนึ่งที่ควรทราบก็คือ StringBulider ต้องใช้วิธี ToString() เพื่อแปลงเป็นประเภท String ก่อนจึงจะสามารถส่งออกได้โดยตรง ในตัวอย่างข้างต้น สิ่งที่เราเห็นคือ Append a direct string จริงๆ แล้ว วิธีการนี้มีฟังก์ชันที่สะดวกมาก นั่นคือ มันสามารถผนวกตัวแปรประเภทอื่นๆ ได้โดยตรง เช่น Appemd an Integer type value โดยตรง เอาต์พุตจะถูกแปลงเป็นสตริงโดยอัตโนมัติหลังจากนั้น:
Sub Page_Load (แหล่งที่มาเป็นวัตถุ E As EventArgs)
Dim sb As System.Text.StringBuilder
หรี่ค่าเป็นจำนวนเต็ม
วาโรเทอร์=9999
sb = System.Text.StringBuilder ใหม่ ()
sb.append("<font color='blue'>คุณสามารถผนวกประเภทอื่น: </font>")
sb.ผนวก(varother)
Response.write(sb.toString())
จบหมวดย่อย
(2) การใช้วิธีอื่นในสตริง เรายังสามารถใช้วิธีอื่นได้อีกด้วย มาดูวิธีทั่วไปกันดีกว่า:
วิธีการแทรกสามารถแทรกอักขระอื่น ๆ ในตำแหน่งที่ระบุ วิธีการใช้งาน: แทรก (แทรกตำแหน่ง, แทรกอักขระ);
วิธีการลบสามารถลบอักขระตัวอักษรและตัวเลขที่ระบุในตำแหน่งที่ระบุ วิธีการใช้งาน: ลบ (ตำแหน่งจริง, จำนวนตัวอักษร);
วิธีการแทนที่สามารถแทนที่อักขระที่ระบุ วิธีการใช้งาน: แทนที่ (สตริงที่ถูกแทนที่, สตริงการแทนที่)
สำหรับการแนะนำโดยละเอียดและการใช้งานสตริง โปรดดูบทความต่อไปนี้ (เป็นภาษาอังกฤษ):
http://aspfree.com/aspnet/stringbuilder.aspx
http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemTextStringBuilderClassTopic.asp
3. การปิดลิงค์ฐานข้อมูล Connection และ DataReader เมื่อใช้การเขียนโปรแกรม ASP เรารู้แล้วว่าหลังจากใช้การเชื่อมต่อฐานข้อมูลแล้วการเชื่อมต่อจะต้องปิดแล้วตั้งค่าเป็น NoThing ใน Asp.NET เรายังจำเป็นต้องใช้มันในลักษณะนี้ อย่างไรก็ตาม ใน ASP.NET เนื่องจากการใช้ ADO.NET จริงๆ แล้วมีความแตกต่างเล็กน้อยในแง่มุมการประมวลผลที่เกี่ยวข้องบางประการ และความแตกต่างเหล่านี้มักจะเป็นเช่นนี้ด้วย สิ่งที่เราต้องใส่ใจมากที่สุดเมื่อออกแบบ ตอนนี้ ลองใช้ตัวอย่างเพื่อดูว่าปัญหาใดบ้างที่ต้องให้ความสนใจในการดำเนินการ ADO.NET ทั่วไป
(1) ตัวอย่างที่ 1
Dim myConnection As SqlConnection = new SqlConnection(ConfigurationSettings.AppSettings("DSN_pubs"))
Dim myCommand As SqlCommand = new SqlCommand ("เลือก pub_id, pub_name จากผู้เผยแพร่", myConnection)
หรี่ myDataReader เป็น SqlDataReader
พยายาม
myConnection.Open()
myDataReader = myCommand.ExecuteReader (CommandBehavior.CloseConnection)
dropDownList1.DataSource = myDataReader
dropDownList1.DataBind()
จับ myException เป็นข้อยกเว้น
Response.Write("เกิดข้อผิดพลาด: " & myException.ToString())
ในที่สุด
ถ้าไม่ใช่ myDataReader ก็ไม่มีอะไรแล้ว
'ปิด DataReader
myDataReader.ปิด()
สิ้นสุดถ้า
สิ้นสุดการลอง
ในตัวอย่างข้างต้น เราสังเกตเห็นว่าเฉพาะ DataReader เท่านั้นที่ถูกปิด ไม่ใช่การเชื่อมต่อ ทำไม สังเกตวิธีการ ExecuteReader ข้างต้นอย่างระมัดระวัง ปรากฎว่ามีการตั้งค่าพารามิเตอร์ ExecuteReader หลังจากดำเนินการ ExecuteReader การเชื่อมต่อจะถูกปิดโดยอัตโนมัติ ดังนั้นหลังจากตั้งค่านี้แล้ว ไม่จำเป็นต้องปิดการเชื่อมต่อด้วยตนเอง
(2) ตัวอย่างที่ 2
Dim myConnection As SqlConnection = new SqlConnection(ConfigurationSettings.AppSettings("DSN_pubs"))
Dim myCommand As SqlCommand = new SqlCommand ("เลือก pub_id, pub_name จากผู้เผยแพร่", myConnection)
พยายาม
myConnection.Open()
dropDownList1.DataSource = myCommand.ExecuteReader()
dropDownList1.DataBind()
จับ myException เป็นข้อยกเว้น
Response.Write("เกิดข้อผิดพลาด: " & myException.ToString())
ในที่สุด
หากไม่ใช่ myConnection ไม่มีอะไรเลยและ ((myConnection.State และ ConnectionState.Open) = ConnectionState.Open) จากนั้น
myConnection.ปิด()
สิ้นสุดถ้า
สิ้นสุดการลอง
ในตัวอย่างข้างต้น เราพบว่า DataReader ไม่ได้ถูกปิด ทำไม ที่จริงแล้ว ในโค้ดข้างต้น DataReader object ไม่ได้ถูกสร้างขึ้นโดยตรง และแน่นอนว่าไม่มีทางที่จะปิดมันได้ สิ่งหนึ่งที่ควรทราบก็คือก่อนที่จะปิด Connection โปรแกรมจะพิจารณาว่า Connection นั้นเปิดอยู่หรือไม่ ถ้าไม่ก็ไม่จำเป็นต้องปิด
4. ใช้ Web.Config/Maching.Config เพื่อบันทึกข้อมูลบางอย่างที่เราจำเป็นต้องใช้บ่อยๆ ตัวอย่างเช่น เมื่อใช้ ADO.NET ข้อมูลที่พบบ่อยที่สุดคือคำสั่งการเชื่อมต่อฐานข้อมูล ใน ASP เรามักจะบันทึกข้อมูลนี้ ข้อมูลในแอปพลิเคชัน แน่นอนว่าสามารถทำได้ใน ASP.NET อย่างไรก็ตาม ASP.NET มีไฟล์การกำหนดค่า WEB.Config อยู่แล้ว ดังนั้นเราจึงควรบันทึกข้อมูลนี้ไว้ใน WEB.Config แน่นอน เราสามารถบันทึกลงใน Machine ได้ด้วย . Config อย่างไรก็ตาม ในกรณีนี้ ต้องใช้ทั้งเว็บไซต์ ดังนั้น โดยทั่วไปเราใช้ Web.Config ตอนนี้เรามาดูการใช้งานเฉพาะของไฟล์นี้กัน
(1) การตั้งค่าไฟล์ Web.Config ขั้นแรก มาดูการตั้งค่า Web.Config เราเพิ่มสองรายการต่อไปนี้ในไฟล์นี้
<การกำหนดค่า>
<การตั้งค่าแอป>
<เพิ่มคีย์ = "dsn" value = "myserver"/>
<เพิ่มคีย์ = "someotherkey" value = "somevalue"/>
</การตั้งค่าแอป>
</การกำหนดค่า>
(2) การใช้ตัวแปร ไฟล์ XML ข้างต้นตั้งค่าตัวแปรสองตัว ได้แก่ dsn และคีย์อื่น ๆ ตอนนี้เรามาดูวิธีการใช้งานตัวแปรเหล่านี้ในโปรแกรม:
<html>
<ภาษาสคริปต์ = "VB" runat = เซิร์ฟเวอร์>
Sub Page_Load (ผู้ส่งเป็นวัตถุ E เป็น EventArgs)
Dim AppSettings เป็น Hashtable = Context.GetConfig("appsettings")
DSN.Text = AppSettings("dsn")
SomeOther.Text = AppSettings("someotherkey")
จบหมวดย่อย
</สคริปต์>
<ร่างกาย>
การตั้งค่า DSN: <asp:label id="DSN" runat=server/> <br>
การตั้งค่าอื่นๆ: <asp:label id="SomeOther" runat=server/>
</ร่างกาย>
</html>
เราเห็นในโปรแกรมด้านบนว่าการใช้ตัวแปรที่กำหนดในลักษณะนี้ง่ายและสะดวกมาก
5. ใช้ .NET เพื่อดีบักโปรแกรม
การดีบักโปรแกรม ASP ถือเป็นส่วนที่ยากที่สุดในการเขียน ASP มาโดยตลอด โปรแกรมเมอร์ ASP อาจมีความเข้าใจอย่างลึกซึ้งในเรื่องนี้ เนื่องจากทุกคนใช้ Response.write เพื่อดีบัก ข้อเสียที่ใหญ่ที่สุดของการดีบักประเภทนี้คือเมื่อเราทำการดีบั๊กเสร็จแล้ว เราต้องลบหรือแสดงความคิดเห็นข้อมูลทีละรายการ ลองคิดดูว่าถ้าโค้ดโปรแกรมไปถึงหลายร้อยบรรทัดหรือโปรแกรมที่มีหลายหน้า มันจะน่าเบื่อขนาดไหน ของงานก็จะเป็นสิ่งที่ฉันกลัวที่สุดก็คือสิ่งหนึ่งที่ถ้าคุณลืมลบการเขียนการดีบักเหล่านี้ข้อมูลการดีบักที่ไม่เหมาะสมบางอย่างอาจปรากฏขึ้นเมื่อผู้ใช้ใช้งาน
หลังจากใช้ ASP.NET เราก็สามารถกำหนด Trace เพื่อทำการดีบักโปรแกรมได้โดยตรง ปัญหาที่กล่าวมาข้างต้นสามารถแก้ไขได้อย่างง่ายดาย หากคุณคุ้นเคย คุณสามารถใช้งาน Trace ผ่านเพจเฉพาะและในไฟล์การกำหนดค่า Web.Config ด้วยวิธีนี้ หลังจากที่โปรแกรมได้รับการดีบั๊กแล้ว เพียงตั้งค่า Trace เป็น Off In ด้วยวิธีนี้โปรแกรมก็จะไม่มีฟังก์ชันการดีบักใดๆ
(1) การใช้งานการดีบักเพจ เมื่อเพจเฉพาะจำเป็นต้องใช้ฟังก์ชันการดีบัก เราสามารถตั้งค่าได้ดังนี้:
<%@ ภาษาเพจ = "VB" ติดตาม = "จริง" %>
(2) กำหนด WEB.Config และนำไปใช้ใน WEB.CONFIG นอกจากนี้เรายังสามารถเปิดใช้งานการดีบักโปรแกรมได้:
<การกำหนดค่า>
<system.เว็บ>
<ติดตามเปิดใช้งาน = "true" requestLimit = "10" localOnly = "false"/>
</system.เว็บ>
</การกำหนดค่า>
หลังจากใช้การตั้งค่าข้างต้นเพื่อเปิด Trace เราสามารถใช้ Trace เพื่อดีบักโปรแกรมในโปรแกรมเฉพาะได้ เช่น:
Trace.Write("นี่คือข้อมูลการดีบักแบบกำหนดเองบางส่วน")
หรือตัวแปรดีบักเกอร์:
Trace.Write("นี่คือตัวแปรของฉันและค่าของมันคือ:" & myVariable.ToString())
จากการตั้งค่าข้างต้น เราจะเห็นได้ว่าใน ASP.NET ฟังก์ชั่นการดีบักโปรแกรมมีความสะดวกและเรียบง่ายอยู่แล้ว