grails framework
DESCRIPTION
Presentatio, Athens Univ of Economics and businessTRANSCRIPT
Mέζνδνη Αλάπηπμεο ινγηζκηθνύ / GRAILS #1
Πεξηερόκελα
• Μηα Σύληνκε Πεξηγξαθή• Εηζαγωγή• Grails & Groovy • Πεξηβάιινλ αλάπηπμεο • Δηαδηθαζία Αλάπηπμεο• Πεξηβάιινλ Αλάπηπμεο• Φαξαθηεξηζηηθά Αλάπηπμεο Εθαξκνγήο
o Δνκή Τάμεωλ θαη Παθέηωλ (overview)o Class Ticketo Class Usero Enumeration UserRoleo Enumeration TicketCategoryo Enumeration Ticket Statuso Views,Uis,Controllerso Java byte codeo Aπνζήθεπζε Δεδνκέλωλ
• Οζόλεο• Παξαπνκπέο & Οδεγίεο Εγθαηάζηαζεο
Μια ζύνηομη πεπιγπαθή«Η εθαξκνγή ζα πξέπεη λα παξέρεη ζηα ζηειέρε ηνπ Οξγαληζκνύ Φ ηελ δπλαηόηεηα ππνβνιήο αηηεκάηωλ ηερληθήο ππνζηήξημεο . Τα αηηήκαηα ζα θαηεγνξηνπνηνύληαη αλάινγα κε ην είδνο ηνπ πξόβιεκαηνο. Σηειέρε ηεο Τερληθήο Υπνζηήξημεο ζα έρνπλ ηελ δπλαηόηεηα δηαρείξηζεο ηνπο»
Εηζαγωγή
• Σηόσορ : Η αλάπηπμε ιεηηνπξγηθόηεηαο βαζηζκέλεο ζην κνληέιν δεδνκέλωλ θαη ζηηο πεξηγξαθέο ηωλ πξνεγνύκελωλ παξαδνηέωλ
• Επγαλεία : Φξήζε ηνπ java πιαηζίνπ (framework) Grails ην νπνίν επηηξέπεη γξήγνξε αλάπηπμε εθαξκνγώλ ζην κνληέιν MVC, Φξήζε Apache Tomcat θαη hibernate γηα ηελ πξνζωξηλή απνζήθεπζε δεδνκέλωλ
Μεθοδολογία Υλοποίηζηρ
• Καηαγξαθή Απαηηήζεωλ• Αλάιπζε Απαηηήζεωλ • Σρεδίαζε Λνγηζκηθνύ• Ανάπηςξη με σπήζη ηος framework
Grails (Παπαδοηέο 4)
• Grails is an advanced and innovative open source web application platform
• Delivers new levels of developer productivity by applying principles like Convention over Configuration
• Helps development teams embrace agile methodologies, deliver quality applications in reduced amounts of time, and focus on what really matters: creating high quality, easy to use applications that delight users.
• Grails naturally complements Java application development since it is built on Spring and based on Groovy, the leading dynamic language for the Java platform.
H γιώζζα Groovy
• is an agile and dynamic language for the Java Virtual Machine• builds upon the strengths of Java but has additional power features
inspired by languages like Python, Ruby and Smalltalk• makes modern programming features available to Java developers
with almost-zero learning curve• supports Domain-Specific Languages and other compact syntax so
your code becomes easy to read and maintain• makes writing shell and build scripts easy with its powerful
processing primitives, OO abilities and an Ant DSL• increases developer productivity by reducing scaffolding code
when developing web, GUI, database or console applications• simplifies testing by supporting unit testing and mocking out-of-the-
box• seamlessly integrates with all existing Java classes and libraries• compiles straight to Java bytecode so you can use it anywhere you
can
Πεξηβάιινλ Αλάπηπμεο• Φξεζηκνπνηείηαη ην eclipse κε ελζωκαηωκέλα ηα εξγαιεία SPRINGSOURCE
Δηαδηθαζία αλάπηπμεο
• Tα βήκαηα ζηελ δηαδηθαζία αλάπηπμεο : 1. Φξήζε ηνπ κνληέινπ δεδνκέλωλ 2. Δεκηνπξγία αληίζηνηρωλ ηάμεωλ (Domain Classes) 3. Δεκηνπξγία ηάμεωλ ειεγθηώλ ( Controller Classes)4. Δεκηνπξγία Views5. Δεκηνπξγία Test Τάμεωλ (Test Classes)6. H Εθαξκνγή ζε (δνθηκαζηηθή) ιεηηνπξγία...
Φαξαθηεξηζηηθά & Εθδόζεηο
• #4 domain classes# 2 controller Classes • App version: 0.1• Grails version: 1.3.5• Groovy version: 1.7.5• JVM version: 1.5.0_26• Controllers: 4• Domains: 2
Δνκή Τάμεωλ Εθαξκνγήο -Παθέηωλ
Class User
Class Ticket
TicketCategory (Enumeration)
UserRole (Enumeration)
TicketStatus (Enumeration)
Views, Controllers, Uis
• Μεηά ηελ δεκηνπξγία ηωλ Domain Class θαη κε ρξήζε εληνιώλ ηνπ πιαηζίνπ πινπνηνύληαη αςηόμαηα νη controllers θαη views θαη παξάγεηαη java εκηελέζιμορ θώδηθαο.
• Παξάιιεια πινπνηείηαη αςηομαηα ε δνκή απνζήθεπζεο ηύπνπ ORM (object relational mapping)
*Τα views εηλαη ζε gsp (grails server pages) θαη κπνξνύλ εύθνια λα παξακεηξνπνηνύληαη δπλακηθά*Οη controllers ηεο εθαξκνγήο είαλη ζε γιώζζα groovy
Java byte CodeΠαξάγεηαη java εθηειέζηκνο θώδηθαο
Απνζήθεπζε
• Γηα ηελ απνζήθεπζε ρξεζηκνπνηείηαη JPA (JAVA PERSISTENCE API θαη HIBERNATE πξνθεηκέλνπ λα γίλεη map ζε ζρεζηαθό ζρήκα)
• Τα δεδνκέλα ηεο εθαξκνγήο απνζεθεύνληαη πξνζωξηλά ζε HSQLDB (hibernate SQL)
Οζόλεο Εθαξκνγήο :Aξρηθή Σειίδα
Οζόλεο Εθαξκνγήο : Nένο ρξήζηεο
* Σηελ αξρή νξίδνληαη ελδεηθηηθνί ρξήζηεο ηνπ ζπζηήκαηνο
Οζόλεο Εθαξκνγήο : Νέν Αίηεκα
• Aθνξά αίηεκα ηερληθήο ππνζηήξημεο πνπ ππνβάιεηαη από ηνλ Υπάιιειν
Οζόλεο Εθαξκνγήο : Δηαρείξηζε Αίηεκαηνο
• Aθνξά αιιαγή θαηάζηαζεο ηνπ αηηήκαηνο από OPEN ζε CLOSED θαη απνζήθεπζε
Οζόλεο Εθαξκνγήο : πξνβνιή αηηεκάηωλ
Παξαπνκπέο θαη νδεγίεο• Grails : http://www.grails.org• Groovy : http://groovy.codehaus.org/• Οδεγίεο Εγθαηάζηαζεο
http://www.grails.org/Documentation• Agile κεζνδνινγία αλάπηπμεο ινγηζκηθνύ
http://agilemanifesto.org/• Φξήζηκα tutorials ηεο IBM γηα αλάπηπμεο ζε grails
o http://www.ibm.com/developerworks/java/library/j-grails01158/index.html
o http://www.ibm.com/developerworks/views/java/libraryview.jsp?search_by=mastering+grails
• Spring Source Tool Suite http://www.springsource.com/developer/sts