Motivation
Moderne Web-Applikationen sind Single Page Applikationen. Zur Entwicklung werden meist mindestens zwei unterschiedliche Technologien eingesetzt. Für das Frontend kommt meist JavaScript mit verschiedenen Frameworks zum Einsatz. Das Backend wird häufig mit Java und/oder auf der JVM basierenden Programmiersprachen und Frameworks entwickelt. Der Aufwand für einen einzelnen Entwickler oder kleine Teams, diesen umfangreichen Technologiestack zu beherrschen, ist groß.
Rapid Application Development Tools wie Ruby on Rails oder Grails, mit denen auch ein kleines Team schnell komplexere Anwendungen erstellen kann, erzeugen standardmäßig Multi Page Applikationen. Der Aufwand, damit eine moderne und nutzerfreundliche Oberfläche zu bauen, ist recht hoch.
Dieses Tutorial zielt darauf, eine rein JVM-basierte Entwicklung von SPAs zu vermitteln, mit der sich komplexe, sichere und performante Applikationen effizient auch von Einzelpersonen oder kleinen Teams entwickeln lassen. Grundlage ist eine Kombination der etablierten Frameworks Spring und Vaadin mit den Programmiersprachen Java 8 und Groovy.
Eine Einschränkung sollte nicht unerwähnt bleiben: Für eine schöne Applikation brauchen die meisten Informatiker die Mitwirkung eines Webdesigners.
Zielgruppe, Voraussetzungen, Inhalte
Die primäre Zielgruppe, an die sich dieses Tutorial richtet, sind Studierende meiner Lehrveranstaltung zur Software-Technologie. Vertiefte Java-Kenntnisse und ein Basiswissen an objektorientierter Modellierung werden vorausgesetzt.
Auf die verwendeten Technologien und Frameworks gehe ich nicht direkt ein, da dazu viele gute Dokumentationen und Tutorien im Internet zu finden sind. Der Fokus liegt auf ihrem Zusammenspiel und einzelnen Aspekten, zu denen ich keine einfachen Erklärungen in anderen Quellen gefunden habe.
Eine sinnvolle Softwareentwicklung braucht nicht nur Technologien, sondern auch Methoden. Das Tutorial beinhaltet daher auch methodische Betrachtungen zum Entwurf.
Zu vielen Themen gibt es Aufgaben, mit denen die vorgestellte Lösung sinnvoll erweitert werden kann, oder eine Liste von Fragen, die den Stoff verteiefen sollen. Wenn das Tutorial von vorn bis zum Ende durchgearbeitet wird, sollte damit eine wesentlich erweiterte Web-Applikation entstehen. Es sollte aber auch möglich sein, nur einzelne Kapitel des Tutorials zu nutzen.
Kommentare und Kritiken, die helfen, dieses Tutorial zu verbessern, sind sehr willkommen.
Links und Materialien
Folgende Links und Materialien ergänzen dieses Tutorial und haben es teilweise erst möglich gemacht.
Spring
- Spring Framework Startseite
- Spring Dokumentation aller Teilprojekte
- Spring Boot
- Spring Data
- Spring Security
Vaadin
- Book of Vaadin
- Book of Vaadin Examples
- Vaadin4Spring Extensions and Addons
- Vaadin User Interface Components Sampler
- Vaadin API
Groovy
- Foliensatz zu Groovy Grundlagen
- Foliensatz zur Groovy Metaprogrammierung
- Groovy Language Website
- Eins der vielen Groovy Tutorials
- Noch ein Groovy Tutorial