Friday, March 28, 2008

How can something so good be free?!?!

I have long been wanting to take a look at the Umbraco open source .NET CMS system, and now I finally have had the opportunity to do so in conjunction with the website I am creating for my new buddies at GamingSchool. I must say that what I see amazes me. I have had some experience with CMSes in the past. I used SiteCore contracting for AlphaSolutions. Currently I am using CompositeCMS for the Clubzone.es site that I took over from another company.

Umbraco blows them both out of the water - effortlessly. Moreover Umbraco is free while the others cost huge amounts of money!

So here is a little list of pros and cons of Umbraco that I have discovered so far.

Less is more.

Umbraco may not be as fully featured as the other CMS'es. Just my guess though, haven't studied it properly. But it is so smooth to use that anyone can figure it out. And it does pack a lot of punch under the hood for developers.

Seamless install

When I had to set up CompositeCMS for Clubzone, I had to install it on my machine to get it running. Furthermore it doesn't run on Vista. So I cannot run it on my dev machine making local development impossible and debugging a pain. Getting a test version of the site running on my test server took several days of tampering to get it somewhat aligned with my build cycle. This is just plain annoying.

When I ran SiteCore it took "only" a day to get it up and running on my dev machine, but this was with the help of a long time SiteCore developer by my side. Even he hated doing it because he knew it sucked.

Umbraco comes in two flavous - install and zipped. I like the latter. Unzip. Tell IIS where'z'at. Set permissions correctly (got me at least once). Go to /install and complete a wizard. Bang - good to go. Making a test version of the site is even easier as you just copy the files over and don't have to do the 2 minute "install" part.

Great .net integration

When you want to make the more complicated stuff you use Macros in Umbraco. These can be either XSLT scripts or .NET user controls. I have always loathed XSLT for being the over-complicated non-compiled write only language that it is. So I use .NET user controls, and making them for Umbraco is so very easy that it makes you want to jump up and down with joy.

ASP.NET AJAX IN THE BOX

Now this is both a pro and a con. I am very divided on ASP.NET AJAX. Having used it extensively for "StryBergs Blå Bog", I got a love/hate relationship with it (save that one for another post). I prefer some of the more lightweight JS libraries out there - MooTools and JQuery rank highly right now. Since ASP.NET AJAX and these libraries does not go together well - if at all - I am forced to use ASP.NET AJAX. I hate that. I want a choice. I thorughly understand why this might not be very easy to do - but thats what I would like.

The pro is that you can just go ahead and use it. Drop the AjaxControlToolkit in and you're all set.

documentation?

Now this is always the achilles heel of all open source projects. And it is no different with Umbraco. Niels Hartvig - Mr. Umbraco - has even gone to the lengths of adding an easy way of writing books on the web site for everybody. But still the documentation is a cluttered half assed mess in disarray. The main source of info is in the forums. A classic. The forums are reasonably good. But could somebody please explain to me why all links on Google searches for forum posts give a "page not found"? Seems like they have reorganized their forum breaking every link in the process. Meh...

Pure "luck" that Umbraco is easy to pick up on. But it takes a while to get into developing Macros and stuff.

Just in on their blog is that Niels and newcomer Per will be focusing on improving documentation. Wise decision.

concluding thoughts

So... I may have more to add. But time is running out on me. (It is a quarter past 1 and Halfdan wakes me up at around 6).

Anyways: Check up on Umbraco. You won't regret it. I am not getting kickbacks. It's really true! ;-)

Technorati Tags:

No comments: