Documente Academic
Documente Profesional
Documente Cultură
pentrunvmntulsuperiortehnic
InstrumentepentruDezvoltareaProgramelor
21.Frameworkuripentrudezvoltareadeaplicatii.Grails.
Obiective
Scopul acestui laborator este experimentarea framework-urilor de aplicatii si intelegerea
avantajelor aduse de utilizarea lor.
Subiecte atinse:
Application Frameworks
Groovy on Grails
Application Frameworks
Framework-urile ofera dezvoltatorilor un cadru general pentru construirea de aplicatii ce
respecta un anumit tipar (de exemplu, aplicatii web). Infrastructura defineste o serie de entitati
generice si asigura comunicarea de nivel scazut intre acestea (de exemplu, generarea de
evenimente intr-un context event-driven). In laboratoarele anterioare, am studiat paradigma
MVC, dar intrebuintarea a fost limitata la nivel de componente vizuale. Conceptul se poate
extinde pentru a descrie intreaga arhitectura a aplicatiei.
In acest mod, se induce conceptul de inversion of control, in sensul ca dezvoltatorul nu mai este
preocupat de realizarea unor sarcini cu caracter general (frozen spots), cum este proiectarea unui
flux de control in aplicatie, ci se concentreaza pe aspectele specifice situatiei date (hot spots),
urmand ca acestea sa fie integrate in fluxul implicit. Paradigma este adesea pusa in legatura cu
principiul Hollywood. De exemplu, intr-o aplicatie de e-commerce, accentul cade pe aspectele
de nivel inalt, ca gestionarea produselor si a comenzilor, si nu pe cele de nivel scazut, ca accesul
la baza de date. De aici se desprinde principalul avantaj.
Un alt avantaj ce rezulta imediat este reutilizabilitatea. Urmarind inlantuirea fireasca a
lucrurilor, obtinem o sporire a fiabilitatii, deoarece intrebuintarea repetata a infrastructurii
conduce la depistarea eventualelor erori si la imbunatatirea corespunzatoare.
Dezavantajul principal provine din limitarea flexibilitatii. Orice aplicatie dezvoltata utilizand
un anumit framework se va supune fluxului generic pe care acesta il defineste. Acest lucru poate
conduce la cuplaje complicate chiar in situatii simple.
Vom experimenta framework-ul MVC pentru aplicatii web, Grails.
Groovy on Grails
Grails reprezinta o platforma de dezvoltare a aplicatiilor web, in timp ce Groovy este limbajul de
la baza.
Grails
Grails este un framework open-source pentru aplicatii web, ce imbina practici utile, ce sporesc
agilitatea dezvoltarii, cu tehnologii Java, care si-au dovedit in timp consistenta. Grails ofera:
o arhitectura MVC
view: foloseste tehnologia JSP pentru a genera cod HTML. Ofera o biblioteca de tag-uri
(taglib) si un sistem de templating pentru pagini.
Groovy
Groovy este un limbaj dinamic, construit ca o extensie a limbajului Java. Dinamicitatea se
refera, printre altele, la posibilitatea invocarii de metode nedefinite, dar generate automat, la
rulare, pe baza campurilor clasei. Pentru a intelege mai bine acest lucru, cercetati aceste
exemple. Posibilitatea invocarii de metode dinamice ii confera lui Groovy calitatea de Domain
Specific Language (DSL). Acest lucru se refera la posbilitatea de a intrebuinta termeni specifici
unui anumit domeniu de lucru, ce sporeste lizibilitatea codului. De exemplu, pentru entitatea
Book si campul title, putem apela metoda dinamica Book.findByTitle.
Exercitii
1. Instalare Grails
1. Urmariti pasii pentru instalare (http://www.grails.org/Installation).
2. Integrati SpringSource Tools Suite (http://www.springsource.com/products/sts) in Eclipse
for Java EE Developers (http://www.eclipse.org/downloads/), folosind acest ghid
(http://download.springsource.com/release/STS/doc/STS-installation_instructions2.3.2.RELEASE.pdf) - sectiunea UPDATE SITE INSTALLATION, pag. 6.
2. Hello, World!
Parcurgeti tutorialul (http://www.grails.org/Quick+Start) pentru a realiza prima aplicatie Grails.
Observatii:
proiectul va fi creat direct din Eclipse: File New Project Groovy Grails
Project
comenzile care, in tutorial, sunt date la consola (ca grails create-domain-class), vor fi
introduse in Eclipse, executand: Run As Grails Command
Rulati aplicatia. Folositi comanda grails generate-all book pentru a vedea continutul complet al
controller-ului si al view-urilor. Acestea din urma se gasesc in grails-app/views/. Dupa
vizualizarea acestora, stergeti directorul book/ din grails-app/views/ si readuceti continutul clasei
BookController la forma initiala (cu scaffold).
3. Relatii
1. Definiti o clasa, Author, avand campuri pentru nume si data nasterii:
o
modificati clasa Book, astfel incat campul author sa aibe acum tipul Author
2. Modificati BootStrap.groovy, pentru a defini, de la inceput, cei doi autori, si a-i folosi in
crearea obiectelor Book.
3. Rulati aplicatia, si observati cum apar autorii in lista de carti. Adaugati metoda toString in
clasa Author, pentru a intoarce numele. Rulati din nou.
o
4. Editati carti sau autori, efectuand click pe cheia ID din dreptul acestora.
5. Incercati sa stergeti un autor. De ce nu izbutiti?
6. Adaugati
o
relatie
hasMany
si
o
relatie
belongsTo
http://www.grails.org/GORM+-+Defining+relationships). Incercati din nou.
(cercetati
4. Baza de date
Folositi un driver MySQL pentru a vedea cum se genereaza tabelele, in spatele scenei.
Resurse utile