Website-tool:
CMS of Framework?
   Nils Breunese / VPRO Digitaal
CMS

Content Management System
Webpublicatie: tekst, audio en video
   Films, radio-uitzendingen, wetenschappelijke artike...
“Een CMS, alstublieft”
“Een CMS, alstublieft”
Ready to Go?
Een product dat out-of-the-box exact doet wat we willen
bestaat (waarschijnlijk) niet
Uitbreidbaarheid
Inzich...
smokingtape1717 / CC-BY-NC
http://www.flickr.com/photos/smokingtape/2692114288/
Framework

Erg generieke term
Open source web application framework
Ontwikkelen van dynamische websites
Talloze implementa...
Grails
Ruby on Rails
Snel ontwikkelen
Convention over Configuration
   Domeinobject? Article
   Controller? ArticleController
   Tests? ArticleC...
Architectuur
Grails                            Groovy Development Kit (GDK)

               Groovy Server Pages (GSP) view...
Grails Plugins
Grails Plugins
Momenteel 293 plugins via grails.org
Taggen, ratings, comments, zoeken, taxonomiën, navigatie,
user interfa...
Groovy
Groovy Goodness
['a', 'b', 'c'].join('::')                   // 'a::b::c'
["Glen", "Alice"].collect { it.size() }      // ...
Groovy Goodness
['a', 'b', 'c'].join('::')                     // 'a::b::c'
["Glen", "Alice"].collect { it.size() }       ...
Groovy Goodness
['a', 'b', 'c'].join('::')                     // 'a::b::c'
["Glen", "Alice"].collect { it.size() }       ...
“Deze vuist op deze vuist”

Frameworks bouwen voort op frameworks
Voeg wat plugins toe...
Schrijf wat code als cement...
E...
Proof of Concept CMS
Proof of Concept CMS
+----------------------+-------+------+
| Name                 | Files | LOC |
+---------------------...
Maar...
Gebruikersbeheer?
Versiebeheer?
Workflow?
Clustering?
...
Je zult het toch allemaal moeten aansluiten en/of maken
Glijdende Schaal
     Content Management System


    Content Management Framework


      Web Application Framework
Conclusie

Framework: alles kan
Voor een CMS geldt dit als het goed is ook
Flexibiliteit versus ontwikkeltijd en -kosten
B...
Upcoming SlideShare
Loading in …5
×

Website-tool: CMS of Framework

1,769 views

Published on

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?

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,769
On SlideShare
0
From Embeds
0
Number of Embeds
215
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • 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
  • Website-tool: CMS of Framework

    1. 1. Website-tool: CMS of Framework? Nils Breunese / VPRO Digitaal
    2. 2. CMS Content Management System Webpublicatie: tekst, audio en video Films, radio-uitzendingen, wetenschappelijke artikelen, technische handleidingen, recensies, columns, blogposts, etc.
    3. 3. “Een CMS, alstublieft”
    4. 4. “Een CMS, alstublieft”
    5. 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.
    6. 6. smokingtape1717 / CC-BY-NC http://www.flickr.com/photos/smokingtape/2692114288/
    7. 7. Framework Erg generieke term Open source web application framework Ontwikkelen van dynamische websites Talloze implementaties Spring, Struts, Stripes, Seam, ...
    8. 8. Grails
    9. 9. Ruby on Rails
    10. 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. 11. Architectuur Grails Groovy Development Kit (GDK) Groovy Server Pages (GSP) view templates SiteMesh layout & decoration Spring MVC domeinlogica GORM (Hibernate) database opslag
    12. 12. Grails Plugins
    13. 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
    14. 14. Groovy
    15. 15. Groovy Goodness ['a', 'b', 'c'].join('::') // 'a::b::c' ["Glen", "Alice"].collect { it.size() } // [4, 5], closure user.company?.address?.state?.name // null-safe "Good morning, ${name}" // GString assert "Speaking plain English" =~ /plain/ // regex personList.find { it.firstName == "Glen" } // find, closure
    16. 16. Groovy Goodness ['a', 'b', 'c'].join('::') // 'a::b::c' ["Glen", "Alice"].collect { it.size() } // [4, 5], closure user.company?.address?.state?.name // null-safe "Good morning, ${name}" // GString assert "Speaking plain English" =~ /plain/ // regex personList.find { it.firstName == "Glen" } // find, closure def mainsite = { [ teasers: Site.findAllByTeaserIsNotNull().teaser ] }
    17. 17. Groovy Goodness ['a', 'b', 'c'].join('::') // 'a::b::c' ["Glen", "Alice"].collect { it.size() } // [4, 5], closure user.company?.address?.state?.name // null-safe "Good morning, ${name}" ♥ assert "Speaking plain English" =~ /plain/ personList.find { it.firstName == "Glen" } // GString // regex // find, closure def mainsite = { [ teasers: Site.findAllByTeaserIsNotNull().teaser ] }
    18. 18. “Deze vuist op deze vuist” Frameworks bouwen voort op frameworks Voeg wat plugins toe... Schrijf wat code als cement... En ineens heb je een CMS!
    19. 19. Proof of Concept CMS
    20. 20. Proof of Concept CMS +----------------------+-------+------+ | Name | Files | LOC | +----------------------+-------+------+ | Controllers | 3 | 82 | | Domain Classes | 2 | 39 | | Tag Libraries | 3 | 31 | +----------------------+-------+------+ | Totals | 8 | 152 | +----------------------+-------+------+
    21. 21. Maar... Gebruikersbeheer? Versiebeheer? Workflow? Clustering? ... Je zult het toch allemaal moeten aansluiten en/of maken
    22. 22. Glijdende Schaal Content Management System Content Management Framework Web Application Framework
    23. 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

    ×