Umbraco, een open source .NET CMS

Op de werkvloer bij een grotere websitebouwer heb je vandaag de dag meestal twee soorten ontwikkelaars rondlopen: .NET-ontwikelaars en Java-ontwikkelaars. In veel bedrijven ben je ook echt het één of het ander. Overstappen doe je niet. Je bent nu eenmaal geboren als Javaan en daarom word je nooit een .NET developer. Wisselen van programmeertaal voelt voor sommigen een beetje als vreemdgaan.

Maar ook een slechte gewoonte als vreemdgaan heeft voordelen. Je ontmoet nog eens iemand en je ziet weer eens wat van de wereld. Zo ontdekte ik op een van mijn .NET escapades het CMS Umbraco. Ik was als Javaan in de veronderstelling dat Java the place to be was als het om open source software ging, maar ook in de .NET wereld is er op het gebied van open source aardig wat te krijgen.

umbraco cms

Umbraco biedt onder andere de volgende zaken

  • Een backoffice met verschillende rollen voor editors, admins en developers.
  • User management. Je kunt zelf users aanmaken met op maat gesneden rechten.
  • Een "content tree", ofwel een boomstructuur waar je "content" in kan stoppen.
  • De mogelijkheid om zelf document types te maken. Dus als je auto's weer wil geven maak je een "auto" document type en voeg je hier velden voor gewicht, kleur, merk, etc aan toe.
  • Een hoop data types out of the box (gewicht moet een nummer zijn, de merknaam is text, de website van de fabrikant is een 'link', etc)
  • De mogelijkheid om zelf datatypes bij te maken.
  • Een templating systeem.
  • Een "macro" systeem om stukjes logica toe te wijzen aan specifieke onderdelen van een template.
  • Een event model, waarmee je als ontwikkelaar kunt inhaken op tal van gebeurtenissen, zoals het opslaan, verplaatsen of verwijderen van een node.
  • Caching.
  • Ondersteuning voor meertalige sites.
  • Ondersteuning voor zoeken met Lucene (gebruikt het toch nog Java! :)
  • Plaatjes automatisch resizen met imagegen (losse library)
  • Een behoorlijk levendige community.

Nu zijn dit allemaal geen héél bijzondere dingen voor een CMS. Met bijvoorbeeld Drupal (PHP) heb je ook een content-boom en kun je ook zelf document types aanmaken.

Voordelen

Wat me echter opviel bij Umbraco is dat er veel dingen zijn die out of the box direct werken die je bij een CMS als bijvoorbeeld Drupal nog zelf moet maken. Umbraco maakt uitzichzelf bijvoorbeeld hackable en zoekmachine-vriendelijke URLs en het is met Umbraco erg eenvoudig om categorieën in je site te maken, terwijl je daar bij Drupal modules voor moet activeren en ook moet programmeren om het de URLs vriendelijk te krijgen. Het is met Umbraco mogelijk om erg snel een content site neer te zetten, speciaal als je componenten zo schrijft dat je ze kunt hergebruiken natuurlijk.

Umbraco gebruikt een op het filesysteem opgeslagen XML cache. Hierin zit alle content uit de contentboom opgeslagen. Je kunt deze XML cache benaderen met behulp van XPATH queries. Het belangrijkste voordeel van zo'n cache is dat het erg snel is.

Je kunt als Umbraco ontwikkelaar programmeren in .NET (C# of VB dus) of je kunt gebruik maken van XSLT. C# heeft mijn voorkeur, maar enkele van mijn collega's zweren bij XPATH. Kortom, met Umbraco heb je ook nog wat om over te praten tijdens de lunch :)

Minpunten

Een review is geen review zonder ook de minpunten te benoemen. De minpunten van Umbraco liggen in de bugs die je soms op de vervelendste momenten tegenkomt. Een aantal van de lastigste die ik tegengekomen ben zijn

  • Duplicatie van templates in de database, waardoor ze niet meer te verwijderen zijn.
  • Slecht werkende caching. Onder hoge load gebeuren er de gekste dingen. Gecachte items blijven leeg en er ontstaan nullpointers op gecachte items, waar eigenlijk volgens de code geen nullpointers kunnen ontstaan. Hierdoor is load testen niet mogelijk en kun je dus moeilijker afspraken maken met een klant over de performance.
  • Beperkt workflow mogelijkheden. Het publicatieproces is beperkt tot het indrukken van de publish knop als je klaar bent met typen. Voor grotere organisaties met een complexer editorial proces is dit waarschijnlijk niet voldoende.

Al met al vind ik Umbraco een behoorlijk compleet CMS waarmee je in een korte doorlooptijd een kleine tot middelgrote site kan realiseren.

Je emailadres wordt niet getoond op de site
8 x 6 =