หนังสือเล่มนี้มุ่งเน้นไปที่การผสมผสานระหว่างทฤษฎีและการปฏิบัติ และโดยพื้นฐานแล้วจะมีตัวอย่างการใช้งานที่สอดคล้องกันสำหรับจุดความรู้ด้านเทคนิคการพัฒนาการควบคุม ASP.NET แต่ละจุด
ในแง่ของการจำแนกบทนั้น หนังสือเล่มนี้ยังสามารถใช้เป็นคู่มือการค้นหาได้อีกด้วย
สารบัญ:
บทที่ 1 ภาพรวมการควบคุมเซิร์ฟเวอร์และการปรับใช้สภาพแวดล้อมการพัฒนา 1
1.1 การควบคุมเซิร์ฟเวอร์แบบกำหนดเอง 1
1.2 บทบาทของการควบคุมเซิร์ฟเวอร์ในกระบวนการพัฒนาซอฟต์แวร์ 1
1.3 พัฒนาตัวเองในการพัฒนาการควบคุม 2
1.4 ข้อมูลเบื้องต้นเกี่ยวกับคลาสฐานควบคุมที่สืบทอดได้ 2
1.5 การรันการควบคุมอย่างง่าย 7
1.5.1 พัฒนาการควบคุมอย่างง่าย 7
1.5.2 การปรับใช้และการปฏิบัติงาน 11
1.6 วงจรชีวิตการควบคุม 12
1.6.1 ภาพรวม 12
1.6.2 ใช้โค้ดเพื่อติดตามกระบวนการวงจรชีวิตการควบคุม 14
1.7 สรุปบทที่ 17 นี้
บทที่ 2 เทคโนโลยีการดีบักในการพัฒนาการควบคุมเซิร์ฟเวอร์ 18
2.1 ตัวอย่างโค้ดที่ตั้งไว้ล่วงหน้า 18
2.2 ดีบักเซิร์ฟเวอร์หน้ารหัส 19
2.3 การดีบักการควบคุมเซิร์ฟเวอร์ 20
2.3.1 วิธีการดีบักในโหมดการทำงาน 20
2.3.2 วิธีการดีบักในโหมดการออกแบบ 20
2.4 วิธีการดีบักสคริปต์ JavaScript 22
2.4.1 การดีบักสคริปต์ JavaScript ในหน้า (วิธีที่ 1) 22
2.4.2 การดีบักสคริปต์ JavaScript ในหน้า (วิธีที่ 2) 23
2.4.3 การดีบักไฟล์สคริปต์ JavaScript ที่ไม่ได้ฝัง 23
2.4.4 การดีบักไฟล์ทรัพยากรสคริปต์ JavaScript ที่ฝังไว้ 24
2.4.5 เคล็ดลับสำหรับการดีบักอย่างมีประสิทธิภาพ 24
2.5 Ajax Library รองรับการดีบัก JavaScript 26
2.6 สรุปบทที่ 26 นี้
บทที่ 3 การพัฒนาการควบคุมเซิร์ฟเวอร์ตั้งแต่เริ่มต้น 27
3.1 การเลือกคลาสพื้นฐาน 27
3.2 ควบคุมลำดับการนำเสนอ 28
3.3 หลายวิธีในการ Render เพื่อนำเสนอการควบคุม 30
3.3.1 ใช้คลาส HTMLTextWriter เพื่อส่งออก 30
3.3.2 ส่งออกแท็ก HTML โดยตรง 32
3.3.3 การใช้ RenderControl ของการควบคุมเซิร์ฟเวอร์
วิธีที่ 33
3.4 วิธี AddAttributesToRender 34
3.5 วิธี CreateChildControls 35
3.6 อินเทอร์เฟซ INamingContainer 36
3.7 การใช้การควบคุมแบบผสม 38
3.7.1 วิธี CreateChildControls 39
3.7.2 คุณลักษณะ ChildControlsCreated 39
3.7.3 วิธีการ SureChildControls 39
3.7.4 วิธีการ RecreateChildControls 39
3.7.5 คุณสมบัติการควบคุม 40
3.7.6 วิธี HasControls 40
3.7.7 วิธี HasEvents 40
3.7.8 วิธีการ FindControl 41
3.7.9 ตัวอย่างการใช้การควบคุมแบบผสม 41
3.8 ทักษะการพัฒนาร่วมกัน 51
3.8.1 คุณลักษณะ DesignMode 51
3.8.2 คุณสมบัติการมาสก์ในการควบคุมคลาสพื้นฐาน 52
3.8.3 Page.Request.คุณสมบัติเบราว์เซอร์ 53
3.8.4 ตั้งค่าข้อกำหนด ID ควบคุม 53
3.8.5 ปรับปรุงฟังก์ชั่น FindControl 54
3.8.6 การแมปค่าควบคุมเซิร์ฟเวอร์กับไคลเอนต์ 55
3.8.7 ห้ามการควบคุมที่ได้รับจาก CompositeControl จากการสร้างการควบคุมลูก 56
3.8.8 หมายเหตุเกี่ยวกับการใช้ CreateChildControls 56
3.8.9 อย่าเข้าใจผิดเกี่ยวกับการออกแบบ meta-property DefaultValue 57
3.8.10 การใช้ทรัพยากรคลาสพื้นฐานใน Render วิธี 57
3.8.11 การคอมไพล์แบบมีเงื่อนไขและคุณลักษณะแบบมีเงื่อนไข 60
3.9 สรุปบทที่ 61 นี้
บทที่ 4 คุณสมบัติการควบคุมเซิร์ฟเวอร์ 62
4.1 บทบาทของคุณสมบัติการควบคุม 62
4.1.1 คุณสมบัติของระบบ 62
4.1.2 คุณลักษณะที่กำหนดเอง 62
4.2 คุณลักษณะอย่างง่าย 63
4.3 คุณลักษณะเวลาออกแบบของคุณสมบัติ 64
4.4 คุณลักษณะที่ซับซ้อน 67
4.4.1 ภาพรวม 67
4.4.2 รูปแบบมาร์กอัปหลายรูปแบบสำหรับแอตทริบิวต์ที่ซับซ้อน 67
4.4.3 การศึกษาเชิงลึก - เครื่องวิเคราะห์คุณลักษณะที่ซับซ้อน 79
4.5 การศึกษาเชิงลึก - ปรับแต่งเครื่องมือแก้ไขอสังหาริมทรัพย์ของคุณเอง 85
4.5.1 ตัวแก้ไขคุณสมบัติของระบบ 85
4.5.2 ตัวแก้ไขคุณสมบัติแบบกำหนดเอง 91
4.6 ตัวแปลงประเภท 126
4.6.1 ตัวแปลงประเภทระบบ 126
4.6.2 การปรับแต่งตัวแปลงประเภทของคุณเอง 128
4.7 การใช้แอตทริบิวต์ที่กำหนดเอง 138
4.8 สรุปบทที่ 145 นี้
บทที่ 5 เหตุการณ์และกลไกการย้อนกลับข้อมูล 146
5.1 ภาพรวมของเหตุการณ์การควบคุมและข้อมูล postback 146
5.1.1 เหตุการณ์และความหมาย 146
5.1.2 กลไกการส่งคืนข้อมูล 147
5.2 การดำเนินกลไกการส่งคืนเหตุการณ์และข้อมูล 148
5.2.1 อินเทอร์เฟซเหตุการณ์การส่งคืนไคลเอนต์
IPostBackEventHandler 148
5.2.2 การเปิดเผยข้อมูล postback/callback ของลูกค้า 150
5.2.3 ส่งคืนอินเทอร์เฟซการประมวลผลข้อมูล
ไอโพสต์แบ็คดาต้าแฮนด์เลอร์ 153
5.2.4 จัดการเหตุการณ์การควบคุมที่สืบทอดมาจากคลาสพื้นฐาน 159 อย่างถูกต้อง
5.2.5 ขยายการทำงานของการควบคุม KingTextBox (King
การควบคุม TextBoxCanPostEvent) 161
5.3 กลไกการจัดการเหตุการณ์ของการควบคุมแบบคอมโพสิต 168
5.3.1 ออบเจ็กต์การรวบรวมเหตุการณ์ที่มีประสิทธิภาพสูง 168
5.3.2 ปรับแต่งคลาสพารามิเตอร์ผู้รับมอบสิทธิ์และเหตุการณ์ของคุณเอง 170
5.3.3 การจัดการเหตุการณ์ของการควบคุมแบบคอมโพสิต 175
5.3.4 การควบคุมฟังก์ชันเติมข้อความอัตโนมัติ
ค้นหาการควบคุมอัจฉริยะ 185
5.4 บทสรุปของบทที่ 193 นี้
บทที่ 6 หน้ากลไกสถานะ 194
6.1 ภาพรวมสถานะเพจ 194
6.2 ดูกลไกสถานะ 195
6.2.1 อินเทอร์เฟซ ISteManager 195
6.2.2 การโหลดและการบันทึกระยะมุมมองในวงจรชีวิตการควบคุม 196
6.2.3 แอปพลิเคชันสถานะมุมมองแบบธรรมดา 197
6.2.4 การใช้สถานะมุมมองประเภทที่กำหนดเอง 205
6.3 กลไกการควบคุมสถานะ 217
6.4 ความสัมพันธ์ระหว่างสถานะมุมมองและสถานะการควบคุม 221
6.4.1 การใช้สถานะมุมมองแม้ว่าจะปิดใช้งานสถานะมุมมองก็ตาม
วัตถุ ViewState 221
6.4.2 อินเทอร์เฟซ IStateManager ยังคงสามารถใช้งานได้ในสถานะการควบคุม 223
6.4.3 กฎสำหรับการใช้งานร่วมกันของสถานะมุมมองและสถานะการควบคุม 225
6.5 สถานะหน้าที่เข้ารหัส 225
6.6 ล้างสถานะเพจ 226
6.7 ดูการวิเคราะห์สถานะของการควบคุมที่เพิ่มแบบไดนามิก 228
6.8 ตัวแปลงชนิดแบบกำหนดเองเพื่อให้ได้อนุกรมที่มีประสิทธิภาพ 231
6.9 กลยุทธ์การเพิ่มประสิทธิภาพสถานะเพจ 238
6.9.1 การเพิ่มประสิทธิภาพตำแหน่งที่เก็บข้อมูล - บันทึกข้อมูลสถานะมุมมองบนเซิร์ฟเวอร์แทนไคลเอ็นต์ 238
6.9.2 การเพิ่มประสิทธิภาพระดับเสียง—การบีบอัดข้อมูลสถานะมุมมอง 240
6.9.3 การจัดเก็บข้อมูลสถานะมุมมองแบบก้อน 243
6.10 สรุปสถานะมุมมองและสถานะการควบคุม 243
6.11 สรุปบทที่ 244 นี้
บทที่ 7 การปรับแต่งสไตล์ธีมการควบคุมแบบกำหนดเอง 245
7.1 ภาพรวมของรูปแบบการควบคุม 245
7.2 รองรับ ASP.NET สำหรับสไตล์ 245
7.2.1 หลักการทำงานและการใช้งาน Style class 245
7.2.2 ฟังก์ชั่นสนับสนุนสไตล์ของคลาสฐาน WebControl และหลักการทำงานของมัน 249
7.2.3 คลาส HTMLTextWriter รองรับรูปแบบการควบคุม 252
7.2.4 กำหนดกฎแอตทริบิวต์สไตล์ภายในการควบคุม 253
7.2.5 วิธีการแปลงทั่วไปสองวิธี 256
7.3 ตัวอย่างการใช้งาน 260
7.3.1 รูปแบบการควบคุมแบบคอมโพสิตและสถานะมุมมอง 260
7.3.2 โครงสร้างการควบคุมและแผนการแยกรูปแบบ 268
7.4 สรุปบทที่ 295 นี้
บทที่ 8 ควบคุมโมเดลการเขียนโปรแกรมไคลเอนต์ 297
8.1 การควบคุมฝั่งเซิร์ฟเวอร์ ASP.NET รองรับไคลเอนต์ 297
8.2 คำอธิบายโดยละเอียดของฟังก์ชันคลาส ClientScriptManager 301
8.2.1 วิธีการ RegisterArrayDeclaration 301
8.2.2 วิธี RegisterClientScriptBlock 302
8.2.3 RegisterClientScriptInclude วิธี 303
8.2.4 วิธี RegisterClientScriptResource 304
8.2.5 วิธี RegisterStartupScript 305
8.2.6 วิธีการลงทะเบียนExpandoAttribute 305
8.2.7 วิธี RegisterHiddenField 306
8.2.8 วิธี GetCallbackEventReference 307
8.2.9 วิธี GetPostBackClientHyperlink 307
8.2.10 วิธี GetPostBackEventReference 308
8.2.11 GetWebResourceUrl วิธี 308
8.2.12 วิธี RegisterOnSubmitStatement 309
8.3 ลูกค้าโทรกลับ 309
8.4 ตัวอย่างแอปพลิเคชันควบคุมไคลเอนต์ 323
8.4.1 การห่อหุ้มวัตถุไคลเอนต์ JS 323
8.4.2 การห่อหุ้มออบเจ็กต์ไคลเอ็นต์ HTC 343
8.4.3 แอปพลิเคชันตัวอย่างการควบคุมลายเซ็นออนไลน์ 371
8.5 เฟรมเวิร์ก JavaScript ที่ใช้กันทั่วไปบางตัว 385
8.6 สรุปบทที่ 387 นี้
บทที่ 9 การปรับแต่งการควบคุมผู้ใช้ 388
9.1 ภาพรวมการควบคุมผู้ใช้ 388
9.1.1 บทบาทของการควบคุมผู้ใช้ 388
9.1.2 ทำความเข้าใจ System.Web.UI.UserControl
คลาสพื้นฐาน 388
9.2 ตัวอย่างแอปพลิเคชันควบคุมผู้ใช้ 389
9.2.1 การควบคุมผู้ใช้อย่างง่าย 389
9.2.2 การควบคุมผู้ใช้การผูกข้อมูลที่ซับซ้อน 394
9.3 ผู้ใช้ควบคุมแคช 419
9.3.1 ข้อมูลเบื้องต้นเกี่ยวกับแคช ASP.NET 419
9.3.2 ผู้ใช้ควบคุมแคช 420
9.4 สรุปบทที่ 421 นี้
บทที่ 10 การพัฒนาการควบคุมการตรวจสอบ 422
10.1 การควบคุมการตรวจสอบทำงานอย่างไร 422
10.1.1 คำอธิบายโดยย่อของการควบคุมการตรวจสอบความถูกต้องในตัว 422
10.1.2 การวิเคราะห์กลไกการทำงานของการควบคุมการตรวจสอบ 423
10.2 การใช้การควบคุมการตรวจสอบแบบกำหนดเอง 443
10.3 บทสรุปของบทที่ 451 นี้
บทที่ 11 การใช้ทรัพยากรที่ฝังอยู่ในการควบคุม 452
11.1 หลักการฝังทรัพยากรในการควบคุม 452
11.2 การใช้ทรัพยากรที่ฝังอยู่ในการควบคุม 453
11.2.1 การใช้ทรัพยากรที่ฝังอยู่ในการควบคุม 453
11.2.2 ประเภททรัพยากรที่ฝังทั่วไปและการใช้งาน 455
11.3 เครื่องมือเบราว์เซอร์ทั่วไป 460
11.3.1 HTTPWatch 460
11.3.2 แถบเครื่องมือนักพัฒนา IE 461
11.3.3 พู้ทำเล่น 461
11.4 สรุปบทที่ 462 นี้
บทที่ 12 การพัฒนาการควบคุมการเชื่อมโยงข้อมูลเทมเพลต 463
12.1 กลไกการควบคุมแอตทริบิวต์เทมเพลต ASP.NET 463
12.1.1 ข้อมูลเบื้องต้นเกี่ยวกับแอตทริบิวต์เทมเพลต 463
12.1.2 รองรับ ASP.NET สำหรับการควบคุมเทมเพลต 464
12.1.3 การวิเคราะห์กลไกการใช้เทมเพลตการควบคุม Repeater 466
12.2 ตัวอย่างแอปพลิเคชันควบคุมแบบกำหนดเอง 469
12.2.1 ฟังก์ชั่นการควบคุมเทมเพลต 469
12.2.2 ตัวอย่างการใช้งาน 470
12.3 สรุปบทที่ 489 นี้
บทที่ 13 การเชื่อมโยงข้อมูลและการควบคุมแหล่งข้อมูล 490
13.1 การควบคุมการเชื่อมโยงข้อมูล 490
13.1.1 ภาพรวมของการควบคุมที่ถูกผูกไว้กับข้อมูล 490
13.1.2 การสนับสนุนของ ASP.NET สำหรับการควบคุมการเชื่อมโยงข้อมูล 491
13.2 แอปพลิเคชันตัวอย่างการควบคุมการเชื่อมโยงข้อมูล 501
13.2.1 ฟังก์ชั่นการใช้งานการควบคุม 501
13.2.2 ตัวอย่างการใช้งาน 502
13.3 การควบคุมแหล่งข้อมูล 508
13.3.1 ภาพรวมของการควบคุมแหล่งข้อมูล 508
13.3.2 รองรับ ASP.NET สำหรับการควบคุมแหล่งข้อมูล 508
13.4 แอปพลิเคชันตัวอย่างการควบคุมแหล่งข้อมูล 515
13.4.1 ฟังก์ชั่นการใช้งานการควบคุม 515
13.4.2 ตัวอย่างการใช้งาน 516
13.5 สรุปบทนี้ 522
บทที่ 14 โซลูชันการควบคุมเพิ่มเติม——GridView 523
14.1 ภาพรวมของการควบคุมเพิ่มเติม 523
14.2 ปรับแต่ง GridView หลายส่วนหัว 523
14.2.1 ภาพรวมฟังก์ชัน 523
14.2.2 การใช้รหัส 524
14.3 แก้ไขส่วนหัว GridView และเพิ่มแถบเลื่อนรองรับ 527
14.3.1 ภาพรวมฟังก์ชัน 527
14.3.2 การใช้รหัส 528
14.4 สรุปบทที่ 533 นี้
บทที่ 15 สรุปการเขียนโปรแกรมในโหมดการออกแบบการควบคุมแบบกำหนดเอง 534
15.1 .NET Framework รองรับเวลาออกแบบ 534
15.2 รองรับข้อมูลเมตาเวลาออกแบบ 535
15.3 การทำให้อนุกรมแอตทริบิวต์ที่ซับซ้อน 539
15.4 ตัวแปลงประเภท 539
15.5 ตัวแก้ไขคุณสมบัติ 540
15.6 ความรู้เบื้องต้นเกี่ยวกับคลาสพื้นฐานที่มีอยู่ในรูปแบบการออกแบบ 541
15.7 การสนับสนุนเวลาออกแบบสำหรับการแสดงผลการควบคุม 543
15.7.1 ภาพรวม 543
15.7.2 ตัวอย่างการใช้งาน 543
15.8 ฟอร์แมตอัตโนมัติ 546
15.8.1 ภาพรวม 546
15.8.2 ตัวอย่างการใช้งาน 547
15.9 ตัวออกแบบ UI เทมเพลต 551
15.10 รายการการทำงานอัจฉริยะ 552
15.10.1 ภาพรวม 552
15.10.2 ตัวอย่างการใช้งาน 552
15.11 พื้นที่ออกแบบการควบคุม 558
15.11.1 ภาพรวม 558
15.11.2 ตัวอย่างการใช้งาน 558
15.12 สรุปบทที่ 562 นี้
บทที่ 16 การพัฒนาการควบคุม ASP.NET Ajax——
ลูกค้า 563
16.1 ภาพรวมของ ASP.NET Ajax Framework 563
16.2 Ajax Library รองรับฟังก์ชันเชิงวัตถุฝั่งไคลเอ็นต์ 564
16.2.1 เนมสเปซและประเภทและฟังก์ชันคลาส 565
16.2.2 ประเภทอินเทอร์เฟซ 568
16.2.3 ประเภทคลาสและคุณลักษณะการสืบทอดเชิงวัตถุ 569
16.2.4 ประเภทการแจงนับ 570
16.2.4 ฟังก์ชั่นการสะท้อน 570
16.3 ประเภททั่วไปใน Ajax Library 571
16.3.1 ส่วนขยาย Ajax Library เป็น JavaScript ประเภทพื้นฐาน 571
16.3.2 Sys.StringBuilder คลาส 576
16.4 Ajax Library ร้องขอเซิร์ฟเวอร์และ
บริการเว็บ 577
16.4.1 คลาสในเนมสเปซ Sys.NET 577
16.4.2 ร้องขอการวิเคราะห์กระบวนการ 578
16.4.3 ตัวอย่างคำขอ WebRequest 579
16.4.4 การใช้พรอกซีเพื่อใช้เซิร์ฟเวอร์การโทร Ajax ตัวอย่าง 581
16.5 Ajax Library รองรับการพัฒนาคลาสไคลเอนต์ควบคุม 584
16.5.1 สมาชิกฐานการควบคุมไคลเอ็นต์ (คลาส/อินเทอร์เฟซ) 584
16.5.2 ASP.NET Ajax ควบคุมวงจรชีวิตไคลเอ็นต์ 589
16.6 แอปพลิเคชันตัวอย่างการควบคุมไคลเอ็นต์ 592
16.7 การดีบักและการติดตาม603
16.8 บทสรุปของบทที่ 605 นี้
บทที่ 17 การพัฒนาการควบคุม ASP.NET Ajax——
เซิร์ฟเวอร์ 606
17.1 ภาพรวมของการควบคุมเซิร์ฟเวอร์ ASP.NET Ajax 606
17.2 การควบคุมเซิร์ฟเวอร์ Ajax 607
17.2.1 การควบคุมเซิร์ฟเวอร์ Ajax 607
17.2.2 การควบคุมส่วนขยาย ASP.NET Ajax 612
17.3 คลาสพื้นฐาน ASP.NET Ajax สำหรับการควบคุมเซิร์ฟเวอร์รองรับ 612
17.3.1 คลาสพื้นฐานที่รองรับโดย Ajax ควบคุม 612
17.3.2 ตัวอย่างแอปพลิเคชันควบคุม Ajax 623
17.4 สรุปบทที่ 636 นี้
ภาคผนวก A .NET 3.5 ชุดบทช่วยสอนทางเทคนิค——
คอลเลกชัน/ASP.NET Ajax/SilverLight/JQuery 646
ขยาย