grails - fh-muenster.de · 2015-01-14 · grails –Überblick folie 3 [grails –web 2.0...
TRANSCRIPT
Grails…the search is over?
Web 2.0 Software-ArchitekturenWintersemester 2014/2015
14. Januar 2015Bruno Burke, [email protected]
Peter Weßeler, [email protected]
Agenda
Folie 2 [Grails – Web 2.0 Software-Architekturen] – [Burke/Weßeler]
Überblick Geschichte
Popularität
Architektur / Eigenschaften / Konzepte
Domain
View
Controller
Testing
Groovy
Grails – Überblick
Folie 3 [Grails – Web 2.0 Software-Architekturen] – [Burke/Weßeler]
Full Stack Web Application FrameworkSpring MVC
SiteMesh
Hibernate
Groovy (Programmiersprache)
MVC Paradigma (Domain Class / View / Controller)
Frontend/Backend
Angelehnt an „Ruby on Rails
Entwicklung durch G2One, jetzt Pivotal
Grails – Überblick
Folie 4 [Grails – Web 2.0 Software-Architekturen] – [Burke/Weßeler]
Kommandozeilenprogramm grails(Aufgebaut auf Gant)
Projekterstellung
Testen
Server starten
Erstellen von Komponenten
Standalone FrameworkBesitzt eigenen Webserver (Tomcat) und Datenbank (h2DB)
Export als WAR Archive
Grails – Geschichte
Folie 5 [Grails – Web 2.0 Software-Architekturen] – [Burke/Weßeler]
2005- Erste Veröffentlichung noch als Groovy on Rails durch G2One
Vergleich: Rails erste Veröffentlichung 2004
2006 – Umbenennung in Grails
Bitte um Namensverzicht durch Ruby on Rails Autor
2008 – Release der Version 1.0
2008 – Aufkauf durch SpringSource
2011 – Release der Version 2.0
Aktuell: Version 2.4.3 (30. Juli 2014) Pivotal Software, Inc.
Grails – Popularity
Folie 6 [Grails – Web 2.0 Software-Architekturen] – [Burke/Weßeler]
Quelle: http://www.indeed.com/jobanalytics/
Grails – Eigenschaften und Konzepte
Folie 7 [Grails – Web 2.0 Software-Architekturen] – [Burke/Weßeler]
Rapid Prototyping
Scaffolding
Generierung von CRUD-Pages
Konvention vor Konfiguration
Namen und Bezeichnungen
Ordnerstruktur
No XML Configuration
Ready-to-use Entwicklungsumgebung
Functionality through mixins
Grails – Architektur
Folie 8 [Grails – Web 2.0 Software-Architekturen] – [Burke/Weßeler]
Quelle: http://www-igm.univ-mlv.fr/~dr/XPOSE2009/Groovy_and_Grails/img/architecture_grails.png
Grails – Domain
Folie 9 [Grails – Web 2.0 Software-Architekturen] – [Burke/Weßeler]
Domain ist „Model“ von MVC
Validation
Relationships
Persistenz (Hibernate)
Mapping
Groovy File
Quelle: http://grails.org/doc/latest/guide/GORM.html
Grails – Domain – GORM
Folie 10 [Grails – Web 2.0 Software-Architekturen] – [Burke/Weßeler]
Grails Implementierung des Object-Relational-Mapping (ORM)
Nutzt Hibernate
Entwicklungsumgebung kommt mit H2 Datenbank
Quelle: http://tutorials.techmytalk.com/2013/08/07/grails-gorm/
Grails – Domain – Relationships
Folie 11 [Grails – Web 2.0 Software-Architekturen] – [Burke/Weßeler]
Beziehung per Attribut für jede Richtung einzeln definierbarhasOne
hasMany
belongsTo
Basiert meist auf Java Sets
Umstellbar auf SortedSets
Grails – Domain – Validation
Folie 12 [Grails – Web 2.0 Software-Architekturen] – [Burke/Weßeler]
Validation durch Constraints Code-Block in Domain-Class
Vielzahl an Constraints vorhanden
Definition eigener Validators möglich
Grails – Domain – Validation - Constraints
Folie 13 [Grails – Web 2.0 Software-Architekturen] – [Burke/Weßeler]
Quelle: http://grails.org/doc/latest/ref/Constraints/Usage.html
Grails – Domain – Objektfindung
Folie 14 [Grails – Web 2.0 Software-Architekturen] – [Burke/Weßeler]
Alle
Bestimmte ID
Mehrere IDs
Dynamic Methods:
http://grails.org/doc/2.3.x/ref/Domain%20Classes/findAllBy.html
Grails – View
Folie 15 [Grails – Web 2.0 Software-Architekturen] – [Burke/Weßeler]
Eigene View Technology, genannt GSP – Groovy Server PagesÄhnlichkeit zu ASP und JSP
Definition eigener Tag Libraries möglich
Links
Formulare
Schleifen
If Anweisungen
Variablen / Mehrere Scopes
Templates (SiteMesh)
Grails – View – Beispiel
Folie 16 [Grails – Web 2.0 Software-Architekturen] – [Burke/Weßeler]
Loops:
Filter:
Links:
Grails – View – Beispiel
Folie 17 [Grails – Web 2.0 Software-Architekturen] – [Burke/Weßeler]
Formulare:
Formularelemente:
• textField• passwordField• checkBox• radio• hiddenField• select
Submitbuttons:
Grails – Controller
Folie 18 [Grails – Web 2.0 Software-Architekturen] – [Burke/Weßeler]
Request Handling und Erstellung/Vorbereitung der Antwort
Direkte Antwort oder Delegation an ein View
Bestimmung der View durch Konvention (änderbar)
Weiterleitung zu anderen Actions möglich
Rückgabewert der Action dient als Model für View
Grails – Testing
Folie 19 [Grails – Web 2.0 Software-Architekturen] – [Burke/Weßeler]
Automatische Tests sind wichtiger Bestandteil von Grails
Früher jUnit3 Tests
Ab Grails 2.0 verschiedene Frameworks möglichjUnit 3jUnit 4Spock
Unterstützung für 4 TestphasenUnitIntegrationFunctionalother
Grails – Testing – SpecificationTest
Folie 20 [Grails – Web 2.0 Software-Architekturen] – [Burke/Weßeler]
Beispiel für Specification Test http://grails.org/doc/2.3.7/guide/testing.htm
Grails - Groovy
Folie 21 [Grails – Web 2.0 Software-Architekturen] – [Burke/Weßeler]
Java Superset
Kompiliert direkt zu Java Bytecode
Viele FeaturesMetaprogramming
Closures & Currying
Mixins
Operator Overloading
Flexible Typisierung
Grails - Fazit
Folie 22 [Grails – Web 2.0 Software-Architekturen] – [Burke/Weßeler]
Framework bietet großen Funktionsumfang
Sehr ausführliche und gut strukturierte Dokumentationhttp://grails.org/doc/2.3.x/
Schnelle Prototypen-Entwicklung möglich
Geringe Einarbeitungszeit
Viele Möglichkeiten dank flexibler Programmiersprache
Benutzung bestehender Java Bibliotheken
Leicht erweiterbar durch mehr als 1000 Plugins
Grails - Praktikum
Folie 23 [Grails – Web 2.0 Software-Architekturen] – [Burke/Weßeler]
Frontend / Backend Entwicklung
Entwicklung eines Microblog (á la Twitter)
Sammlung von Interessanten Weblinks
Kommunikation mit anderen Blogs über REST Schnittstelle im JSON Format