ได้รับความร่วมมือเป็นอย่างดีจาก Craig Mackay ผู้พัฒนา Groovy-MDA ตอนนี้ project Geogia มี tool สำหรับ generate Grails domain class จาก XMI ที่ export จากทั้ง ArgoUML และ Poseidon UML CE 6 แล้วครับ
สำหรับปัญหาการใช้งาน Enumeration ใน Grails ตอนนี้ใช้ workaround ไปก่อนดังนี้ครับ
- สร้าง domain class ที่มี value เป็น property
- ใน domain class ดังกล่าวให้มี initEnums เป็น static สำหรับสร้าง record ในฐานข้อมูล
- เรียก initEnums ของแต่ละ class ใน init closure ของ BootStrap.groovy
อีกอย่างหนึ่งที่จะลืมบอกไม่ได้เลยก็คือ Grails เข้าสู่ 1.0 RC แล้ว ตอนนี้ snapshot ของ 1.0 RC มีให้ download จาก website ของ Grails แล้วครับ
Thursday, September 13, 2007
Tuesday, September 11, 2007
กลุ่มผู้ใช้ Grails ในไทย
จริง ๆ แล้ว Thai Grails User Group ที่ Google มีมาระยะนึงแล้ว แต่ไม่ได้ประกาศเปิดอย่างเป็นทางการ เพราะตอนแรกผมกะว่าจะเอาไว้ทำ archive สำหรับ Grails message ที่น่าสนใจเป็นภาษาไทย แต่ดูไปดูมาคิดว่าแนวโน้มการใช้งาน Grails ในไทยน่าจะเริ่มบ้างแล้ว เลย ขอต้อนรับสู่กลุ่มผู้ใช้ Grails ในไทย ครับ
Friday, September 7, 2007
Groovy-MDA สำหรับ generate Geogia
หลักจากบังเอิญไปเจอว่ามี Groovy-MDA ซึ่งใช้ Groovy template สำหรับ generate ไฟล์โดยใช้ input เป็น XMI format นั้น ก็เริ่มเห็นทางที่จะปรับใช้ project นี้กับ Geogia และคิดว่าจะช่วยเพิ่มความเร็วในการพัฒนาได้มากเอาการทีเดียวครับ
เพิ่มเติมเล็กน้อย
ตอนนี้ project Geogia ได้รับการสนับสนุนจาก Gentleware AG ผู้พัฒนา Poseidon UML โดย Gentleware จะให้ license Poseidon UML CE edition สำหรับใช้ในโครงการครับ
เพิ่มเติมเล็กน้อย
ตอนนี้ project Geogia ได้รับการสนับสนุนจาก Gentleware AG ผู้พัฒนา Poseidon UML โดย Gentleware จะให้ license Poseidon UML CE edition สำหรับใช้ในโครงการครับ
Sunday, September 2, 2007
สร้างระบบ ERP ด้วย Grails
นึกครึ้มมานานแล้วครับที่จะลองสร้างอะไรใหญ่ ๆ ด้วย Grails ดู
ได้แรงบันดาลใจมาจากโปรเจ็ค OFBiz ที่คุณ Sand ใน board narisa.com มาโพสต์เล่าไว้บ่อย ๆ รวมทั้งได้เวลาเหมาะเอาก็ตอน Grails จะเป็น 1.0 เพราะสนับสนุน feature หลาย ๆ อย่างที่จะใช้ทำระบบขนาดใหญ่ได้ เช่นวาง domain class ใน package ได้ มี REST และ remoting plugin เป็นต้น และแน่นอนว่าผมไม่ได้จะทำ Web Application นะครับ ผมจะสร้าง Enterprise Application
ก็เลยจะลองเขียน ERP ขึ้นมาใหม่จาก diagram ของโปรเจ็ค Neogia (ที่สร้างจาก OFBiz อีกที) โดยจะค่อย ๆ แกะจาก UML ไปเป็น Grails domain class ที่ละ class และด้วย scaffolding ของ Grails ทำให้อะไร ๆ ก็เริ่มได้ง่ายไปหมด
ผมแกะไปแล้ว 2-3 class การ map ทำได้ค่อนข้างตรงไปตรงมา
มีปัญหาก็ตรง class แบบ Enumeration ซึ่งก็ต้องดูกันต่อไปว่า Grails จะ support ในรูปแบบไหน ถ้าไม่ไหวจริง ๆ ก็คงต้อง patch เอาเอง แต่ไม่รีบร้อนละครับ Groovy optimiser ที่ทำอยู่สำคัญกว่า
จุดประสงค์ของโปรเจ็คนี้คือสร้าง ERP ที่สามารถเข้าใจได้ด้วยสมองคนเพียงคนเดียวครับ และให้สามารถ customise ได้ด้วยคนเพียงคนเดียวเช่นกัน ภาระทาง engineering ก็ยกไปให้ Grails ซะ ประมาณนั้นครับ
โปรเจ็คอยู่ที่ Google Code ครับ ชื่อ Geogia (แค่เปลี่ยน N ใน neogia เป็น G)
แค่ลง Grails 0.6, fetch ตัวโปรเจ็คจาก SVN แล้วก็เรียก "grails run-app" ก็จะพอลองเล่นได้ครับ
ได้แรงบันดาลใจมาจากโปรเจ็ค OFBiz ที่คุณ Sand ใน board narisa.com มาโพสต์เล่าไว้บ่อย ๆ รวมทั้งได้เวลาเหมาะเอาก็ตอน Grails จะเป็น 1.0 เพราะสนับสนุน feature หลาย ๆ อย่างที่จะใช้ทำระบบขนาดใหญ่ได้ เช่นวาง domain class ใน package ได้ มี REST และ remoting plugin เป็นต้น และแน่นอนว่าผมไม่ได้จะทำ Web Application นะครับ ผมจะสร้าง Enterprise Application
ก็เลยจะลองเขียน ERP ขึ้นมาใหม่จาก diagram ของโปรเจ็ค Neogia (ที่สร้างจาก OFBiz อีกที) โดยจะค่อย ๆ แกะจาก UML ไปเป็น Grails domain class ที่ละ class และด้วย scaffolding ของ Grails ทำให้อะไร ๆ ก็เริ่มได้ง่ายไปหมด
ผมแกะไปแล้ว 2-3 class การ map ทำได้ค่อนข้างตรงไปตรงมา
มีปัญหาก็ตรง class แบบ Enumeration ซึ่งก็ต้องดูกันต่อไปว่า Grails จะ support ในรูปแบบไหน ถ้าไม่ไหวจริง ๆ ก็คงต้อง patch เอาเอง แต่ไม่รีบร้อนละครับ Groovy optimiser ที่ทำอยู่สำคัญกว่า
จุดประสงค์ของโปรเจ็คนี้คือสร้าง ERP ที่สามารถเข้าใจได้ด้วยสมองคนเพียงคนเดียวครับ และให้สามารถ customise ได้ด้วยคนเพียงคนเดียวเช่นกัน ภาระทาง engineering ก็ยกไปให้ Grails ซะ ประมาณนั้นครับ
โปรเจ็คอยู่ที่ Google Code ครับ ชื่อ Geogia (แค่เปลี่ยน N ใน neogia เป็น G)
แค่ลง Grails 0.6, fetch ตัวโปรเจ็คจาก SVN แล้วก็เรียก "grails run-app" ก็จะพอลองเล่นได้ครับ
Friday, August 31, 2007
Grails 0.6 ออกอย่างเป็นทางการแล้ว
Grails 0.6 ออกแล้วครับวันนี้ เวอร์ชั่นนี้จะเป็นตัว 0.x ตัวสุดท้ายก่อนเข้าสู่ 1.0 อย่างเต็มตัวก่อนงาน Grails Exchanges กลางเดือนตุลาคม ซึ่งหมายความว่าไม่เกินเดือนครึ่งเราจะได้ยลโฉม Grails 1.0 กันครับ
ใน 0.6 มีหลายจุดที่เพิ่มเข้ามา จุดสำคัญจุดหนึ่งคือการรวม Spring Web Flow เข้าไว้ใน Grails โดยตัว Grails สนับสนุนภาษา DSL สำหรับประกาศ flow ครับ
นอกจากนั้น เรายังสามารถกำหนด scope ของ Grails Service classes ให้ใช้กับ flow ได้อีกด้วย
อีกจุดหนึ่งที่น่าสนใจ ซึ่งได้เปรย ๆ ไปแล้วก่อนหน้านี้ก็คือ Grails 0.6 ปรับปรุงการสนับสนุน REST และ XML web services โดยเพิ่มการสนับสนุน REST เข้ามาใน URL mapping และรวม render x as XML จาก ปลั๊กอิน Converters
นอกจากนี้หน้าตา UI ของ Grails scaffolding ก็ถูกปรับปรุงและดูดีขึ้นมากเลยละครับ

