ตอน 35 กายวิภาคของของ ASP.NET

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

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

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

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

 

 

กายวิภาคของของ ASP.NET

ASP.NET เป็นโปรแกรมที่อยู่ภายใน .NET Framework ทำหน้าที่ช่วยให้เราสามารถพัฒนาและใช้งานเว็บไซต์แบบ ASP.NET ได้ การพัฒนา web app แบบ ASP.NET เราสามารถใช้ภาษา .NET ต่างๆ ได้ เช่น VB.NET, C#.NET, J#.NET และ C++.NET

ASP.NET มีส่วนประกอบต่างๆ ดังนี้

1. framework สำหรับหน้าเว็บและ control ต่างๆ
2. compiler ของ ASP.NET
3. ระบบรักษาความปลอดภัยขั้นพื้นฐาน
4. ส่วนจัดการกับสภาวะ (state)
5. การกำหนดลักษณะของ application
6. ส่วนตรวจสอบและเฝ้าดูการทำงานของระบบ
7. ส่วนสนับสนุนการดีบัก
8. framework สำหรับ XML web service
9. ส่วนเพิ่มขยายของ host และส่วนจัดการ application life cycle
10. ส่วนเพิ่มขยายของ designer environment

ต่อไปนี้ผู้เขียนจะอธิบายรายละเอียดของแต่ละส่วนโดยสังเขป

1. framework สำหรับหน้าเว็บและ control ต่างๆ

ส่วนนี้ทำหน้าที่เป็น framework สำหรับการเขียนโปรแกรมที่ทำงานใน web server เพื่อสร้างหน้าเว็บอย่างมีพลวัต โดย browser หรือโปรแกรม client ใดๆ สามารถเรียกให้ทำงานได้ โดย ASP.NET จะสร้างเป็นโค้ด HTML ส่งไปให้ตามที่ร้องขอ

ASP.NET สนับสนุนการสร้างหน้าเว็บสำหรับเปิดดูในอุปกรณ์เคลื่อนที่เช่น โทรศัพท์เคลื่อนที่ คอมพิวเตอร์ขนาดพกพา และ PDA (personal digital assistants)

หน้าเว็บแบบ ASP.NET มีความเป็น OOP โดยสมบูรณ์ หน้าเว็บแบบ ASP.NET สามารถทำงานกับชิ้นส่วน HTML โดยผ่านทาง properties, methods และ events หน้าเว็บแบบ ASP.NET ลดความซับซ้อนของการสร้าง web app แบบเก่าโดยให้โค้ดการทำงานส่วนใหญ่เกิดขึ้นที่ server และ framework ยังทำหน้าที่จัดการสถานะของแต่ละหน้าเว็บและ controls ต่างๆ ในแต่ละ process life cycle ให้อีกด้วย

 

Control ต่างๆ

คำว่า controls ในที่นี้หมายถึง object บนหน้าเว็บแบบ ASP.NET เช่น ปุ่ม textbox, list box และ label หน้าเว็บที่สร้างด้วย ASP.NET สามารถทำงานได้กับ control หลายแบบ คือ

  • HTML server control: คือ server control ที่ทำเลียนแบบ html element เช่น ปุ่ม Label, list box, Text box เพื่อให้เราสามารถเขียนโปรแกรมควบคุมได้โดยง่าย
  • ASP.NET Web Server Control: คล้ายๆ HTML server control บางอย่างก็ซ้ำกัน ยกตัวอย่างเช่น button ที่มีทั้งแบบที่เป็น HTML server control และแบบ ASP.NET Web Server Control แต่แบบที่เป็น ASP.NET Web Server Control จะมีลูกเล่นมากกว่า ยกตัวอย่างเช่น button control แบบ ASP.NET Web Server Control มี property ให้เรากำหนด border หรือขนาดของกรอบได้ ขณะที่ button control แบบ HTML server control ไม่มี
  • Validation control: คือ control ทำหน้าที่ตรวจสอบการป้อนข้อมูล
  • User controls: คือ control ที่เราสร้างเองโดยอาศัยหน้าเว็บ ASP.NET ร่วมกับ control สามแบบข้างต้นมาผสมกันเป็น control ใหม่

องค์ประกอบต่างๆ ของหน้าเว็บ เช่น button, check box และ TextBox ถ้าเป็นหน้าเว็บ html ธรรมดาจะเรียกว่า html element แต่ในหน้าเว็บแบบ ASP.NET เรียกองค์ประกอบเหล่านี้ว่า control

 

