Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf ·...

34
Matthias Schmidt Software Engineer Sun Microsystems, Inc. Groovy, Grails und NetBeans

Transcript of Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf ·...

Page 1: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Matthias SchmidtSoftware EngineerSun Microsystems, Inc.

Groovy, Grails und NetBeans

Page 2: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

Agenda

• Die Groovy Programmiersprache• Grails Web Framework• Groovy und Grails Unterstützung in NetBeans

Page 3: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

Wieso Groovy?

• Dynamische Sprachen sind ein Paradigmenwechsel.• Ist syntaktisch an Java angelehnt.• Läuft in der JVM, kein JNI, kein Marshalling.• GDK ist Obermenge/Anreicherung des JDK.• JDK Klassen sofort benutzbar.• ca. 30 % weniger LOC.

Page 4: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

Alles ist ein Objekt!

• Darum geht sowas:

Page 5: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

Höhere Ausdrucksfähigkeit• Optionale Semikolons:

• Default imports: * java.io.* * java.lang.* * java.math.BigDecimal * java.math.BigInteger * java.net.* * java.util.* * groovy.lang.* * groovy.util.*

Page 6: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

Höhere Ausdrucksfähigkeit 2• GStrings:

• Beans:

Page 7: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

Closures 1• Code als Daten

• Lesbarkeit, Flexibilität

Page 8: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

Closures 2• GDK ist genauso “closifiziert” wie das JDK5

generifiziert wurde.

• Currying treibt das ganze auf die Spitze:

Page 9: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

Collections: List, Range• List: def list = [5, 6, 7, 8]• Range:

Page 10: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

Collections: Map• Map:

• Operations:

Page 11: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

GDK mixins Type JDK Groovy

Array length field size()

Array java.lang.reflect.Array.getLength(Array) size()

String length() size()

StringBuffer length() size()

Collection size() size()

Map size() size()

File length() size()

Matcher groupCount() size()

Page 12: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

Builder

Page 13: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

Page 14: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

Was ist Grails?

• Ruby on Rails -> Groovy/Grails• Prinzip des “Convention over Configuration”.• Projektstruktur vorgegeben.• Model-View-Controller Aufbau.• Spring, Hibernate, SiteMesh• Grails-Kommandos bestimmen den Arbeitsablauf.

Page 15: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

Framework + Ablaufumgebung

• Grails ist sowohl API, ...• als auch Runtime (Jetty) sowie• Shell-Kommando: “grails run-app”.

• Keine Konfiguration per XML.• Sinnvolle Defaulteinstellungen.

Page 16: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

Wiederverwendung

• Spring• Hibernate• SiteMesh• Ant• Plugin-Architektur (~ 70)• AJAX per plugins, Oder Flex, oder ...

Page 17: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

Projektstruktur

Page 18: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

Agile/Rapid Prototyping

• grails create-app• grails create-domain-class

• grails create-controller• grails run-app

Page 19: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

Groovy Server Pages• Vergleichbar mit JSP.• Per Tag-Libs erweiterbar.

Page 20: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

Scaffolding

• Grails create-controller

Page 21: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

Constrains

Page 22: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

Datenbankanbindung

Page 23: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

Page 24: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

NetBeans Integration• GSF Framework als Basis des Scripting-Supports.• Benutzer: JavaScript, PHP, Scala, Erlang, Groovy,

Ruby usw.• GSF Basis seit NetBeans 6.0.• Groovy/Grails vorraussichtlich Teil von NB 6.5.• Grails-Projekte werden nicht verändert.

Page 25: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

NetBeans• Laden u. Erzeugen von Projekten per Wizard:

Page 26: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

NetBeans• Laden u. Erzeugen von Projekten per Wizard:

Page 27: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

NetBeans

• Code Completion

Page 28: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

NetBeans• Code Folding

Page 29: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

NetBeans• Syntax Highlighting

Page 30: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

NetBeans• Start/Stop Server

• Customizing

Page 31: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

NetBeans• Navigator View

• Error-Marking

Page 32: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

NetBeans• Ausgabefenster

Page 33: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Sun Confidential: Internal Only

Links

• http://martin.adamek.sk• http://www.netbeans.org• http://blogs.sun.com/tor/• http://hg.netbeans.org/main/summary• http://hg.netbeans.org/main/contrib/summary• http://wiki.netbeans.org/WorkingWithNetBeansSources• http://grails.org/• http://groovy.codehaus.org/

Page 34: Groovy, Grails und NetBeans - JUG Karlsruhejug-karlsruhe.de/assets/slides/GroovyGrailsNB.pdf · Groovy, Grails und NetBeans. Sun Confidential: ... • Prinzip des “Convention over

Matthias [email protected]

Thanks