Umbraco CMS review
I like a bit of change in my work every now and then. When I first started using Umbraco I had been working on a Java GWT application for almost a year, so I welcomed a new project with a new CMS to discover. I was lucky that Wrox had just published the first ever book on Umbraco when my project started, so I ordered a copy of Umbraco User's Guide to read up on Umbraco.
Umbraco User's Guide is a good beginners guide to Umbraco for both developers and administrators. It covers the most important aspects of Umbraco in just 320 pages. Of course 320 pages is not enough to go into every little detail of programming your own site, but it wil certainly get you acquinted with the core concepts and it helped me getting up to speed quickly.
So, what is Umbraco and what does it offer? Umbraco is an open source .NET CMS. It has the following features.
- A backoffice with different roles for editors, admins and developers.
- User managemenr. You can create your own users and roles.
- Not surprisingly, a tree structure that holds the content of your site.
- A document type system that allows you to define custom document types (for example 'car') consisting of fields (weight, color, max speed, brand, etc) with different data types (text, string, link, etc).
- A lot of data types out of the box, such as textstring, mutpliple text box, numeric, related link, et cetera and you have the ability to create your own data types.
- A templating system.
- A "macro" system that allows you to call pieces of code (either XSLT or .NET User Controls) from a template.
- An event model to add functionality that should start working on particular events like the saving of a new node or the deletion of a node.
- A Lucene based site search.
- Support for multilingual sites.
- A media library for uploading images, video and files.
- Automatic resizing of image with imagegen (external library)
- Een lively and friendly community of Umbraco users.
In any Umbraco project you will probably make extensive use of macro's. They can be written either with XSLT or in .NET. In my project I chose to write my macro's in .NET C#, because I prefer it to XSLT, but you can use either and you can write one macro in .NET and the other in XSLT if you want.
The thing I liked best about Umbraco is its completeness. Umbraco uses friendly and hackable URLs out off the box, it has a good templating system, it allows you to easily define 404 pages, search is easy to implement, you can use 'imagegen' to achieve automatic image resizing and the rich text editor just *works* out of the box. You have no idea how many hours I spent reading and programming on Drupal to get all this working and in the end I didn't even get it all working, because I gave up, but don't tell anyone :) All in all, for a programmer with some experience in CMS's Umbraco is not hard to grasp and will allow you to get a site up and running quickly.
Umbraco lets you choose between .NET user controls, XSLT or Razor. It is nice to have the possibility to choose between technologies and it ensures a good discussion at the lunch table on which solution to choose.
Bugginess - there are still quite a lot of bugs in Umbraco. Some are little annoyances, like templates that get duplicated in the database for no reason, sudden missing library references and some more serious ones like the caching that is unreliable under heavy load. My project suffered from this problem, I wasn't able to deliver a load test to my client and we had to employ Squid, because we couldn't use the Umbraco caching.
Performance - Umbraco is not too speedy. I've had to rely on the macro caching mechanism pretty quickly with multiple sites I created or worked on.
I don't think the (API) documentation is as good as it could be. Not everything is documented and code samples are too much spread around the Umbraco site, the forum and around the entire web.
The backoffice of Umbraco is a bit dull and would benefit from more workflow options.
All in all I like Umbraco's completeness and I like that it is free and has a helpfull community, but it does have its drawbacks.