Grails from scratch

Download Grails from scratch

Post on 27-May-2015

2.166 views

Category:

Technology

3 download

Embed Size (px)

DESCRIPTION

Tutorial bsico sobre grails

TRANSCRIPT

<ul><li> 1. Grails from scratchGustavo Pintogustavopinto.orgtwitter.com/gustavopinto </li></ul> <p> 2. Agenda Introduo Modelos geis Groovy Hands on Grails Da instalao aplicao Dicas 3. Introduo Modelos geis Processos, tcnicas, ferramentas, whatever O que ser gil? Porque precisamos ser geis? Duas coisas que influenciam na agilidade A atitude dos membros da equipe As ferramentas 4. Introduo Necessidades bsicas D.R.Y principle convention-over-configuration Lightweight 5. Introduo D.R.Y principle ? convention-over-configuration ? lightweight ? O Que usar? 6. Introduo D.R.Y principle ? convention-over-configuration ? lightweight ?GRAILS 7. Introduo D.R.Y principle ? convention-over-configuration ? lightweight ?GRAILS 8. Groovy Linguagem OO baseada no Java Mas com boas idias de outras linguagensRuby, Python Roda na JVM Tipagem dinmica Onde tudo objeto Pode ser usada como script Sem algumas burocracias do Java Sintax Familiar 9. Groovy Radar de tecnologia - ThoughtWorks 10. Groovy groovyconsole.appspot.com 11. Rails 12. Groovy + Rails = Grails Instalao Primeiros comandos Padro de projetos Domain Classes Controllers e Views Validaes Relacionamentos Grails ORM (GORM) 13. Grails Instalao Download do arquivo grails.a.b.c.zip Descopactar e declarar a varivel GRAILS_HOME Digilte: grails 14. Grails Instalao Download do arquivo grails.a.b.c.zip Descopactar e declarar a varivel GRAILS_HOME Digilte: grails gustavo@zeus:~$ grails Welcome to Grails 1.3.2 - http://grails.org/ Licensed under Apache Standard License 2.0 Grails home is set to: /opt/grails-1.3.2No script name specified. Use 'grails help' for more info or 'grails interactive' to enter interactive mode 15. Grails Primeiros comandos$ grails create-app racetrack$ cd racetrack $ grails run-app$ grails war $ grails clean 16. Grails Primeiros comandos $ grails create-app racetrack Welcome to Grails 1.2 - http://grails.org/ Licensed under Apache Standard License 2.0 Grails home is set to: /opt/grails ... Created Grails Application at /web/racetrack 17. Grails Primeiros comandos $ grails [Dserver.port=9090] run-app ... Base Directory: /Users/sdavis/web/racetrack Running script /opt/grails/scripts/RunApp.groovy Environment set to development [mkdir] Created dir: /Users/sdavis/.grails/1.2/projects/racetrack/classes [groovyc] Compiling 6 source files to /Users/sdavis/.grails/1.2/projects/racetrack/classes ... Running Grails application.. Server running. Browse to http://localhost:8080/racetrack 18. CM Grails V Padro de projetos 19. CM Grails V Padro de projetos Lembre-se: Convention over Configuration 20. Grails Domain Classes Definem os elementos da aplicaoInscrio para a corridanome, email, pago? 21. Grails Domain ClassesDefinem os elementos da aplicao Inscrio para a corrida nome, email, pago?$ grails create-domain-class Inscricao 22. Grails Domain ClassesDefinem os elementos da aplicao Inscrio para a corrida nome, email, pago?$ grails create-domain-class Inscricao 23. Grails Domain ClassesDefinem os elementos da aplicao Inscrio para a corrida nome, email, pago?$ grails create-domain-class Inscricaoclass Inscricao { String nome Date dataAniversario String email Boolean pago ....} 24. Grails Domain ClassesDefinem os elementos da aplicao Inscrio para a corrida nome, email, pago?$ grails create-domain-class Inscricaoclass Inscricao { .... dateCreated lastUpdated ....} 25. Grails Domain ClassesDefinem os elementos da aplicao Inscrio para a corrida nome, email, pago?$ grails create-domain-class Inscricaoclass Inscricao { .... dateCreated variveis especiais lastUpdated ....} 26. Grails Domain ClassesDefinem os elementos da aplicao Inscrio para a corrida nome, email, pago? class Inscricao {$ grails create-domain-class Inscricao ..... def beforeInsert = {class Inscricao { // codigo .... } def beforeUpdate = { dateCreated } lastUpdated def beforeDelete = { .... }} def onLoad = { } } 27. Grails Domain Classes Definem os elementos da aplicaoInscrio para a corridanome, email, pago? class Inscricao { ..... def beforeInsert = { // codigo Para saber mais: } http://grails.org/GORM+-+Mapping+DSL. def beforeUpdate = { } def beforeDelete = { } def onLoad = { } } 28. Grails Domain Classes$ grails create-domain-class Corridaclass Corrida { String nome Date dataIncio String cidade String estado BigDecimal distancia BigDecimal custo ....} 29. Grails Domain Classes$ grails create-domain-class Corridaclass Corrida { String nome Date dataIncio String cidade String estado BigDecimal distancia BigDecimal custo ....} 30. Grails Controllers e Views$ grails create-controller Corrida$ grails generate-views 31. Grails Controllers e Views class CorridaController {$ grails create-controller Corrida def scaffold = Corrida$ grails generate-views } 32. Grails Controllers e Viewsscaffold: gera uma aplicao inteira para uma determinada classe de domnio, incluindo:As views necessriasControle de aes de um CRUD 33. Grails Controllers e Viewsscaffold: gera uma aplicao inteira para uma determinada classe de domnio, incluindo:As views necessriasControle de aes de um CRUDscaffold: no o fim, apenas o comeo 34. Grails 35. GrailsValidaes 1. Apenas inscries de estados prximos 2. O custo no pode ser maior que 100 3. Toda corrida precisa de um nome 4. No existe distncia negativa 36. GrailsValidaes 1. Apenas inscries de estados prximos 2. O custo no pode ser maior que 100 3. Toda corrida precisa de um nome 4. No existe distncia negativa static constraints = { nome(blank:false, maxSize:50) estado(inList:["PA", "AM", "MA", "AC"]) cidade() distancia(min:0.0) custo(min:0.0, max:100.0) } 37. Grails Validaes email crediCard passwordinListmatches min, max range minSize,notEqualmaxSize, size uniqueurl validator 38. Grails Validaes Personalizando Mensagens no arquivo: i18n/messages.properties 39. Grails Validaes Personalizando Mensagens no arquivo: i18n/messages.properties corrida.nome.blank=Por favor, fornea um nome para corrida corrida.nome.maxSize.exceeded=O nome da corrida no pode ser maior que {3} letras 40. Grails Validaes Personalizando Mensagens no arquivo: i18n/messages.properties corrida.nome.blank=Por favor, fornea um nome para corrida corrida.nome.maxSize.exceeded=O nome da corrida no pode ser maior que {3} letrasclasse . objeto . propriedade . [propriedade] = Mensagem 41. Grails Relacionamentos Uma corrida tem muitas inscries 1 x Nclass Corrida { ..... static hasMany = [inscricao:Inscricao, ....] } 42. Grails RelacionamentosUma corrida tem muitas inscries1 x N class Corrida { ..... static hasMany = [inscricao:Inscricao, ....]} class Inscricao { .... static belongsTo = [corrida:Corrida]} 43. Grails RelacionamentosUma corrida tem muitas inscries1 x N class Corrida { ..... static hasMany = [inscricao:Inscricao, ....] Fora update}e delete em cascataclass Inscricao { .... static belongsTo = [corrida:Corrida]} 44. Grails Grails ORM Nenhuma necessidade de configurao DAOS? 45. Grails Grails ORM Nenhuma necessidade de configurao DAOS? Dynamic domain class methods 46. Grails Grails ORM Nenhuma necessidade de configurao DAOS? Dynamic domain class methods savefindAlldelete find get listcountetc 47. Grails Grails ORM Nenhuma necessidade de configurao DAOS? DBVisualizer: Conectar na base do Grails 48. Dicasgrails.org grailsbrasil.com 49. Dvidas 50. Grails from scratchGustavo Pintogustavopinto.orgtwitter.com/gustavopinto </p>