Wat is het verschil tussen een CMS en een framework? Als voorbeeld van een modern web framework wordt Grails gebruikt ter illustratie. Wat is een goede basis voor een website-tool?
2. CMS
Content Management System
Webpublicatie: tekst, audio en video
Films, radio-uitzendingen, wetenschappelijke artikelen,
technische handleidingen, recensies, columns, blogposts,
etc.
5. Ready to Go?
Een product dat out-of-the-box exact doet wat we willen
bestaat (waarschijnlijk) niet
Uitbreidbaarheid
Inzichtelijkheid
Herbruikbaarheid van componenten
Etc.
10. Snel ontwikkelen
Convention over Configuration
Domeinobject? Article
Controller? ArticleController
Tests? ArticleControllerTests
Vaste mappenstructuur, veel gaat vanzelf
Het kan altijd anders, maar dan moet je het zelf regelen
11. Architectuur
Grails Groovy Development Kit (GDK)
Groovy Server Pages (GSP) view templates
SiteMesh layout & decoration
Spring MVC domeinlogica
GORM (Hibernate) database opslag
13. Grails Plugins
Momenteel 293 plugins via grails.org
Taggen, ratings, comments, zoeken, taxonomiën, navigatie,
user interface, JavaScript, testen, feeds, workflow,
integratie, ...
Redelijk tot goede kwaliteit, maar soms nog niet af
CMS plugins, maar nog niet volwassen
22. Glijdende Schaal
Content Management System
Content Management Framework
Web Application Framework
23. Conclusie
Framework: alles kan
Voor een CMS geldt dit als het goed is ook
Flexibiliteit versus ontwikkeltijd en -kosten
Bedenk goed wat je wil en nodig hebt
Kies de meest concrete technologie die past bij je wensen
Hinweis der Redaktion
CMS
- Content Management System
- Tekst, audio en video:
- Films, radio-uitzendingen, wetenschappelijke artikelen, technische handleidingen, recensies, columns, blogposts, etc.
- Veel interpretaties, honderden producten
- Gerbrand legt verder uit wat we van een CMS vragen
- Collega’s vertellen straks over hun ervaringen met enkele CMS’en
- Ik stak wat ‘lager’ in
- Raamwerk
Frameworks
- Erg generieke term
- In deze context: open source web application framework
- Ondersteunt het ontwikkelen van dynamische websites
- Talloze implementaties
- Spring, Struts, Stripes, Seam, ... (ze beginnen niet allemaal met een ‘S’)
- Voorbeeld van een modern web application framework: Grails
- SpringSource
- Grails ‘leent’ ideeën van Rails, maar is geen kloon
- Groovy on Rails -> Grails
- Flink actieve community met kennis van zaken
- Grails is een framework, maar maakt zelf ook weer gebruik van frameworks!
- “High-level” framework
- Cinema.nl maakt ook gebruik van Hibernate en Spring MVC, maar meer op een “low-level” manier
- Extra functionaliteit en componenten: plugins
- Momenteel 293 plugins via grails.org
- Taggen, ratings, comments, zoeken, taxonomiën, navigatie, user interface, JavaScript frameworks, testen, feeds, workflow, integratie, ...
- Redelijk tot goede kwaliteit, maar soms nog niet af
- CMS plugins, maar nog niet volwassen
- VPRO is de hoofdtaal bij VPRO Digitaal
- Groovy is grotendeels een superset van Java, dus de meeste Java-code is ook valide Groovy
- Groovy voegt een hoop ‘moderne’ en handige constructies toe
- Java-programmeurs kunnen steeds ‘groovier’ gaan programmeren
- Wel een lelijk logo
- Puntkomma’s, haakjes en return-statements zijn optioneel
- Literals voor reguliere expressies, maps en lists
- Regex matching
- Puntkomma’s, haakjes en return-statements zijn optioneel
- Literals voor reguliere expressies, maps en lists
- Regex matching
Lagen van Abstractie
- Frameworks bouwen voort op frameworks
- Voeg wat plugins toe
- Schrijf wat code als cement
- En ineens heb je een CMS
- Demo van Grails applicatie
- Exclusief tests, configuratie, templates en CSS
- Weinig regels code -> goedkoop en eenvoudig onderhoud
- Hoe hoger, hoe meer functionaliteit concreet geïmplementeerd is
- Grails is echt een web application framework, maar met plugins wel op te werken naar een hoger niveau
- Hippo en Drupal zijn meer CMF’s, Magnolia misschien ook nog wel