ASP.NET คือ ตอนที่ 1 : การทำเว็บแอปพลิเคชันด้วยเว็บฟอร์ม (Web Forms)

  1. เว็บฟอร์ม (Web Forms): แนวทางดั้งเดิมในการทำเว็บ
  2. โครงสร้างของเว็บฟอร์ม: ทำความเข้าใจเกี่ยวกับการควบคุมเซิร์ฟเวอร์ (Server Controls)
  3. การจัดการสถานะ (State Management) ในเว็บฟอร์ม (Web Forms)
  4. เว็บฟอร์มในทางปฏิบัติ: การทำแอพเว็บฟอร์ม ASP.NET
  5. วิวัฒนาการของ ASP.NET: ก้าวไปไกลกว่าเว็บฟอร์ม

ในภูมิทัศน์ที่ยิ่งใหญ่ของการทำเว็บ มีเทคโนโลยี เฟรมเวิร์ก และเครื่องมือมากมายสำหรับการสร้างเว็บไซต์และแอปพลิเคชันแบบไดนามิก โต้ตอบ และใช้งานได้ จากจักรวาล .NET เป็นเครื่องมืออันมีค่าสำหรับนักพัฒนาที่รู้จักกันในชื่อ ASP.NET ASP.NET เป็นที่รู้จักในด้านความทนทานและความยืดหยุ่น มีรูปแบบการเขียนโปรแกรมหลายรูปแบบ ซึ่งหนึ่งในนั้นคือ Web Forms

ASP.NET Web Forms เป็นส่วนหนึ่งของตระกูล ASP.NET ตั้งแต่เริ่มก่อตั้งในช่วงต้นทศวรรษ 2000 ซึ่งเป็นแพลตฟอร์มสำหรับสร้างเว็บแอปพลิเคชันแบบไดนามิกโดยใช้แบบจำลองที่ขับเคลื่อนด้วยเหตุการณ์แบบดั้งเดิม แม้ว่าอาจถือว่าค่อนข้างล้าสมัยเมื่อเทียบกับเฟรมเวิร์กสมัยใหม่ เช่น ASP.NET MVC หรือ ASP.NET Core แต่การทำความเข้าใจเกี่ยวกับฟอร์มเว็บจะนำเสนอข้อมูลเชิงลึกอันมีค่าเกี่ยวกับวิวัฒนาการของการทำเว็บแอปพลิเคชัน และให้บริบททางประวัติศาสตร์ที่เป็นประโยชน์สำหรับนักทำแอพ ASP.NET

1. เว็บฟอร์ม (Web Forms): แนวทางดั้งเดิมในการทำเว็บ

ASP.NET Web Forms นำแนวทางรูปแบบตัวควบคุมเพจมาใช้ในการทำเว็บแอ็พพลิเคชัน ในรูปแบบนี้ ทุกหน้าในไซต์ของคุณทำหน้าที่เป็นผู้ควบคุม โดยจัดการคำขอและการตอบสนองสำหรับหน้านั้นโดยเฉพาะ รูปแบบ Web Forms ซึ่งขับเคลื่อนด้วยเหตุการณ์ นำประสบการณ์การทำแอพที่ใกล้เคียงกับแอปพลิเคชันเดสก์ท็อปแบบดั้งเดิมมาสู่การทำเว็บ ทำสิ่งนี้ให้สำเร็จโดยแยกลักษณะไร้สถานะของ HTTP ออกไปและจัดเตรียมเทคนิคการจัดการสถานะในตัว

Web Forms สร้างขึ้นจากการควบคุมเซิร์ฟเวอร์ ซึ่งเป็นส่วนประกอบที่สร้าง HTML เพื่อแสดงผลบนเบราว์เซอร์ของไคลเอ็นต์และตอบสนองต่อเหตุการณ์ต่างๆ เช่น การคลิกปุ่มหรือการเปลี่ยนแปลงข้อความ การควบคุมเซิร์ฟเวอร์เหล่านี้เป็นพื้นฐานของฟังก์ชัน ASP.NET Web Forms

2. โครงสร้างของเว็บฟอร์ม: ทำความเข้าใจเกี่ยวกับการควบคุมเซิร์ฟเวอร์ (Server Controls)

การควบคุมเซิร์ฟเวอร์เป็นส่วนประกอบที่นำกลับมาใช้ใหม่ได้ซึ่งห่อหุ้มอินเทอร์เฟซผู้ใช้และฟังก์ชันการทำงานอื่นๆ ที่เกี่ยวข้อง ใช้ในเว็บฟอร์ม ASP.NET เพื่อสร้างหน้า HTML ที่สามารถส่งคืนไปยังเบราว์เซอร์ การควบคุมเซิร์ฟเวอร์แบ่งออกเป็นการควบคุม HTML การควบคุมเว็บ และการควบคุมข้อมูล

การควบคุม (Controls) HTML

นี่คือแท็ก HTML มาตรฐานที่เบราว์เซอร์ใดๆ เข้าใจ runat="server"แต่ในเว็บฟอร์ม วัตถุเหล่า นี้จะกลายเป็นวัตถุที่ตั้งโปรแกรมได้เมื่อมีแอตทริบิวต์ แอตทริบิวต์นี้บ่งชี้ว่าการประมวลผลของตัวควบคุมจะได้รับการจัดการทางฝั่งเซิร์ฟเวอร์ ทำให้คุณสามารถจัดการกับตัวควบคุมเหล่านี้ทางโปรแกรมได้

การควบคุมเว็บ (Web Controls)

เหล่านี้เป็นส่วนประกอบ ASP.NET พิเศษที่ประมวลผลบนเซิร์ฟเวอร์และแสดงตัวเองเป็น HTML มาตรฐานที่รันไทม์ Web Controls เช่น TextBox, Button, Label เป็นต้น มีความเป็นนามธรรมมากกว่าและมีฟังก์ชันการทำงานและความยืดหยุ่นเพิ่มเติมเมื่อเทียบกับ HTML Controls

การควบคุมข้อมูล

การควบคุมข้อมูลคือการควบคุมเซิร์ฟเวอร์ที่ออกแบบมาเพื่อแสดงข้อมูลโดยเฉพาะ ตัวควบคุมต่างๆ เช่น GridView, ListView, Repeater เป็นต้น เป็นเครื่องมืออันทรงพลังที่สามารถใช้ในการผูก แสดง และจัดการข้อมูลจากแหล่งข้อมูลต่างๆ

3. การจัดการสถานะ (State Management) ในเว็บฟอร์ม (Web Forms)

หนึ่งในความท้าทายที่ใหญ่ที่สุดในการทำเว็บคือการจัดการสถานะของคำขอหลายรายการ โปรโตคอล HTTP ที่ไม่มีสถานะโดยการออกแบบ ไม่สนับสนุนคุณสมบัตินี้โดยเนื้อแท้ Web Forms จัดการกับปัญหานี้ด้วยเทคนิคการจัดการสถานะต่างๆ

View State

View State เป็นเทคนิคที่ใช้โดย ASP.NET Web Forms เพื่อยืนยันข้อมูลใน postbacks มันเก็บข้อมูลเป็นฟิลด์ที่ซ่อนอยู่ในหน้า แม้ว่าจะสะดวก แต่ก็สามารถนำไปสู่การถ่ายโอนข้อมูลจำนวนมากไปมาระหว่างเซิร์ฟเวอร์และไคลเอ็นต์ ซึ่งส่งผลต่อประสิทธิภาพการทำงาน

Session State

Session State เป็นอีกวิธีหนึ่งที่ใช้ในการจัดเก็บข้อมูลเฉพาะของผู้ใช้ สถานะเซสชันจะเก็บข้อมูลไว้บนเซิร์ฟเวอร์ ซึ่งแตกต่างจาก View State ทั้งในหน่วยความจำหรือในแหล่งข้อมูลภายนอก ซึ่งช่วยลดจำนวนข้อมูลที่ส่งระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ แต่สามารถเพิ่มการใช้หน่วยความจำบนเซิร์ฟเวอร์ได้

Application State

Application State อนุญาตให้แชร์ข้อมูลระหว่างผู้ใช้และคำขอทั้งหมด เช่นเดียวกับสถานะเซสชัน สถานะของแอปพลิเคชันจะถูกเก็บไว้บนเซิร์ฟเวอร์เช่นกัน อย่างไรก็ตาม เนื่องจากขอบเขตและผลกระทบจากการใช้หน่วยความจำ จึงควรใช้เท่าที่จำเป็น

4. เว็บฟอร์มในทางปฏิบัติ: การทำแอพเว็บฟอร์ม ASP.NET

มาทำความเข้าใจว่า Web Forms ทำงานอย่างไรกับแอปพลิเคชันง่ายๆ ที่รับอินพุตจากผู้ใช้และแสดงผล

ขั้นตอนที่ 1: สร้างโครงการเว็บฟอร์ม ASP.NET ใหม่

สร้างโครงการใหม่ใน Visual Studio โดยเลือกเทมเพลต ASP.NET Web Forms สิ่งนี้จะสร้างโครงสร้างโครงการเริ่มต้นพร้อมการกำหนดค่าที่จำเป็นทั้งหมด

ขั้นตอนที่ 2: ออกแบบแบบฟอร์ม

ในDefault.aspxไฟล์ของคุณ คุณออกแบบแบบฟอร์มโดยใช้การควบคุมเซิร์ฟเวอร์ ตัวอย่างเช่น หากต้องการยอมรับชื่อ คุณสามารถใช้ตัวควบคุมกล่องข้อความ เมื่อต้องการส่งแบบฟอร์ม ให้ใช้ปุ่มควบคุม

<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" />
<asp:Label ID="lblResult" runat="server"></asp:Label>

ขั้นตอนที่ 3: จัดการกับเหตุการณ์การคลิกปุ่ม

ในDefault.aspx.csไฟล์ของคุณ คุณสามารถจัดการเหตุการณ์การคลิกปุ่มได้ดังนี้:

protected void btnSubmit_Click(object sender, EventArgs e)
{
    lblResult.Text = "Hello, " + txtName.Text + "!";
}

เมื่อคุณเรียกใช้แอปพลิเคชันและป้อนชื่อในกล่องข้อความ ข้อความที่คุณป้อนจะแสดงขึ้นเมื่อคุณคลิกปุ่มส่ง แบบฝึกหัดง่ายๆ นี้แสดงให้เห็นว่า Web Forms สรุปโปรโตคอล HTTP ไร้สถานะได้อย่างไร ทำให้รู้สึกเหมือนกำลังทำงานกับแอปพลิเคชันบนเดสก์ท็อปที่ขับเคลื่อนด้วยเหตุการณ์

5. วิวัฒนาการของ ASP.NET: ก้าวไปไกลกว่าเว็บฟอร์ม

แม้จะได้รับความนิยมก่อนหน้านี้ แต่โมเดล ASP.NET Web Forms ก็มีข้อจำกัด การพึ่งพาสถานะการดูและ postbacks นำไปสู่ปัญหาด้านประสิทธิภาพและรหัสที่บวม นอกจากนี้ ความสัมพันธ์ที่แน่นแฟ้นระหว่างการนำเสนอและตรรกะทำให้การทดสอบหน่วยทำได้ยากและเป็นอุปสรรคต่อการแยกข้อกังวล

ระบบนิเวศของ .NET มีการพัฒนาตั้งแต่นั้นมา โดยแนะนำกรอบงาน ASP.NET MVC ซึ่งแก้ไขปัญหาเหล่านี้โดยการนำสถาปัตยกรรม Model-View-Controller มาใช้ ให้การแยกที่ชัดเจนระหว่างอินเทอร์เฟซผู้ใช้และตรรกะทางธุรกิจ ส่งเสริมการพัฒนาที่ขับเคลื่อนด้วยการทดสอบ และให้นักพัฒนาสามารถควบคุม HTML และ JavaScript ได้มากขึ้น

ไม่นานมานี้ Microsoft ได้เปิดตัว ASP.NET Core ซึ่งเป็นเฟรมเวิร์กข้ามแพลตฟอร์มแบบลีนที่กลายเป็นตัวเลือกหลักอย่างรวดเร็วสำหรับการทำเว็บแอปพลิเคชัน .NET สมัยใหม่ ASP.NET Core ประกอบด้วยเฟรมเวิร์ก MVC และ Web API และด้วยการเปิดตัว Razor Pages จึงมีรูปแบบการเขียนโปรแกรมบนเพจที่คล้ายกับ Web Forms แต่มีความสามารถที่ทันสมัย


การทำความเข้าใจ ASP.NET Web Forms นั้นมีประโยชน์สำหรับนักพัฒนาใดๆ ก็ตามที่ใช้งาน .NET แนวนอน ให้บริบททางประวัติศาสตร์เพื่อชื่นชมความก้าวหน้าในกรอบที่ทันสมัยมากขึ้นเช่น ASP.NET MVC และ ASP.NET Core นอกจากนี้ แอปพลิเคชันรุ่นเก่าที่สร้างโดยใช้เว็บฟอร์มยังคงมีอยู่ในหลายองค์กร ทำให้ความรู้นี้มีความเกี่ยวข้อง

การทำเว็บก้าวหน้าไปมากนับตั้งแต่ยุคของ Web Forms และด้วยความพยายามอย่างต่อเนื่องของ Microsoft ในการพัฒนาแพลตฟอร์ม .NET ให้ก้าวหน้า นักพัฒนาสามารถตั้งตารอที่จะใช้เครื่องมือที่ซับซ้อนและมีประสิทธิภาพมากขึ้นสำหรับการสร้างเว็บแอปพลิเคชัน ดังนั้น ไม่ว่าคุณจะทำงานบนระบบเดิมหรือกำลังสร้างสิ่งที่ยิ่งใหญ่ต่อไป การทำความเข้าใจหลักการของ ASP.NET Web Forms เท่านั้นที่สามารถเสริมสร้างทักษะการทำเว็บและทำแอพของคุณได้


ASP.NET คืออะไร

ASP.NET คือ ตอนที่ 2 : Model-View-Controller (MVC)