Vaadin – เฟรมเวิร์คสำหรับเวปแอพ เพื่อคนเขียนเดสก์ทอปแอพกับภาษา Java

ในปัจจุบัน ถ้าเราต้องการจะเขียนโปรแกรมให้เข้าถึงผู้ใช้ได้ง่ายที่สุด เราก็คงต้องเขียนเป็น Web Application ที่แค่มี Web Browser ก็สามารถใช้งานได้ทันทีโดยไม่ต้องติดตั้ง ปัญหาคือการเขียน Web Application นั้นมีความสลับซับซ้อนสูง เพราะตัว Front-end นั้นเขียนเป็น HTML+Javascript ในขณะที่ Back-end นั้นอาจจะเขียนด้วยวิธีต่าง ๆ มากมาย และด้วยตัว Javascript เองนั้นเมื่อเขียนไปจนถึงระดับนึงมันก็จะเริ่มมั่วและจัดการได้ยาก นี่ยังไม่ได้พูดถึงว่าส่วนใหญ่แล้วตัว HTML เองก็สร้างขึ้นมาจากภาษาอื่น ๆ เช่น PHP หรือ Java (Serverlet, JSP, เป็นต้น) หรืออื่นๆ

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

วิธีการหนึ่งที่พัฒนาโดย Google ก็คือ Google Web Toolkit ซึ่งผู้ใช้สามารถเขียนเวปได้ด้วยภาษา Java เพียงอย่างเดียวทั้งฝั่ง Client และ Server โดยที่โค๊ดในฝั่ง Client นั้นจะถูกแปลไปเป็น JavaScript เองโดยตัว Toolkit

แต่สำหรับ GWT นั้นเราก็ยังต้องเขียนโค๊ดแยกกันระหว่างฝั่ง Client และ Server เองอยู่ดี และโค๊ดฝั่ง Client นั้นก็ดูจะยุ่งยากมากเป็นพิเศษเพราะว่ามีข้อจำกัดมาก

จะดีกว่าไหมถ้าเราไม่จำเป็นต้องเขียนแยกกันระหว่าง Client และ Server ?

วันนี้จะแนะนำให้รู้จักกับ Web Application ตัวหนึ่ง ชื่อว่า Vaadin เจ้า Vaadin นี้เป็นเฟรมเวิร์คที่พัฒนามานานกว่าสิบปี โดยบริษัท Vaadin Ltd.  จากฟินแลนด์ ความพิเศษของ Vaadin คือเราจะเขียนโค๊ดในส่วนของ Server เท่านั้น แล้วตัว Client จะถูกสร้างขึ้นโดยเฟรมเวิร์ค (ซึ่งทำงานโดยอาศัย GWT อีกที) ในทางปฎิบัติแล้วเราเขียนโค๊ดเหมือนเขียนโปรแกรมที่ทำงานบน Desktop ตัวหนึ่งเลยทีเดียว

เช่น ถ้าเราเขียนโค๊ดว่า เมื่อกดปุ่ม Submit แล้วให้บันทึกข้อมูลลง Database ในแอพลิเคชั่นทั่วไปเราต้องเขียนในส่วนของการเก็บข้อมูลจาก Control ต่าง ๆ บันทึกใส่ HTTP Header แล้วส่งมาทาง Request จากนั้นก็เขียนตัว Handler บนฝั่ง Server เพื่อที่จะดึงเอาข้อมูลใน header บันทึกลงไปใน database

สำหรับ Vaadin สิ่งที่เราต้องทำมีแค่ ดึงข้อมูลจาก Control ต่าง ๆ แล้วบันทึกใส่ Database ที่เหลือเฟรมเวิร์คจัดการหมด

ง่ายใช่ไหม ?

ผมไม่มีโค๊ดตัวอย่างจะแสดงให้ดูบน entry นี้ เพราะว่าขี้เกียจยังไม่ว่างเขียน แต่ว่าเดี๋ยวจะเขียนโค๊ดการใช้ Vaadin คู่กับภาษา Xtend ใน entry ถัดไป

หน้าตาโปรแกรมที่ผมเขียนด้วย Vaadin นี่ก็ประมาณนี้ครับ เป็นตัวทดสอบการส่ง Message แบบ JMS ผ่าน SonicMQ
 

ส่วนท่านที่สนใจ ก็ลองเข้าไปอ่านได้บนเวปของ Vaadin ก่อนครับ อ้อ Vaadin เป็น Open Source นะครับ (Apache License)

ที่จริงนอกจาก Vaadin แล้ว เฟรมเวิร์คที่ใกล้เคียงกันมากก็มี Sencha GXT (หรือชื่อเก่าคือ ExtGWT) แต่อันนี้เราต้องเขียนโค๊ดทั้งตัว Client และ Server ด้วยตัวเองเหมือนใช้ GWT เพียว ๆ และมีไลเซนส์ที่เข้มงวดกว่า คือ GPL (บังคับเปิดโค๊ดเมื่อนำไปใช้) และไลเซนส์การค้า ส่วนตัวผมว่า Vaadin น่าสนใจกว่าตรงที่เขียนง่ายกว่าครับ

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *

This site uses Akismet to reduce spam. Learn how your comment data is processed.