sobota, listopadu 17, 2007

Znáte GRAILS?

GRAILs je webovým frameworkem založeným na jazyce Groovy. O Groovy se psalo na root.cz například zde. Myslím že Groovy se může stát populárním podobně jako Ruby právě díky webovému frameworku. Zajímaví je ovšem samotný framework GRAILS. V současnosti se blíží k verzi 1.0 a jedná se už o poměrně stabilní prostředí. GRAILS jsou založeny na JAVA technologiích jako jsou Spring Framework a Hibernate a v podstatě pomocí jazyka Groovy tvoří přívětivý uživatelský aparát pro práci s nimi. Přívětivý do té míry, že se v mnoha věcech 'podobá' Ruby on Rails, který tvoří v současnosti určitou laťku pro rychlý webový vývoj. Podobnost je spíše filozofická než technická. Současní vývojáři si mohou vzít mnoho příkladů z uspěšných nástrojů frameworků jako jsou Ruby On Rails, Django atp. A GRAILS je to vidět.

Na Grails se mi líbí několik vlastností:
  • GORM = ORM založený na Hibernate pro práci s databází. Zvláště se mi libí možnost automatické aktualizace schématu databáze podle definice objektu v Grails. Způsob práce vychází z filozofie ActiveRecord
  • integrovaný scheduler - opět jako i jiné komponenty Grails je založen na existujícím projektu Quartz. Jednoduše si nadefinujete periodicitu spouštění a spouštěný kód má přistup k celému prostředí Grails.
  • systém pluginů - už nyní najdete pluginy pro autentizaci, práci s obrázky atp. Zde je prostor pro celou komunitu rozšířovat celý systém. Pro Ruby On Rails dneska existují stovky pluginů.
  • systém development, test a production prostředí, pro které si mohu nadefinovat připojení na jiné databáze. Mohu tam velmi lehce provozovat a přepínat mezi vývojovou verzí databáze z testovacími daty a produkční databází.
  • dokumentace - ta je psána průběžně již od počátku projektu. K sehnání je již i kniha 'The Definite Guide to GRAILS' a pro Groovy jako takové k dispozici s nakladelství Manning 'Groovy in Action'. Pěkný je i reference guide.
Z podstaty jazyka Groovy vychází možnost používat existující JAVA knihovny a implementovat je do vaší GRAILS aplikace. Pokud tak třeba chcete používate JFreeChart, není to problém. To co je však vynikající je možnost celou aplikaci jednoduchým příkazem zabalit do WAR souboru( 'grails war') a nechat pak běžet na některém z celé řady JAVA serverů(Apache Tomcat, Jboos, Resin, WebSphere atp.) . Aplikaci v Grails je tak možno lehce integrovat do existujícího firemního JAVA prostředí. (pokud nějaké existuje).

Zde jsem zmínil opravdu jen minimum z toho, co Grails nabízí. Zájemci mohou navštívit přímo stránky projektu na adrese www.grails.org a projít si další detaily.

Pro fajnšmekry uvádím i trochu kódu. Ten ukazuje jak definovat databázové objekty a jejich jednoduché vazby mezi sebou. Taktéž si zde v můžete nadefinovat různá omezení a podmínky pro jednotlivé položky modelu. Z vaší definice v Grails is systém vytvoří předpis pro Hibernate a provede aktualizaci databáze.


// objekt dokumentu
class Document {

static hasMany = [ attachments : Attachment]
String title
String description
String category
Integer att_count
String category1

static constraints = {
title(unique:true, blank:false)
category(blank:true)
category1(blank:true, nullable:true)
att_count(blank:true, nullable:true)
}
}


// příloha, která patří k dokumentu
class Attachment {
String title
String description
Document document

static constraints = {
title(blank:false)
}
}

1 komentář:

Anonymní řekl(a)...

Oi, achei seu blog pelo google está bem interessante gostei desse post. Gostaria de falar sobre o CresceNet. O CresceNet é um provedor de internet discada que remunera seus usuários pelo tempo conectado. Exatamente isso que você leu, estão pagando para você conectar. O provedor paga 20 centavos por hora de conexão discada com ligação local para mais de 2100 cidades do Brasil. O CresceNet tem um acelerador de conexão, que deixa sua conexão até 10 vezes mais rápida. Quem utiliza banda larga pode lucrar também, basta se cadastrar no CresceNet e quando for dormir conectar por discada, é possível pagar a ADSL só com o dinheiro da discada. Nos horários de minuto único o gasto com telefone é mínimo e a remuneração do CresceNet generosa. Se você quiser linkar o Cresce.Net(www.provedorcrescenet.com) no seu blog eu ficaria agradecido, até mais e sucesso. If is possible add the CresceNet(www.provedorcrescenet.com) in your blogroll, I thank. Good bye friend.