2. compiler ของ ASP.NET

โค้ดทั้งหมดของ ASP.NET ต้องถูกคอมไพล์ก่อน นั่นทำให้โปรแกรมที่ได้มีคุณสมบัติดีๆ หลายอย่างเช่น strongly type ทำงานมีประสิทธิภาพสูงสุด และ early binding เป็นต้น เมื่อโค้ดถูกคอมไพล์ (เป็น MSIL) แล้ว CLR จะคอมไพล์ซ้ำอีกครั้ง (เป็น native code) เมื่อหน้าเว็บถูกโหลด เพื่อให้โปรแกรมทำงานได้รวดเร็วที่สุด ASP.NET มี compiler ที่จะคอมไพล์ส่วนประกอบต่างๆ ในหน้าเว็บ เช่น control ต่างๆ ให้กลายเป็น assembly เดียวกันเพื่อที่ ASP.NET จะนำไปให้บริการแก่ผู้ใช้ที่ร้องขอได้สะดวก

3. ระบบความปลอดภัยพื้นฐาน

ASP.NET จัดให้มีระบบพื้นฐานเกี่ยวกับการ login ของผู้ใช้ โดยผู้เขียนโค้ดจะเลือกใช้ระบบรักษาความปลอดภัยของ IIS หรือจะใช้ระบบรักษาความความปลอดภัยที่เพิ่มขึ้นเป็นพิเศษของ ASP.NET ก็ได้

4. ส่วนจัดการกับสภาวะ (state)

ในโปรแกรมแบบ desktop เมื่อเปลี่ยนหน้าจอหรือการทำงานไหลไปยังส่วนต่างๆ ตัวโปรแกรมยังจะจดจำสถานะต่างๆ ไว้ตลอด (เช่น สถานะของตัวแปรและไฟล์ข้อมูลที่เปิดอยู่) ส่วนโปรแกรมใน web ที่เขียนด้วยภาษาต่างๆ (เช่น PHP) เมื่อผู้ใช้กดลิงค์เปลี่ยนหน้าเว็บแล้ว จะไม่มีการจดจำหรือติดตามสภาวะใดๆ ไว้เลย (หากต้องการให้เก็บ ผู้เขียนโปรแกรมต้องบันทึกไว้เอง)

ส่วนโปรแกรมแบบ ASP.NET ทำงานเหมือน desktop เพราะ ASP.NET มีส่วนเก็บข้อมูลสถานะเหล่านี้ทั้งระหว่างการเปิดไปมาในหน้าเว็บต่างๆ หรือระหว่างการทำงานแต่ละครั้ง (คือปิด browser ไปแล้วเปิดขึ้นใหม่ภายหลัง) หรือแม้แต่การทำงานข้ามเครื่องคอมพิวเตอร์ก็ยังเก็บได้

5. การกำหนดลักษณะของ application

คุณลักษณะนี้ทำให้เราสามารถตั้งค่ากำหนดลักษณะของ web app ของเราได้ง่าย โดยอาจกำหนดไว้เมื่อติดตั้ง application หรือเมื่อติดตั้งไปแล้วจะแก้ไขเปลี่ยนแปลงอย่างไรก็ได้ตามใจชอบ โดยไม่ส่งผลกระทบต่อการทำงานของ application เพราะการเก็บค่ากำหนดนี้จะอยู่ในไฟล์แบบ XML ซึ่งเป็น ASCII text ไฟล์ธรรมดา

6. ส่วนตรวจสอบและเฝ้าดูภาวะของระบบ

คุณสมบัตินี้ช่วยให้ผู้สร้าง application สามารถเฝ้าติดตามผลการทำงานของ application ได้โดยดูจาก log ไฟล์ที่บันทึกสภาพการ error และประสิทธิภาพการทำงานของโปรแกรม

7. ส่วนสนับสนุนการ debug

ปรกติแล้ว web app จะดีบักได้ยากหรือทำไม่ได้เลย แต่ ASP.NET ใช้ประโยชน์จาก run-time debugging ที่มีอยู่ในตัว .NET Framework การ debug โปรแกรมจึงทำได้ง่ายและกว้างขวางเช่นเดียวกับ Win app

8. framework สำหรับ XML web service
ASP.NET สนับสนุน XML web service ซึ่งเป็นกลไกที่ช่วยให้ application สามารถแลกเปลี่ยนข้อมูลกันได้โดยไม่ถูก firewall ขัดขวาง (เพราะข้อมูลที่แลกเปลี่ยนเป็น text ล้วนๆ) web service ไม่ขึ้นอยู่กับเทคโนโลยีแบบใดโดยเฉพาะ ทำให้ใช้สามารถใช้ภาษาหรือเทคโนโลยีในการสร้าง web service ได้หลายแบบ หรือประสมกันได้

หนังสือเล่มนี้จะเน้นการสร้าง web app เป็นหลัก จึงไม่มีตัวอย่างการสร้าง web service คงมีแต่ตัวอย่างการเรียกใช้ (consume) web service เท่านั้น

9. ส่วนเพิ่มขยายของ host และส่วนจัดการ application life cycle

แม้ ASP.NET จะทำงานอยู่บน IIS ซึ่งทำหน้าที่เป็น web server แต่มันก็มีส่วนจัดการด้าน hosting ของมันเองด้วยทำให้ ASP.NET สามารถติดตามและจัดการตั้งแต่ application เริ่มทำงาน (เมื่อผู้ใช้เริ่มเปิดหน้าเว็บหน้าแรก) ไปจน application จบการทำงาน

10. ส่วนเพิ่มขยายของ designer environment

คุณสมบัตินี้ทำให้ผู้สร้าง web app ที่ทำงานใน ASP.NET สามารถออกแบบหน้าเว็บโดยใช้เครื่องมือแบบ visual เช่น Visual Studio ได้ ซึ่งใช้การทำงานแบบลากและหยอด (เหมือน macromedia dreamweaver) ทำให้นักออกแบบสามารถหน้าเว็บสร้างหน้าเว็บที่ซับซ้อนได้ง่ายและรวดเร็ว

สรุปเรื่องกายวิภาคของของ ASP.NET

• ASP.NET มีส่วนประกอบหลัก 10 ส่วน
• ASP.NET สนับสนุนการสร้างหน้าเว็บสำหรับเปิดดูในอุปกรณ์เคลื่อนที่
• หน้าเว็บแบบ ASP.NET มีความเป็น OOP โดยสมบูรณ์
• controls คือ object บนหน้าเว็บแบบ ASP.NET
• โค้ดทั้งหมดของ ASP.NET ต้องถูกคอมไพล์ก่อน
• ASP.NET มีการทำงานแบบจดจำสถานะ
• ASP.NET สนับสนุน XML web service

ตอนต่อไป : สิ่งที่ต้องใช้เพื่อการพัฒนา ASP.NET

Post a comment or leave a trackback: Trackback URL.

ความเห็น

  • Unknown  On สิงหาคม 31, 2007 at 9:49 am

    อาจอาจแตกต่างจากในหนังสือเพราะเป็นเนื้อหาที่ยังไม่ได้ตรวจแก้ขัดเกลา  

  • Savanna  On สิงหาคม 24, 2009 at 5:13 pm

    สวัสดีค่ะ ไม่ทราบว่าคุณลาภลอย ได้เขียน หนังสือที่มีเนื้อหาเกี่ยวกับ IIS บ้างไหมคะ ตอนนี้ ดิฉันมีปัญหา คือ 1. พอ deploy ASP.net เเล้ว จะเอาไปไว้ใน server เเล้วมารันทดสอบดู ปรากฎว่า browser มันถาม credentials ให้ใส่ username กับ password ดิฉันไม่อยากให้ มีหน้าจอ ถาม username เเละ password จะทำยังไงดีคะ ต้องไปเซตที่ IIS หรือเปล่าคะ หรือ web.configเเละ 2. พอ ไฟล์ที่ดิฉัน deploy เเล้ว เเละ เอาไปเก็บไวเที่ server เเต่พอ รันทดสอบอีกที มันเกิด bug ก้อ เลย เเก้ ไฟล์ เเละ deploy เเละเอาไปเก็บไว้ ที่server ใหม่ อีกครั้ง เเต่ว่า พอเวลารันสอบดู มันไม่ช่ายไฟล์ ตัวเดิมที่เเก้ไขค่ะ มันยังเป็นไฟล์ เก่า ไม่ทราบว่า ดิฉันจะทำยังไงดีคะ ที่จะให้ เปิดเว็บ เเล้ว เเสดงผลไฟล์ที่ได้เเก้ไขเเล้ว …….ช่วยชี้เเนะ หน่อยนะคะ …..ขอบคุณล่วงหน้าค่ะ มือใหม่ ASP.net /// นินา

ใส่ความเห็น

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: