Grails - fh-muenster.de · 2015-01-14 · Grails –Überblick Folie 3 [Grails –Web 2.0...

Preview:

Citation preview

Grails…the search is over?

Web 2.0 Software-ArchitekturenWintersemester 2014/2015

14. Januar 2015Bruno Burke, B.Sc.burke@fh-muenster.de

Peter Weßeler, B.Sc.pw554483@fh-muenster.de

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