บทความ – Introduction to ASP.NET AJAX 4.0
บทความนี้ผมจะนำเสนอถึงนวัฒกรรมใหม่สำหรับการพัฒนา AJAX Application ใน ASP.NET AJAX 4.0 ที่จะช่วยให้เราสามารถพัฒนา AJAX Solution ออกมาด้วยแนวความคิดและแนวทางใหม่ โดยการย้ายส่วนการทำงานของ AJAX Engine ที่ทำหน้าที่ในการสร้าง UI ลงมาไว้ในฝั่งของ Client-Side และการสร้าง UI ในส่วนของ Client-Side ยังมีลักษณะเป็น Data Driven ซึ่งเป็นการสร้าง UI จากข้อมูลในรูปแบบของ JavaScript Object Array
เมื่อท่านผู้อ่านทราบถึงแนวทางของเวอร์ชั่นนี้แล้วผมจะแสดงตัวอย่างด้วยการใช้ฟีเจอร์พื้นฐานของ ASP.NET AJAX 4.0 เพื่อให้เห็นถึงวิธีการในการสร้าง AJAX Application ด้วยเทคนิคของ ASP.NET AJAX 4.0 และทราบถึงความสามารถของเวอร์ชั่นนี้ปัญหาของ ASP.NET AJAX 1.0 กับเป้าหมายของ ASP.NET AJAX 4.0
ตั้งแต่ ASP.NET AJAX 1.0 ได้ Release ออกมาในวันที่ 23 มกราคม 2007 การพัฒนา AJAX Application ใน ASP.NET เป็นสิ่งที่สามารถทำได้อย่างง่ายดายเพราะว่าวิธีในการพัฒนา AJAX Application นักพัฒนาเพียงนำ Control ScriptManager และ UpdatePanel ครอบไปยัง Control ต่างๆ ใน WebForms ให้อยู่ภายใต้ ContentTemplate ก็จะทำให้ Control ต่างๆ ที่อยู่ใน UpdatePanel เกิดการทำงานแบบ Asynchronous Postback ตามตัวอย่างในรูปด้านล่างนี้
รูปที่ 1 แสดงตัวอย่างการใช้ ScriptManager, UpdatePanel ในการสร้าง AJAX
รูปที่ 2 เปรียบเทียบโปรเซสการทำงานระหว่างฝั่งของ Server-Side และ Client-Side ใน ASP.NET AJAX 1.0
ถ้าเราเจาะลึกเข้าไปถึงโปรเซสการทำงานในการทำ Async-Postback เมื่อ AJAX Server-Side ได้รับ Request ที่เป็น Async-Postback ก็จะทำโปรเซสทั้งหมดที่เป็นของ ASP.NET Server Side ก่อนอย่างเช่นการทำ Event ต่างๆ ของ Page Event ใน ASP.NET อย่างเช่น Load, PreRender, SaveViewState เหมือนกับการ Postback ปกติเมื่อผ่านการ Event ต่างๆ ครบ ASP.NET AJAX ก็จะหยิบเอา HTML และ ViewState ส่งกลับลงมายัง Client-Side
รูปที่ 3 แสดงขั้นตอนในการทำ Async-Postback ใน ASP.NET AJAX 1.0
ดังนั้นโปรเซสการทำงานส่วนใหญ่ก็ยังอยู่บน AJAX Server-Side เช่นเดิมเพียงแต่สิ่งที่แตกต่างจากการที่ไม่มี ASP.NET AJAX เข้ามาช่วยคือเรื่องของ Responsive (ลักษณะแบบนี้เราเรียกว่าเป็น AJAX Engine แบบ Server Centric) ในทิศทางของ ASP.NET AJAX 4.0 จึงปรับเปลี่ยนสิ่งเหล่านี้ให้การทำงานของ AJAX Engine อยู่ในรูปแบบที่เป็น Client Centric แทน โดยเปลี่ยนโปรเซสการทำงานในการสร้าง UI ให้อยู่ในฝั่งของ Client-Side และให้ฝั่งของ Server-Side ทำหน้าที่ Consume ข้อมูลออกมาเป็น JSON ส่งให้กับ Client-Side ตามการร้องขอเท่านั้น
รูปที่ 4 เปรียบเทียบถึงขั้นตอนการทำงานของ AJAX Server-Side และ Client-Side (AJAX 4.0)
ใน ASP.NET AJAX 4.0 ได้มุ่งเน้นในการพัฒนาที่จะเพิ่มศักยภาพในส่วนของ Client-Slide Development โดยมีเป้าหมายที่จะเพิ่มความสามารถและลดข้อด้อยในเรื่องต่างๆ ดังนี้
- ปรับเปลี่ยนการทำงานของ AJAX Engine ให้เป็นแบบ Client-Centric จากเดิมที่เป็นแบบ Server-Centric โดยแบบเดิมนั้น Engine ของการทำ AJAX มาจาก Server Control ไม่ว่าจะเป็น ScriptManager, UpdatePanel แต่ใน Version 4.0 นี้กลไกต่างๆ จะอยู่ใน Client Slide
- ลด Data Traffic ในการทำ asynchronous ระหว่าง Server-Slide และ Client-Slide ให้มีขนาดเล็กลงด้วยการทำให้การส่งข้อมูลเป็นแบบ Pure JSON
- ทำให้ฝั่ง Client-Slide มีความง่ายในการสร้าง UI จาก JSON
ด้วยการใช้เทคนิคที่เรียกว่า AJAX Template โดยสร้าง Data Control จาก HTML
และใช้ Syntax ในการทำ Client Data Binding คล้ายกับการทำ Data Binding ใน
ASP.NET Server Control
สามารถที่จะเรียกใช้ Service ต่างๆ ได้ไม่ว่าจะเป็น Web Service, WCF, ADO.NET Data Service เพื่อนำข้อมูลที่เป็น JSON มา Binding ลงใน HTML Data Control ที่ได้ทำ Declarative หรือ Imperative ไว้ - ในฝั่งของ Client-Side จะสามารถทำงานประสานกับ Service ในแบบ Two-way Data Binding นั้นหมายความว่าเราสามารถใช้ JSON ในการ Read และ Write ข้อมูลจาก Server-Side กับ Client-Side
ฟีเจอร์ต่างๆ ใน ASP.NET AJAX 4.0
- Client Template Rendering
- Instantiating Behaviors and Controls Declaratively
- Live Data Binding
- Using the Observer Pattern with JavaScript Objects and Arrays
- The DataView Control
- The AdoNetServiceProxy Class
- The DataContext and AdoNetDataContext Classes
แหล่งข้อมูลและทรัพยากรต่างๆ ในการศึกษาค้นคว้า
สำหรับแหล่งข้อมูลที่ผมได้นำมาค้นคว้านำมาจากสอง Web Site คือ aspnet.codeplex.com และ msdn.microsoft.com และผมยังใช้ Visual Studio 2010 and .NET Framework 4 Training Kit - May Preview มาช่วยในการฝึกฝนทำ Lab
- http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24645
- http://msdn.microsoft.com/th-th/library/dd448879(en-us,VS.100).aspx
- http://www.microsoft.com/downloads/details.aspx?familyid=752CB725-969B-4732-A383-ED5740F02E93&displaylang=e
Java คืออะไร
Java เป็นภาคภาษาคอมพิวเตอร์ที่ได้รับการออกแบบ สำหรับการใช้บนอินเตอร์เน็ต โดยมีส่วนของการ "look and feel" แบบภาษา C++ แต่ง่ายกว่าการใช้ C++ และสามารถสร้างมุมมองโดยโปรแกรมได้ Java สามารถใช้ในการสร้างการประยุกต์แบบสมบูรณ์ ซึ่งสามารถเรียกใช้ได้เฉพาะเครื่องคอมพิวเตอร์ หรือการกระจายระหว่างเครื่องแม่ข่ายกับลูกข่ายในระบบเครือข่าย และสามารถสร้างโมดูลการประยุกต์ขนาดเล็กหรือ applet สำหรับเป็นส่วนของเว็บเพจ applet ทำให้มีความเป็นได้ในด้านการตอบสนองของผู้ใช้กับเว็บเพ็จคุณลักษณะคือ
- โปรแกรมมีขนาดเล็กในระบบเครือข่าย การคอมไพล์จะแปลงโปรแกรมเป็น Java bytecode ซึ่งสามารถเรียกใช้งานได้ทุกที่ภายในเครือข่าย Java virtual machine เป็นตัวแปร bytecode ให้เป็นโปรแกรมเพื่อใช้งานบนเครื่องคอมพิวเตอร์ มีความหมายว่า platform ที่แตกต่างกันของคอมพิวเตอร์ สามารถใช้โปรแกรมนี้ได้
- คำสั่งเป็นแบบ "Robust" มีความหมายว่า อ็อบเจคของ Java ไม่มีการอ้างอิงข้อมูล หรืออ็อบเจคจากภายนอกซึ่งแตกต่างจาก C++ และภาษาอื่น ๆ เป็นการทำให้มั่นใจไม่มีการเก็บตำแหน่งของข้อมูล ในโปรแกรมประยุกต์อื่น หรือในระบบปฏิบัติการที่ทำให้โปรแกรมไม่ทำงาน Java virtual machine ทำการตรวจสอบแต่ละอ็อบเจคที่ใช้ในโปรแกรม
- Java เป็นเหมือนกับอ็อบเจคหนึ่ง สามารถได้รับประโยชน์จาก class หรือคำสั่ง เนื่องจากอ็อบเจคมีคุณสมบัติเป็น "นาม" ซึ่งทำให้ติดต่อกับผู้ใช้ได้ ในขณะนี้ภาษาดั้งเดิมมีคุณสมบัติเป็น "กริยา" ดังนั้น method จะได้การรับรู้เป็นความสามารถของอ็อบเจคหรือพฤติกรรม
- การประมวลผลทำที่เครื่องลูกข่าย ดังนั้น Java applet มีคุณลักษณะในการออกแบบให้ทำงานได้เร็ว
- Java ง่ายกว่า C++ โดยเปรียบเทียบ
Java ได้รับการแนะนำโดย Sun Microsystems ในปี 1995 และทำให้เกิดทัศนคติการตอบสนองของเว็บ ทำให้ web browser รายหลักได้รวม Java virtual machine เป็นส่วนหนึ่งของ browser ผู้พัฒนาระบบปฏิบัติเกือบทั้งหมดได้ร่วม Java complier เป็นส่วนหนึ่งของผลิตภัณฑ์
Java virtual machine รวมถึงตัวเลือกคือ Just-in-time complier ซึ่งเป็น complier แบบไดนามิคในการคอมไพล์ byte code เป็นคำสั่งที่ประมวลผลได้ เป็นตัวเลือกในการแปร bytecode ในหลาย ๆ กรณี dynamic JIT สามารถคอมไพล์ได้เรียกว่าการแปรของ Java virtual machine
JavaScript เป็นภาษาที่พัฒนาโดย Netscape ซึ่งเป็นตัวแปร (Interpreter) ภาษาระดับสูงและง่ายกว่าการเขียนด้วย Java แต่ขาดความกะทัดรัดเหมือน Java และความเร็วไม่มาก
เนื่องจาก Java applet สามารถใช้งานได้รับเกือบทุกระบบปฏิบัติการ โดยไม่ต้องคอมไพล์ใหม่และ Java ไม่ใช้ส่วนขยายของระบบปฏิบัติการหรือตัวแปร ดังนั้น Java จึงได้รับพิจารณาเป็นภาษาหลักในการพัฒนาการประยุกต์บนเว็บ
PHP คืออะไร
หลายคนที่ทำเว็บไซต์ด้วย HTML หรือโปรแกรมช่วยสร้างเว็บไซต์ต่างๆ เช่น Dreamweaver แล้วอาจสงสัยว่าเมื่อทำ form สำหรับ รับค่าเช่น ชื่อ ที่อยู่ เสร็จแล้วจะเก็บค่ายังไง หรือจะทำอย่างไรต่อ หรือเว็บบอร์ดทำงานอย่างไร CMS ทำงานอย่างไร ทำไมบางเว็บไซต์สามารถโต้ตอบกับ ผู้ใช้งานได้ คำตอบของทุกคำถามคือ PHP ครับPHP นั้นเป็นภาษาสำหรับใช้ในการเขียนโปรแกรมบนเว็บไซต์ สามารถเขียนได้หลากหลายโปรแกรมเช่นเดียวกับภาษาทั่วไป อาจมีข้อสงสัยว่า ต่างจาก HTML อย่างไร คำตอบคือ HTML นั้นเป็นภาษาที่ใช้ในการจัดรูปแบบของเว็บไซต์ จัดตำแหน่งรูป จัดรูปแบบตัวอักษร หรือใส่สีสันให้กับ เว็บไซต์ของเรา แต่ PHP นั้นเป็นส่วนที่ใช้ในการคำนวน ประมวลผล เก็บค่า และทำตามคำสั่งต่างๆ อย่างเช่น รับค่าจากแบบ form ที่เราทำ รับค่าจากช่องคำตอบของเว็บบอร์ดและเก็บไว้เพื่อนำมาแสดงผลต่อไป แม้แต่กระทั่งใช้ในการเขียน CMS ยอดนิยมเช่น Drupal , Joomla พูดง่ายๆคือเว็บไซต์จะโต้ตอบกับผู้ใช้ได้ ต้องมีภาษา PHP ส่วน HTML หรือ Javascript ใช้เป็นเพียงแค่ตัวควบคุมการแสดงผลเท่านั้น
นอกจากภาษา PHP แล้วยังมีภาษาอื่นอีกหรือไม่
คำตอบคือมีครับ เช่น ASP , JSP แต่ที่นิยมมาก คือ PHP เพราะเป็นภาษาที่สามารถศึกษาได้ง่าย ทำงานได้มีประสิทธิภาพ ทำให้เป็นที่นิยมอย่างยิ่งในปัจจุบัน รวมทั้งมีชุมชนคนใช้งาน และคู่มือที่ ดีมาก และสำคัญสุดคือฟรีครับ การใช้งานภาษา PHP ไม่ต้องมีค่าใช้จ่ายใดๆทั้งสิ้น ทุกคนสามารถเข้าถึงได้
การจะเขียน PHP ต้องมีอะไรบ้าง
อย่างที่บอกไปว่า PHP นั้นจำเป็นจะต้องมีการประมวลผลดังนั้นการใช้งานเราจะต้องมี Web Server เพื่อให้ตัว PHP สามารถทำงานได้ ต่างจาก HTML งั้นจะทำอย่างไรถ้าเราไม่ได้เช่า Web Server เอาไว้จะใช้งาน PHP ไม่ได้หรือ คำตอบคือได้ครับ แต่เราจะต้องลงโปรแกรม ให้เครื่องที่เราใช้งานอยู่นั้นทำงานเหมือนกับ Web Server ซะก่อนซึ่งโปรแกรมนั้นชื่อว่า Apache ครับเป็นโปรแกรมฟรีเหมือนกัน นี่เป็นข้อดี ที่ทำให้ทุกคนรัก PHP ครับ หลังจากที่เราทำให้เครื่องของเรานั้นเหมือนกับ Web Server แล้วจะเก็บข้อมูลเว็บไซต์เช่น คำตอบของเว็บบอร์ด จะเก็บอย่างไร คำตอบคือต้องมีโปรแกรมฐานข้อมูลอีกตัวเข้ามาช่วยครับ ซึ่งโปรแกรมที่แนะนำคือ MySQL ครับฟรีอีกเช่นกัน ทั้งหมดสำหรับมือใหม่อาจ จะเริ่มลงโปรแกรมทั้งหมดนั้นยากนะครับ จึงมีโปรแกรมที่รวมทุกอย่าง เพื่อจำลองเครื่องของเราให้เป็น Web Server เลยสามารถลงได้ง่ายๆ ซึ่ง จะมีสอนในบทต่อไปนะครับ
การพัฒนาเว็บไซต์ด้วย PHP
สำหรับผู้พัฒนาเว็บไซต์ด้วย PHP นั้นปรกติจะทำการจำลองเครื่องของตัวเองให้เป็น Web Server ระหว่างการพัฒนาเพื่อดูการทำงาน ของโปรแกรมที่เขียนขึ้นมาครับ จากนั้นจึงจะอัพไฟล์ทั้งหมดลงใน Web Server จริงครับ ในส่วนของ Web Server นั้นทาง Hellomyweb ก็มีให้บริการอยู่นะครับ สนใจคลิกที่นี่ครับ ถามว่าเราจะให้เครื่องคอมพิวเตอร์ของเรานั้นทำงานได้เหมือนกับ Web server จริงได้หรือไม่ คำตอบคือได้ครับ แต่มันออกจะไม่คุ่มค่า ทางการเงินนะครับ เพราะเราต้องเสียค่าไฟ ค่าอินเตอร์เน็ต เครื่องคอมก็ต้องเปิดไว้ตลอดปิดไม่ได้ เวลาผู้ใช้งานจากภายนอกมาเรียกใช้ก็รองรับไม่ได้ไม่มาก ดังนั้นการเช่า Web Server ภายนอกจะคุ่มค่ามากกว่าครับ หากต้องการจะพัฒนาเว็บไซต์เพื่อใช้งานจริงๆ
สำหรับคนที่มีข้อสงสัยหรือมีคำถามสามารถตั้งคำถามได้ที่ Webboard ของ Hellomyweb นะครับ ทางเรายินดีตอบทุกคำถามครับ สำหรับบทต่อไปจะพูดถึงโปรแกรมที่ทำการจำลองเว็บไซต์ของเราให้เป็น Web Server ครับ
อ้างอิงข้อมูลจาก http://www.greatfriends.biz/webboards/msg.asp?b=SURREALIST&id=111084
http://www.com5dow.com/%E0%B9%84%E0%B8%82%E0%B8%9B%E0%B8%B1%E0%B8%8D%E0%B8%AB%E0%B8%B2%E0%B8%A8%E0%B8%B1%E0%B8%9E%E0%B8%97%E0%B9%8C-IT/1284-Java-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3.html
http://www.hellomyweb.com/index.php/main/content/135
ไม่มีความคิดเห็น:
แสดงความคิดเห็น