ตอน 37 ไฟล์ชนิดต่างๆ ใน ASP.NET

ไปหน้าแรก | สารบัญ | Laploy.comระเบียนบทความ | บทความจากลาภลอย

เว็บไซต์นี้เป็นตัวอย่างเนื้อหาบางตอนในหนังสือ "เรียนรู้ด้วยตนเอง OOP C# ASP.NET" ครอบคลุม บทที่ 1 ถึงบทที่ 6 (ในหนังสือมี 21 บท) เนื้อหาใน Blog อาจอาจแตกต่างจากในหนังสือเพราะเป็นเนื้อหาที่ยังไม่ได้ตรวจแก้ขัดเกลา (edit)

กดที่นี่เพื่อดูรายละเอียดเนื้อหาในแต่ละบท

กดที่นี่เพื่อไปยังเว็บบอร์ด ถาม-ตอบ 

 

 

ไฟล์ชนิดต่างๆ ใน ASP.NET

เมื่อสร้าง web app ด้วย ASP.NET เราจะพบกับไฟล์นามสกุลต่างๆ เป็นจำนวนมาก (เกือบทั้งหมดเป็น ASCII text file ธรรมดา) ผู้เขียนขอแนะนำให้รู้จักเฉพาะที่พบบ่อยดังนี้

  • aspx: คือไฟล์ที่เป็น WebForm ของ ASP.NET
  • aspx.cs: ไฟล์เก็บ source code ภาษา C# ของคลาสที่จะถูกคอมไพล์ตอน run time ไฟล์นี้เป็นคลาสแบบ code-behind ของไฟล์ .aspx ที่มีชื่อเดียวกัน
  • cs: ไฟล์เก็บ source code ภาษา C# ของคลาสที่จะถูกคอมไพล์ตอน run time ไฟล์นี้เป็นคลาสโดยเอกเทศ ไม่เกี่ยวกับหน้าเว็บโดยตรง
  • ascx: เป็นไฟล์ซึ่งทำหน้าที่เก็บ web user control อันเป็น control ที่เรากำหนดเองและนำกลับมาใช้ใหม่ได้โดยง่าย
  • config: ปรกติแล้วจะชื่อ web.config เก็บข้อมูลแบบ XML ทำหน้าที่เก็บค่ากำหนดต่างๆ ของ ASP.NET
  • csproj: คือ project ไฟล์ของภาษา C#
  • dll: คือ assembly ภาษา MSIL
  • mdb: ไฟล์ฐานข้อมูลที่สร้างจากโปรแกรม Microsoft Access
  • sln: คือไฟล์ solution ของ Visual Studio (ในหนึ่ง solution จะมีตั้งแต่หนึ่งถึงหลายๆ project)
  • css: ไฟล์เก็บข้อมูล Style sheet
  • html: หน้าเว็บแบบไม่มีความเปลี่ยนแปลง ที่เขียนด้วยภาษา HTML

 

สรุปเรื่องไฟล์ชนิดต่างๆ ใน ASP.NET

  • ASP.NET มีไฟล์เฉพาะสำหรับทำหน้าที่ต่างๆ หลายแบบ เช่น .aspx คือหน้าเว็บ
  • ไฟล์เกือบทุกแบบเป็น text file คือเป็นไฟล์ตัวอักษร
  • ไฟล์ส่วนใหญ่ใช้ text editor แก้ไขได้

 

การทำงานของหน้าเว็บแบบ ASP.NET

หากเป็นหน้าเว็บธรรมดาที่ใช้ภาษา HTML เมื่อผู้ใช้พิมพ์ URL ของหน้านั้นๆ ใน web browser ฝ่าย web server จะส่งไฟล์ html ไปแสดงภาพ (การสร้างภาพบนหน้าจอของ web browser ต่อไปจะเรียกว่า render) ภาพที่ปรากฏเป็นภาพที่ถูกกำหนดไว้โดยโค้ดภาษา html ซึ่งเป็นภาษาที่ใช้เพื่อการแสดงภาพเท่านั้น ไม่มีส่วนประมวลผล เราไม่สามารถเขียนโค้ดภาษา html ให้เกิดการทำงานโต้ตอบกับผู้ใช้ หรือเปลี่ยนแปลงการทำงานไปตามเงื่อนไขได้ สิ่งที่ปรากฏบนหน้าจอจึงเหมือนเดิมตลอด

ส่วนหน้าเว็บที่เป็น ASP.NET เมื่อได้รับการร้องขอ (ผู้ใช้ป้อนพิมพ์ URL แล้วกดปุ่ม Go) server จะนำไฟล์หน้าเว็บ (สมมุติว่าเป็นไฟล์ product.aspx) มาประมวลผลก่อนแล้วจึงสร้าง (generate) โค้ดเป็นภาษา html แล้วส่งไปยัง web browser ทำให้หน้าเว็บมีพลวัต คือเปลี่ยนแปลงไปไม่ตายตัว ขึ้นอยู่กับสภาพการณ์

ยกตัวอย่างเช่น เมื่อผู้ใช้เรียกดูหน้าแสดงรายการสินค้า (สมมุติว่าเป็นไฟล์ product.aspx) การดูข้อมูลสินค้าแต่ละหมวดหมู่ จำนวนและรายละเอียดสินค้าจะต่างกัน ภาพที่แสดงบนหน้าเว็บจึงแตกต่างกันไปตามข้อมูลในฐานข้อมูล ทั้งๆ ที่เป็นการป้อนพิมพ์ url เพื่อเรียกหน้าเว็บ product.aspx เดิมตลอด

หัวข้อนี้ผู้เขียนจะอธิบายหลักการทำงานพื้นฐานของหน้าเว็บแบบ ASP.NET ว่า server มีขั้นตอนการทำงานเช่นไรจึงเกิดเป็นหน้าเว็บที่มีพลวัตรขึ้นได้

 

Postback และ Round trip

สมมุติว่าผู้ใช้เปิดหน้า product.aspx ในเว็บไซต์ของเรา ซึ่งเป็นหน้าที่มีช่องให้กรอกข้อมูล และมีปุ่ม submit เนื่องจากหน้าเว็บแบบ ASP.NET เป็นโค้ดที่รันบน server ดังนั้นเมื่อเกิดการทำงานอะไรก็ตามบนหน้าเว็บ product.aspx (เช่นผู้ใช้กดปุ่มหรือเลือก check box หรือทำอะไรกับ control ที่อยู่บนหน้าเว็บ product.aspx ) หน้าเว็บ product.aspx จะส่งข้อมูลการกระทำนั้นๆ ไปยัง server (เรียกว่าการทำ Postback) ก่อนเสมอ

เมื่อ server ได้รับข้อมูลแล้ว มันจะนำข้อมูลนั้นไปประมวลผลตามโค้ด server side script ที่เราเขียนเตรียมไว้ (ยกตัวอย่างเช่นภาษา C#) แล้วสร้าง (generate) เป็นโค้ดภาษา html เพื่อส่งกลับไปยัง web browser อีกครั้งหนึ่ง ทำหน้าเราเห็นหน้าเว็บ product.aspx เมื่อเกิดการ render หลังการโหลดใหม่ ที่จะเกิดขึ้นโดยอัตโนมัติ (เมื่อมี Round trip)

การทำงานแบบ Postback และ Round trip จะดำเนินไปเป็นวัฏจักรดังนี้

  1. ผู้ใช้เรียกหาหน้าเว็บ product.aspx (หรือหน้าเว็บ product.aspx ถูกเรียกด้วย HTTP get ของตัวมันเอง) โค้ดในหน้า product.aspx จะทำงานเป็นครั้งแรก ซึ่งเราอาจจะใส่โค้ดเตรียมการเบื้องต้นบางอย่างไว้ใน method Page_Load ของหน้า product.aspx
  2. ASP.NET ทำงานตามโปรแกรมภาษา C# ใน method Page_Load แล้วสร้างและส่งโค้ด html มายัง web browser ซึ่งจะถูก render ทันที ทำให้ได้ภาพหน้าเว็บที่เป็นไปตามองค์ประกอบต่างๆ ที่เรากำหนดไว้ในไฟล์ product.aspx
  3. ผู้ใช้ป้อนพิมพ์ข้อมูลหรือกดปุ่มเลือกการทำงานบางอย่าง หรืออาจเพียงคลิกที่ลิงค์ไปหน้าอื่น (ซึ่งหากเป็นเช่นนั้น จะถือว่าเป็นการจบการทำงานของหน้า product.aspx ไป)
  4. ในกรณีที่ผู้ใช้ป้อนข้อมูลไว้ใน form แล้วกดปุ่ม submit ข้อมูลที่ผู้ใช้ป้อนไว้จะถูก post ไปยัง web server (โค้ดที่เราใส่ไว้ในหน้า product.aspx ทำให้เกิดการ HTTP Post ซึ่งใน ASP.NET เรียกจะเรียกการกระทำนี้ว่า postback) ซึ่งเป็นการส่งข้อมูลกลับไปยังตัวเอง (คือส่ง ไปหน้า product.aspx)
  5. โค้ดของหน้าเว็บ product.aspx จะทำงานที่ server อีกครั้งหนึ่ง โดยครั้งนี้มีข้อมูลที่ผู้ใช้ป้อนพิมพ์หรือเลือกถูกนำมาประมวลผลร่วมด้วย
  6. โค้ดของหน้า product.aspx จะรันที่ sever เพื่อประมวลผลกับข้อมูลที่ผู้ใช้ป้อนพิมพ์ไว้ใน form ตามโปรแกรมที่เราเขียนไว้
  7. ASP.NET สร้างและส่งโค้ด html มายัง web browser จึงเกิดการ render หน้าเว็บอีกครั้งหนึ่ง

วัฏจักรนี้จะเกิดซ้ำไปเรื่อยตราบเท่าที่ผู้ใช้ยังคงทำงานอยู่กับหน้า product.aspx ทุกครั้งที่ผู้ใช้กดปุ่ม ข้อมูลในหน้า product.aspx จะถูก post ไปยัง server และโค้ดของหน้า product.aspx จะทำงานซ้ำอีก กระบวนการที่เกิดขึ้นในหนึ่งวัฏจักรเรียกว่า round trip เนื่องจาการทำงานของโค้ดเกิดขึ้นที่ web server (เป็น server side script) สิ่งต่างๆ ที่เกิดขึ้นจึงจำเป็นต้องย้อนกลับไปทำที่ server ทุกครั้ง

การทำงานของหน้าเว็บแบบ ASP.NET เป็นวัฏจักรที่เวียนไปด้วยอำนาจของ postback และ round trip

บางครั้งเราต้องการให้การทำงานเกิดที่ตัว web browser ในเครื่อง desktop ซึ่งก็ทำได้โดยใช้ client script ส่วนมากจะเป็นการทำงานเล็กๆ น้อยๆ เช่นการกลั่นกรอง หรือตรวจสอบความถูกต้องของข้อมูลที่ผู้ใช้ป้อนพิมพ์ ในกรณีนี้เราจะใช้ JavaScript (ECMA script) หรือ JScript ซึ่งจะทำให้ web app ของเรามีการตอบสนองที่ดีขึ้น เพราะการทำงานของ client script จะใช้เวลาน้อยกว่าการ postback

มีบาง web app ที่เราต้องการให้การทำงานเกิดที่ browser ในเครื่อง desktop ด้วย และที่ server ด้วย และให้โปรแกรม client side script ทำงานประสานกับโปรแกรม server side script (คือใช้ JavaScript เรียก method ภาษา C# ใน server) เพื่อแลกเปลี่ยนข้อมูล หรือต้องการให้ client side script ทยอยเรียกข้อมูลให้ปรากฏบนหน้า browser โดยไม่ต้องโหลดหน้าเว็บใหม่ ก็สามารถทำได้ไม่ยาก (การทำงานลักษณะนี้มักเรียกว่า AJAX)

สรุปเรื่องการทำงานของหน้าเว็บแบบ ASP.NET

  • การสร้างภาพหน้าเว็บหรือการ render หมายถึงการแสดงตัวอักษรและ graphic บน web browser
  • ASP.NET ทำหน้าที่สร้างโค้ด html จากโปรแกรมภาษา C# ที่เราเขียนขึ้น
  • ภาพหน้าเว็บของไฟล์แบบ html ไม่มีการเปลี่ยนแปลง
  • ภาพหน้าเว็บ ASP.NET เปลี่ยนแปลงได้ตามโปรแกรมที่เราเขียนไว้
  • Postback คือการที่ Web browser ส่งข้อมูลที่ผู้ใช้ป้อนพิมพ์ไปยัง ASP.NET server โดยใช้โปรโตคอล HTTP Post
  • Roundtrip คือการที่ ASP.NET server ส่งโค้ด html มายัง web browser (client) หลังการประมวลผลข้อมูลที่ได้จาก Postback

ตอนต่อไป Server Control

Post a comment or leave a trackback: Trackback URL.

ความเห็น

  • Barbie  On กรกฎาคม 6, 2007 at 8:07 am

    มีสาระน่าสนใจ

  • หลงเงาจันทร์  On ตุลาคม 11, 2007 at 9:35 pm

    แหล่งรวมความรู้หน้าสนใจมาก

  • anisa  On ตุลาคม 8, 2008 at 9:44 pm

    มีเนื้อหาที่ดีมาก

  • sweety  On พฤศจิกายน 22, 2009 at 3:08 pm

    เนื้อหาดีมากค่ะ ขอบคุณมากนะคะ

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

%d bloggers like this: