API and documentation
As noted in the previous part of this comparison, some published articles have stated that clients couldn’t tell the difference between Sitecore and Umbraco. Again, it’s obvious that no developer from the clients have had a look at the software... Any developer will love the Sitecore API. And if you switch between Sitecore and Umbraco in different projects, it will always be a day of joy when you get back to good old Sitecore. Some Umbraco fans will probably disagree, but my bet is that they have never worked with Sitecore. Sitecores API is grownup, where Umbracos is at best a teenager…
Sitecore 6 Documentation Overview
Umbraco Documentation Wiki
I’ll try to make it a bit more tangible:
Sitecore has a well structured, and (in some areas) well documented API. It helps the developer, making almost any task possible. And if not, the provider/pipeline/event model lets you implement your own solution and through configuration instruct Sitecore how to use it. I can’t think of any area where you are left hanging when challenged by a difficult requirement. This is the case both in regards to the administration and front-end rendering. Nice...
Sitecore has historically had some problems keeping the documentation updated and sufficient. This has changed in the past year or so, and now they can show off a really comprehensive library of structured documentation covering most areas. Still you can find developers complaining that they are not able to find solutions to the problems – but it just goes to show that you can not document everything.
Umbracos API on the other hand is – I’m sorry to say – very poorly structured. I’m told one of the main reasons for this is the politic to always keep backward compatibility, which makes upgrading a breeze (I’ll get to upgrading strategies in Part 3). Umbraco has added an Event model to enable developers to extend the core functionality. It’s still not as extensive and elegant as the Sitecore implementation, but I thought it was worth mentioning.
The documentation is wiki-based and somewhat intermittent, but I think that the most experienced Umbraco developers will know where to look… (I think/hope this will be better in the next release – at least Umbraco has announced that version 5 will be very well documented). This is probably only a problem if you need to do something beyond “standard”. Again – if you can keep within the lines, Umbraco is a really good choice. If not, maybe the community can help (I’ll get to the community comparison later).
One last note on API… during my work with this blog post, I talked to some of our senior developers with experience in both systems, to get their opinion on some of the topics. When discussing the APIs I noted some of the comments:
- ”Umbracos API? Don’t like it…”
- ”Umbracos API is very cluttered …”
- ”Well, Sitecore is just superior…”
(Sorry it seems so single sided, but these were the actual words)
Project startup costs
If you choose one of the larger Solution Providers this probably makes no difference. The cost of the development setup is likely to be more or less the same, so I’ll try look at it as if I was a developer having to setup the environment from scratch with little or no experience.
Sitecore can be quite hard to get started with. It takes time and effort to get a running environment. The larger Solution Providers has solved this by automating much of the process, but to the inexperienced developer it can be a challenge.
Umbraco on the other hand is very easily adaptable. A developer can even use the Windows Web Platform to get going in a matter of minutes. Really nice! Due to the Open Source community, you can download complete packages of running websites to get you going. Simple and easy…
Sitecore installation guide TOC (60+ pages)
Umbraco on Windows Web App Gallery
Open Source vs. Commercial software.
I won’t go in to the discussion of which model is better – though some may think this is the real issue when choosing between Sitecore and Umbraco.
First of all, let’s talk about the price. Sitecore comes with a price tag – Umbraco doesn’t. One of Janus Boyes main arguments is that it’s not always going to be cheaper just because the entry price is lower. I totally agree, and it should not be necessary to explain this further.
On to more interesting subjects…
One of the main issues with Umbraco being Open Source, is that the people behind the software sometimes prioritizes adding features instead of correcting minor or UI bugs. However Umbraco has given the community a lot of control regarding the priority of issue-fixing and feature implementation. This means that critical bugs are fixed really fast. It also means that if you find a bug that is “minor” and doesn’t apply to many users, it probably won’t be fixed in the near future. This can be frustrating – especially as a Solution Provider having to explain to the customers why minor but obvious bugs isn’t fixed… A big benefit is however, that you can download the software and debug it yourself. You could create your own build or create a patch and commit it to the Umbraco TFS, but in my experience this is rarely done.
In Sitecore you will also experience bugs. Like most other commercial software products, they have a standard procedure when this happens. You contact the support department, and usually you get a response within a day or two. If the support department is able to recreate the problem, they always give you some advice on how to fix it (or circumvent it anyway). Historically this message was usually “It has been fixed in the latest release. You need to upgrade your solution”. I’ll get to upgrade issues later, but let’s just say that in earlier releases of Sitecore this was not a good message…
One option regarding help for Umbraco is their Pro product. In the projects we have used it, it has been very extensive and professional. Great value.
Sitecore Support overview
Umbraco has the great benefit of being Open Source. This attracts many very dedicated developers, and a lot of these share their experiences and source code frequently. As stated earlier, this also includes packages of complete websites and modules. You have got to love the commitment from the Umbraco community. Umbraco keeps servicing the community with initiatives like the relaunch of http://our.umbraco.org, their MVP program (Most Valued People), not to mention the annual CodeGarden.
Sitecore has struggled with establishing a community in many years. Early on, they saw that they needed to provide the community with information and utilize a platform for them to communicate and share experiences. The Sitecore Developer Network has been the answer so far, but still it doesn’t compare to the Umbraco community which is more user driven and widespread.
It seems that Sitecore is really giving this a big effort, though. A couple of years ago they introduced an MVP program (Most Valuable Professionals), encouraging the community to speak up, help each other and share experiences. This has spurred a number of initiatives such as Learn Sitecore (http://learnsitecore.cmsuniverse.net/). Sitecore also facilitates a Shared Source library featuring 100+ modules (which is like Open Source’ish), but still it seems the Sitecore community struggles with a fear of sharing source and thereby giving a possible competitor an edge (just a hunch).
Anyways - Cudos to Open Source and Umbraco.
Sitecore Developer Network
Hope you’ve enjoyed Part 1 and 2. In Part 3, I’ll compare “Upgrading strategies”, “Multi developer setups”, “In the near future” and try to give some sort of conclusion to the comparison.