Fabian 17. August 2009
Drei Begriffe, die man unbedingt auseinanderhalten sollte. Wieso und warum, das erkläre ich im folgenden Abschnitt! Ich setze in diesem Artikel voraus, dass jeder der ihn liest weiß was HTML und eventuell auch ein DOM-Baum ist.
Also zunächst zu den Taglibraries:
Taglibraries sind prinzipiell kleine Werkzeugkästen mit denen man viel mit wenig Aufwand erreicht. Die so genannten Tags werden in den Webseitenquelltext eingesetzt und zur Laufzeit durch entsprechende Codeabschnitte automatisch ersetzt.
Grails bietet ebenfalls eine Taglibrary an, es handelt sich hierbei um die Groovy Taglibrary. Die Referenz hierzu befindet sich hinter dem folgenden Link.
Hier ein Beispiel:
<select name="dropdown">
<option>Wert 1</option>
<option>Wert 1</option>
<option>Wert 1</option>
<option>Wert 1</option>
<option>Wert 1</option>
</select>
Die Beispiel würde eine Auswahlbox erzeugen. Wenn wir das Ganze mit Grails und der GSP Taglibrary machen, dann ensteht folgendes:
class TestController {
def index = {
[list:["Wert 1","Wert 2","Wert 3","Wert 4","Wert 5"]]
}
}
<g:select name="dropdown" from="${list}" />
Das Ergebnis ist am Ende das selbe. Nun fragt Ihr euch, warum sollte ich das denn so umständlich verpacken, wenn ich es auch direkt in HTML schreiben kann. Ganz einfach, denn wir wollen in unserer Applikation in Zukunft auch dynamisch Werte in die Ausgabeseiten generieren lassen. Bisher hat das Grails für uns gemacht, aber wir kommen auch immer wieder an Stellen, an denen wir das selber machen müssen. Schaut einfach mal in die Views, die Grails euch automatisch generiert hat und vergleicht den Inhalt mal mit dem Inhalt zum Link, der zur Groovy Taglibrary führt.
Den ganzen Beitrag lesen »
Tags: actions, functions, gsp, jsp, taglib, taglibrary
Fabian 15. August 2009
Im vorigen Abschnitt habe ich ja schon erläutert, wie man aus den erstellten Domainklassen Controller und Views generieren kann, wieso eigentlich noch das Thema Scaffolding?
Was ist eigentlich Scaffolding?
Scaffolding bedeutet nichts anderes, als das während der Entwicklung der Software kein Augenmerk auf die Standardoperationen der Domainklassen gelegt werden muss. Hier sprechen wir vom CRUD (Create, Read, Update, Delete) Schema.
class BohnensackController {
def scaffold = true
}
Den ganzen Beitrag lesen »
Tags: Controller, create-controller, generate-all, scaffolding
Fabian 14. August 2009
Puhh, hab ich mich damit schwer getan ein Einstiegsprojekt für den Blog zu finden, doch heute Nacht kam die Erleuchtung
Ob Sie jetzt wirklich sinnvoll ist die Idee, oder nicht, das wird sich sicherlich noch zeigen…
Thema: The CoffeeBeanProject
Idee: Tool um Kaffeesorten zu speichern und zu bewerten.
Hintergrund: Endlich habe ich einen Kaffeevollautomaten, aber bin noch auf der Suche nach dem richtigen Kaffee und da ich direkt an der Schweizer Grenze wohne, habe ich gleich doppelt so viel Auswahl!

Und nun geht es los …
Als erstes überlegen wir uns das grundlegende “Domain Model”. Was wollen wir eigentlich abbilden in unserer Applikation und wie pressen wir das in Software?
Meine vorab getätigten Überlegungen habe ich mal in Visio skizziert:

Den ganzen Beitrag lesen »
Tags: CoffeBeanProject, create-app, create-domain-class, generate-all, Grails, Kommandozeile, Projekt, run-app
Fabian 13. August 2009
Die ersten sind meist auch die Schwierigsten und die Tücken, die Grails bietet, sind meist auch nicht direkt ersichtlich. Der Teufel steckt ja bekanntlich im Detail
Also zunächst was ist eigentlich Grails?
Für alle, die zufällig auf diesen Artikel gestoßen sind, Grails ist ein Webframework, was es ermöglichen soll schnell und einfach Applikationen zu entwickeln und online zu stellen. Unter der Haube von Grails steckt Groovy (eine dynamisch typisierte Sprache), eine Sprache die auf der Java Syntax aufbaut und versucht viele Unschönheiten zu beseitigen. Dabei wird der Groovy Code später in Bytecode umgewandelt und läuft somit in einer JAVA VM. Einige Vorteile von Groovy sind dynamische Datentypen, Maps, Listen, reguläre Ausdrücke (Regular Expressions) und Closures.
Aber zurück zu Grails: Grails arbeitet und anderem mit Hibernate und untersützt somit das Ablegen von Objekten in einer relationalen Datenbank. Neben der Möglichkeit Webanwendungen mit Unit-Tests zu bestücken bietet Grails ein relativ simples Kommandozeilentool an, mit dem wirklich alles direkt von einer zentralen Stelle aus gesteuert werden kann.
Genug Geschwätz, legen wir endlich los !
Zunächst liste ich einige Downloadquellen von Tools auf, die für die Arbeit mit Grails sinnvoll sind, aber nicht unbedingt alle benötigt werden im ersten Schritt.
Den ganzen Beitrag lesen »
Tags: Erste Schritte, IDE, Installation, Netbeans