Tuesday, April 24, 2007

Grails ออกรุ่น 0.5 release candidate แล้ว

ตามแผนการออกรุ่น 0.5 ให้ได้ภายในเดือนนี้ (เมษา) ตอนนี้ Grails เข้าสู่ช่วงหยุดเพิ่มฟีเจอร์และออกรุ่น 0.5 RC สำหรับทดสอบแล้วครับ สำหรับ Grails 0.5 นี้จะเป็นรุ่นที่ใช้แสดงในงาน JavaOne'07 สำหรับใครที่มีโอกาสได้ไป ลองดูโปรแกรมของงานจาก ที่นี่ครับ

สำหรับรุ่นนี้เก็บบั๊กไปเกือบ 200 ตัว และสนับสนุนการ auto-reload ได้ค่อนข้างสมบูรณ์ครับ

Saturday, April 14, 2007

เดโมของ Scaffolding แบบใหม่

จากโพสต์เก่า Siegfried บอกว่าจะ up โค้ด scaffolding แบบใหม่ขึ้น svn นั้น วันนี้เขามี demo ของ scaffolding มาโชว์แล้วที่นี่ครับ บอกได้คำเดียวว่าประทับใจมาก !

ที่มา graild-dev

Friday, April 13, 2007

มีการสนับสนุน Command Object ใน svn head แล้ว

ไม่กี่วันที่ผ่านมา Jeff Brown ส่งโค้ดที่สนับสนุนการใช้ command object เพื่อเป็น argument ของ action ของ controller เข้า svn head แล้ว
วิธีการสร้างและใช้ command object คราว ๆ เป็นแบบนี้ครับ

สร้างคลาสของ command object ใน src/groovy โดยใช้รูปแบบของ Groovy คลาส ธรรมดา ในกรณีนี้คือไม่ได้ใช้ระบบ convention ตัว command object สามารถมี constraint เพื่อใช้ validate และ ตรวจสอบ error ได้ผ่านทาง property "errors" และ "hasErrors()" ในการรับค่าจาก web request นั้น Grails จะส่งค่าจาก request parameters (params) เข้าสู่ property ของ command object โดยดูจากชื่อ parameter

ตัวอย่าง
class MyCommandObject {
String lastName
String firstName
static constraints = {
firstName(maxSize:10)
}
}

class MyController {
def someAction = { MyCommandObject mco ->
if(mco.hasErrors()) {
// do some stuff...
} else {
// do some other stuff
}
}
}


การเพิ่มการสนับสนุน command object pattern จะทำให้การรับข้อมูลจาก form ทำได้งานขึ้นมากเลยทีเดียวครับ

ที่มา grails-dev

Thursday, April 12, 2007

หน้าตา Scaffolding แบบใหม่ด้วย Ext JS

Siegfried จะโพสแม่แบบ scaffold แบบใหม่ที่พัฒนาบน Ext JS (ชื่อเดิม YUI-EXT) ในช่วงสุดสัปดาห์นี้ โค้ดชุดนี้อาจจะเข้าอยู่ใน svn ของโปรเจ็ค grails-plugins

เท่าที่ดูจากเวบไซต์ของ Ext JS ตัวอย่างหน้าจอหลาย ๆ แบบค่อนข้างน่าประทับใจและโค้ดจาวาสคริปต์ตามรูปแบบการโปรแกรมของ Ext JS ค่อนข้างจะแม็พมาจากโดเมนคลาสของ Grails ได้แบบ 1 ต่อ 1

ที่มา grails-user

เพิ่มเมธอดสำหรับจัดการ relationship ใน 0.5

Grails 0.5 เพิ่มเมธอดพลวัตรสำหรับจัดการ relationship แบบใหม่เข้ามาคือ addTo* และ removeFrom* ที่น่าสนใจก็คือ 2 เมธอดนี้จะจัดการ relationship แบบ 2 ทางให้ด้วย ตัวอย่างเช่น
class Person {
String name
static hasMany = [addresses:Address]
}
class Address {
String number
Person person
}


หากเราเขียน
Address a = p.addToAddresses(new Address(number:'1'))
// or p.addToAddresses(number:'1')
assert a.person == p // true

วัตถุ a จะมี person เป็นวัตถุ p เนื่องจาก 2 class นี้มี relationship แบบ 2 ทางต่อกันอยู่

ที่มา grails-dev