Thursday, September 13, 2007

XMI Generator สำหรับ Geogia

ได้รับความร่วมมือเป็นอย่างดีจาก 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 แล้วครับ

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 สำหรับใช้ในโครงการครับ

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" ก็จะพอลองเล่นได้ครับ