สำหรับรายละเอียดปลีกย่อยสำหรับ 0.6 สามารถดูเพิ่มเติมได้จาก release note ครับ
ใน 0.6 มีหลายจุดที่เพิ่มเข้ามา จุดสำคัญจุดหนึ่งคือการรวม Spring Web Flow เข้าไว้ใน Grails โดยตัว Grails สนับสนุนภาษา DSL สำหรับประกาศ flow ครับ
นอกจากนั้น เรายังสามารถกำหนด scope ของ Grails Service classes ให้ใช้กับ flow ได้อีกด้วย
อีกจุดหนึ่งที่น่าสนใจ ซึ่งได้เปรย ๆ ไปแล้วก่อนหน้านี้ก็คือ Grails 0.6 ปรับปรุงการสนับสนุน REST และ XML web services โดยเพิ่มการสนับสนุน REST เข้ามาใน URL mapping และรวม render x as XML จาก ปลั๊กอิน Converters
นอกจากนี้หน้าตา UI ของ Grails scaffolding ก็ถูกปรับปรุงและดูดีขึ้นมากเลยละครับ
สำหรับรายละเอียดปลีกย่อยสำหรับ 0.6 สามารถดูเพิ่มเติมได้จาก release note ครับ
Monday, August 6, 2007
converters จะถูกรวมไว้ใน Grails 0.6
ปลั๊กอิน Converters ของ Siegfried Puchbauer จะรวมเข้าไว้ใน core ของ Grails 0.6
ปลั๊กอินตัวนี้ทำให้สามารถแปลงวัตถุเป็น XMLหรือJSON และจาก XMLหรือJSON เป็นวัตถุได้โดยใช้คำสั่ง
render object as XML
render object as JSON
ซึ่งจะทำให้สามารถสร้างระบบติดต่อผู้ใช้ชนิด AJAX ที่เป็น CRUD ได้สะดวกมากขึ้น
Siegfried เคยโพสต์ตัวอย่างที่เป็นแอพพลิเคชั่นแบบ AJAX ที่ใช้ปลั๊กอิน converters และสร้างด้วย Ext JS
ส่วนตัวผมชอบปลั๊กอินตัวนี้เพราะผมใช้ OpenLaszlo ทำแอพพลิเคชั่นครับ
ปลั๊กอินตัวนี้ทำให้สามารถแปลงวัตถุเป็น XMLหรือJSON และจาก XMLหรือJSON เป็นวัตถุได้โดยใช้คำสั่ง
render object as XML
render object as JSON
ซึ่งจะทำให้สามารถสร้างระบบติดต่อผู้ใช้ชนิด AJAX ที่เป็น CRUD ได้สะดวกมากขึ้น
Siegfried เคยโพสต์ตัวอย่างที่เป็นแอพพลิเคชั่นแบบ AJAX ที่ใช้ปลั๊กอิน converters และสร้างด้วย Ext JS
ส่วนตัวผมชอบปลั๊กอินตัวนี้เพราะผมใช้ OpenLaszlo ทำแอพพลิเคชั่นครับ
บทวิเคราะห์ Productivity ของ Grails โดย ALTERthought
บริษัทที่ปรึกษาซอฟต์แวร์ชื่อ ALTERthought โพสต์บทวิเคราะห์เกี่ยวกับ Grails ที่ทำให้พวกเขาสร้างซอฟต์แวร์ได้เร็วกว่า Rails ไว้ที่นี่
กรีม รอชเชอร์ เสริมไว้ในบล้อกของเขาว่า หากต้องพัฒนาซอฟต์แวร์ในสภาพแวดล้อมที่เกี่ยวข้องกับจาวา แล้วตัวเลือกคงเป็นอื่นไปไม่ได้นอกจาก Grails แม้ว่าจะมี JRuby ที่สามารถรัน Rails ได้บนแพล็ตฟอร์มจาวาก็ตามที
ที่มา บล้อกของ ALTERthought
กรีม รอชเชอร์ เสริมไว้ในบล้อกของเขาว่า หากต้องพัฒนาซอฟต์แวร์ในสภาพแวดล้อมที่เกี่ยวข้องกับจาวา แล้วตัวเลือกคงเป็นอื่นไปไม่ได้นอกจาก Grails แม้ว่าจะมี JRuby ที่สามารถรัน Rails ได้บนแพล็ตฟอร์มจาวาก็ตามที
ที่มา บล้อกของ ALTERthought
Subscribe to:
Posts (Atom)