grails framework

Post on 04-Jul-2015

387 views 2 download

description

Presentatio, Athens Univ of Economics and business

Transcript of grails framework

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