Grails – The Search is over (deel 1)

Grails-Training

Het open source framework Grails

Hoewel Java nog steeds een goede ontwikkelomgeving is voor webgebaseerde kritische enterprise applicaties is er nu een open source framework voor agile web development met Groovy en Java. In dit artikel ‘Grails – The Search is over’ wordt nader uitleg gegeven over dit open source framework.

Grails

Grails is een samenvoeging van Groovy on Rails. Grails is eigenlijk een vorm van Ruby on Rails voor Java. Grails combineert de stabiliteit van Java EE met het agile ontwikkelen van Groovy. Grails combineert verder het Don’t Repeat Yourself (DRY) en Convention over Configuration principe. Grails versnelt het ontwikkelen van webapplicaties enorm. Vooral omdat Java EE de laatste jaren steeds complexer is geworden is het goed om te weten dat Grails de complexiteit enorm vermindert. En daardoor verhoogt het dus impliciet de productiviteit van de ontwikkelaars. De leercurve is vlak – een medior Java ontwikkelaar kan binnen een half uur zijn eerste Grails-applicatie ontwikkelen. Grails is gebouwd met en op bewezen Java frameworks als Spring en Hibernate. Verder wordt Grails bij compilatie volledig naar binaire machinecode gecompileerd, dus het heeft geen performance-issues zoals PHP en Ruby on Rails wel eens hebben. Stabiliteit, beveiliging en schaalbaarheid zijn binnen Grails dus zeker net zo goed geregeld als onder Java EE.

 

Groovy

De basis van Grails is Groovy. Groovy is een dynamische programmeertaal voor Java. Groovy is ontstaan uit de behoefte van Java ontwikkelaars om sneller te kunnen ontwikkelen zonder alle complexiteit. Geaccentueerd moet worden dat een opgeleverde Grails applicatie een volledig binaire Java EE applicatie is – Tomcat kan immers alleen binaire Java EE applicaties executeren.

De taal Groovy lijkt bijzonder veel op Java – omdat het door en voor Java ontwikkelaars is ontwikkeld. Tevens kunnen dezelfde API’s als binnen de reguliere Java EE omgeving aanwezig zijn worden gebruikt. Een software-ontwikkelaar kan binnen Groovy  ook de Java syntax gebruiken, mocht dit op dat moment pragmatischer zijn. Verder bevat Groovy – dus ook Grails – diverse nieuwe features die nog niet onder Java 7 beschikbaar zijn. Voorbeelden hiervan zijn mogelijkheden uit functionele talen: Closures en Builders.

 

Ruby on Rails versus Grails

Wat is eigenlijk het verschil tussen Ruby on Rails en Grails?

Allereerst dient vermeld te worden dat er meerdere termen voor Ruby on Rails zijn. De meest gebruikte term is “Rails”, maar termen als “Ruby on Rails” en zelfs “RoR” worden gebruikt.

Met bovenstaande termen wordt het framework “Ruby on Rails” benoemd.

Na het populair worden van Ruby on Rails (rond 2007) ontstond er binnen de Java community de behoefte om ook een dergelijk framework te hebben. Toen ontstond de term Groovy on Rails maar de inspirator van Ruby on Rails – David Heinemeier Hansson –  vond dat enigszins inbreuk op de “merknaam” – hoewel Ruby on Rails opensource is. In overleg met de inspiratoren van Groovy on Rails hebben ze besloten de term “Groovy on Rails” te veranderen in Grails. Tevens wordt vanaf dat moment de analogie gebruikt met de “Holy Grail” [Heilige Graal]. Op de site van Grails wordt dan ook een aantal kelken(grails)  afgebeeld met de slogan: “the search is over”.

Ruby on Rails gebruikt de scriptingtaal Ruby om webapplicaties mee te ontwikkelen. Grails gebruikt de scriptingtaal Groovy om webapplicaties te ontwikkelen. Een Ruby on Rails applicatie wordt uiteindelijk in productie opgeleverd als een geïnterpreteerde applicatie, zonder binaire code. Een Grails-applicatie levert uiteindelijk een gecompileerde, binaire applicatie op.

 

De Grails omgeving

Grails is een implementatie van het door Smalltalk in de jaren ’70 ontwikkelde z.g. MVC-design pattern. Door middel van dit pattern wordt er een duidelijke scheiding aangebracht tussen de drie te onderscheiden onderdelen van (bijna) elke webapplicatie: Model, View en Controller. Het voordeel van deze scheiding is dat de verschillende lagen onderling onafhankelijk van elkaar kunnen worden ontwikkeld en onderhouden. Hierdoor kan een (sub)team zich bezig houden met de controllers terwijl een ander deel van het team zich bezig houdt met de views of het model.

 

De Grails omgeving bestaat dan ook uit de volgende lagen:

view: Een veredelde vorm van JSP view technologie met vooral een grote uitbreiding van de tag-library.

controller: Gebaseerd op de Spring MVC technologie. Een controller is een Grails implementatie van een Java EE servlet met allerlei extra voorzieningen, waarover straks meer.

model: Een beschrijving van het domein van de klant. Het model is de kern van de applicatie.

Object Relational Mapping: Er wordt binnen Grails gebruik gemaakt van het bewezen, robuuste Hibernate ORM framework. Uiteraard zonder één regel XML.
Daarnaast wordt binnen Grails gebruik gemaakt van de volgende technologieën:

Dependency Injection: Het dependency injection van Spring Core wordt gebruikt om de diverse onderdelen van de applicatie aan elkaar te verbinden. Zonder één regel XML.

Transacties: Transactionele services binnen Grails zijn gebaseerd op Spring’s Transaction Abstraction mechanisme.

Internationalisatie: Internationalisatie wordt door Grails standaard ondersteund. Er dient per taal één aparte messages_<landcode>.properties file worden aangemaakt en Grails zorgt er voor dat elke bezoeker aan de hand van de instellingen van zijn browser de gewenste taal krijgt. Er wordt gebruik gemaakt van Spring’s MessageSource concept

Java EE Servlet API: Zoals een Java EE webapplicatie betaamt wordt er uiteraard gebruik gemaakt van de native Java EE servlet API.

Grails-Training
De Grails architectuur

Tot zover deel 1 van dit artikel. In deel 2 gaan we verder in op de inhoud en structuur van een Grails applicatie.

Meer weten over Grails?

Volg dan onze Grails Programming Training.
Neem voor meer informatie contact met ons op, wij helpen u graag verder!
Vijfhart IT-Opleidingen
088- 542 78 48
info@vijfhart.nl

 

Tags:
agileApplicatieGrailsGroovyJavaJava EEopen sourceprogrammerenruby on rails
Onderwerpen
Actieve filters: Wis alle filters
Pageloader
Algemene voorwaarden

Jouw persoonsgegevens worden opgenomen in onze beschermde database en worden niet aan derden verstrekt. Je stemt hiermee in dat wij jou van onze aanbiedingen op de hoogte houden. In al onze correspondentie zit een afmeldmogelijkheid