web 2.1

Sitecore vs. Umbraco – Part 3

First of all: Sorry about the delay. Hope you’ll enjoy the last part.

 

Upgrading strategies

Umbraco has “always” been quite easy to upgrade. A developer never thinks ”oh no” when someone asks for an upgrade. It’s usually a task completed within one hour, and includes a few simple steps. This said, you will probably run into some issues regarding community installed datatypes and modules (Umbraco doesn’t provide the full package of required datatypes, like Sitecore, and unless you are building a really really simple site you will have to build your own or download extra from the community). These are not supported and not always kept up to date, which can give you problems when upgrading.

Historically Sitecore has been a struggle to upgrade. It sometimes included creating two websites on a workstation, copying custom source code from one to another, etc. However, in the past year Sitecore has released the Upgrade Framework which eases the process substantially. It’s a wizard based tool which analyzes the solution and recommends some necessary tasks to complete the upgrade. If the wizard can’t access some files, it generates a batch file to run manually. I think Sitecore might be moving towards an update service, like the infamous Windows Update, but this is just a hunch. It’s now just as easy as upgrading Umbraco – at least between minor revisions.

I don’t know if an upgrade from Sitecore 6 to 7 will be just as painless. But again, upgrading from Umbraco 4 to 5 will probably be just about impossible…

As of now I think the products are equally strong or weak in this area.

 

Update Installation Wizard

Sitecore Update Installation Wizard

Umbraco Upgrade Wizard

Umbraco Upgrade Wizard

 

Multi developer setups

Sitecore have made some really big enhancements during the last couple of years, including Item Serialization (dumping the database to files on the hard drive) enabling developers to share the data structure just like source code. Sitecore has no issues concerning multi developer setups – anymore. I won’t go into a description of the setup; however the concepts involved is briefly described in another blog post (http://blog.created.dk/post/Optimizing-Sitecore-development.aspx).

Umbraco is still lacking the last touch in regards to environments with multiple developers. There are methods to circumvent these issues; however none of them are really graceful. It usually includes a shared database and agreements to work in different structures.

In the near future

Well, Sitecore continues to stabilize the platform eliminating the last couple of weaknesses within the next year or so. This includes Sitecore codename Twin Peaks , focusing on scalability in production environments (Editorial cluster, Live mode clusters etc). Another release (“Halo”) is planned by the end of 2010, however this is mostly an optimization release.

Umbraco has begun planning version 5 (codename MVC). They’ve announced that it will be available by Q1 2011 (I somehow doubt this, though). As the codename reveals the plan is to implement the Umbraco Core using the ASP.NET MVC Framework. How this will turn out, only time can tell – but the overall strategy from Umbraco seems to be stabilize and standardize. Not a bad idea…

I don’t see Sitecore and Umbraco getting closer to each other in the near future. Sitecore won’t move focus to smaller solutions, Umbraco won’t move to Enterprise level.

 

Sitecore Product Roadmap

Sitecore Product Roadmap

Umbraco Roadmap

Umbraco Documentation Wiki

 

My conclusions

As you may understand, I can see a lot of differences between Sitecore and Umbraco. The biggest being that Sitecore is a Development platform (including an excellent CMS) where Umbraco is merely a basic CMS (although a very good one). Sitecore can be too complex, where Umbraco can be too simple…

If I was to give my take on the where I see the two products main business area is, it would probably look something like this:

Sitecore is an Enterprise CMS / Development platform focusing on medium to large-scale solutions. This should be evident to most, looking at the product and the roadmap.

Umbraco is a very popular Content Management System with a very large and dedicated community. Their main area is small to medium solutions.

To get a grip of which system has the strongest appeal to developers, I did a small vote amongst developers experienced in both systems. The question was: “If you had to choose to work with either Sitecore or Umbraco exclusively for the next two years, which one would you pick?”

Result:

  • Sitecore: 8 votes
  • Umbraco: 5 votes

Tags:

Categories: Sitecore | Umbraco

Sitecore vs. Umbraco – Part 2

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

Sitecore 6 Documentation Overview

Umbraco Documentation

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 6.2 Installation Guide

Sitecore installation guide TOC (60+ pages)

Umbraco Windows Web App Gallery

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

Sitecore Support overview

Umbraco Pro

Umbraco Pro

 

System community

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

Sitecore Developer Network

Our Umbraco

Our Umbraco

 

Up next...

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.

Tags:

Categories: Sitecore | Umbraco

Sitecore vs. Umbraco – Part 1

Editor / Administration UI.

This is an area where the two systems differ a lot (screenshots below). As I stated in the introduction post, one of the reasons I’m writing this comparison in the first place, is because I think a lot of the other articles published have been somewhat superficial. At least one of the other articles has stated that clients couldn’t see the difference between the two systems, and my guess is that the clients never actually had a look at the UI.

 

Sitecore Editor UI

Sitecore Editor UI

Umbraco Editor UI

Umbraco Editor UI

 

Where Sitecore has put a lot (!) of effort into enhancing the user experience, and make it seem almost like a remote desktop, Umbraco has kept the interface quite simple. Some users may get overwhelmed by the features offered by the Sitecore UI, and to the inexperienced computer user it can be too much (I guess). Most users however get an “oh, it’s just like Windows” experience. The editors that is scared off by Sitecores interface will almost certainly be more comfortable using Umbraco. Umbracos UI has had some “known bugs” for a number of years (however, I’m told it should be fixed in the next release...), but the interface is easy to understand and editors can get working really fast.

The Sitecore interface is based on XAML, and is “easily” extensible. To make a custom application look and feel like at seamlessly integrated part of the interface it still takes some effort, but in my humble opinion Sitecore has provided all the tools. The Sitecore UI is made for tweaking and extensibility, where it is a lot trickier in Umbraco.

Sitecore also provides another way of editing content; through the Page Editor mode. This is basically like navigating the website editing the content directly in the design. Maintaining the content on your website surely can not be more intuitive than this… really!

The UI also gives the first hint of the main difference between the two systems. Where Umbraco is a really good alternative if you are looking for a basic CMS, Sitecore is (also) a development platform. I can’t think of an application you wouldn’t be able to build on Sitecore, and you get a lot of these out of the box. This has been a known strategy from Sitecore since the first release of version 5, where the Desktop was introduced.

 

Media management

In Umbraco the file and media management is based on the file system, leaving a lot of features unsupported. These include security (limiting file access to specific users), file versioning, ability to reorganize files etc.

Sitecore has handled this by treating media like any other content item. It is by default stored in the database giving all the flexibility of the generic content structure (including all the features not provided by Umbraco mentioned above). Even basic image editing features is included in the Sitecore Media Library.

There is no doubt Sitecores implementation is way better than Umbracos very simple and basic media handling.

 

Sitecore Media library

Sitecore Media Library

 Sitecore Image Editor

Sitecore Image Editor

Umbraco Media Management

Umbraco Media Management

 

Localization / Globalization

The language layer is built into the core of Sitecore. Content can exist in multiple languages, and you switch by using a contextual menu. You can still build single language solutions, or use your own globalization structure.

In Umbraco you have to build your own structure, and place the language versions side-by-side. You can quite easily implement some basic changes to the client, to make it a bit more user friendly, though.

In my opinion Sitecore has the upper hand on this one, especially if you wish to keep a similar content structure in multiple languages.

 

Sitecore Languages

Sitecore Languages

Umbraco Languages

Umbraco Languages

 

Analytics and reporting

This subject will be pretty much exclusively about Sitecore, as Umbraco hasn’t implemented any standard functionality.

About a year ago Sitecore announced the Sitecore Online Marketing Suite (OMS for short). It is actually a strategic move by Sitecore wanting to facilitate the complete marketing experience out-of-the-box. The system includes basic features like analytics and reporting, but it also enables developers to target content to specific users. The generic structure of OMS creates an abstraction layer between website user behavior and profiles created through the Sitecore Client. This will assign users a profile based on their decisions throughout the visit, enabling content targeting. The OMS also provides Campaign planning and many other features, better described in other more detailed articles and whitepapers.

My personal experience with the OMS is that it can be an extremely powerful tool if your requirements include marketing of some sort. If your solution is merely an information site (like governmental websites) my guess is that you probably don’t need it.

It is a very bold move by Sitecore to move into the analytics market (let’s face it – you can use Google Analytics if you just need to analyze the traffic on your site), but you have to admire the insight and ambitions they show. They’ve seen the lacks in the usual implementations of this, and have dared to take on the challenge. The next couple of years will show if they hit the spot.

 

Security and Workflow

Umbracos admin security model is pretty basic, and is probably sufficient in most small sites. However, if you need more advanced security features like limiting access to specific functionality, you will soon be challenged by the possibilities provided by Umbraco.

Sitecore on the other hand, can be secured in a very fine-grained fashion. Everything can be controlled through the Security Editor in a really flexible and intuitive manor. No need for custom implementations.

Both Sitecore and Umbraco have changed their security layer to the .Net Security Provider Model (In Umbraco this only applies to the front-end security). This makes it extremely easy to implement other authentication methods, such as LDAP. Sitecore has extended it with a couple of features (such as roles in roles), but it is pretty much standard.

 

Sitecore User Manager

Sitecore User Manager

Sitecore Security Editor

Sitecore Security Editor

Umbraco User Management

Umbraco User Management

Umbraco User Permissions

Umbraco User Permissions

 

Umbracos Workflow is pretty simple and linear. If you need advanced features, you’ll have to implement it yourself, which can be quite a challenge.

The Sitecore Workflow engine is like most other aspects of the system very extensible. Implementing advanced workflows in Sitecore is almost without limitations. It supports editorial, multistep processes including locking of content in order to prevent modification. Workflows can be assigned to all system users (including administrators) or just specific users or roles. However it is my experience that most clients don’t really need too much workflow. It may very well be, that this is a result of the Scandinavian attitude to hierarchy and business procedures, so please excuse me if this does not apply in your situation. Anyway, I think that the Workflow engine in Sitecore should suffice in all situations. If not, my advice would be to reconsider the requirements.

 

Up next…

Hope you’ve enjoyed Part 1. In Part 2, I’ll compare “API and documentation”, “Project startup costs”, “Open Source vs. Commercial software” and “System community”.

Tags:

Categories: Sitecore | Umbraco

Sitecore vs. Umbraco – introduction

In the last couple of years, a number of bloggers and journalists have given their take on the comparison between the two Content Management Systems – Sitecore and Umbraco. Both of them were founded in Denmark about 10 years ago, and have since grown and have had much success, both nationally and abroad. So a comparison is very much in order.

clip_image002

clip_image004

So why have I decided to share my opinion?

Well, the main reason is that many of the other comparisons have been quite superficial, and I would like to give a more detailed and complete description of where the two systems differ. The comparison will be a bit long, but – I hope – more fulfilling.

My qualifications for making a comparison…

I work as Head of Development at 1508 A/S, a Digital Design Agency specializing in implementing excellent design and user experiences in both Sitecore and Umbraco. We have implemented large scale solutions on both platforms and have a lot of experience with both systems. About 75% of our CMS solutions are based on Sitecore, the rest uses Umbraco. (And - just for the record – this blog post is my own opinion, and should not be considered an official statement from 1508).

Janus Boyes blog post…

One of the bloggers who has blogged about Sitecore vs. Umbraco is Janus Boye (check out http://www.jboye.com/blog/). Janus wrote a post headlining “Why pay for Sitecore when you can get Umbraco for free?”. My first thought was “ok, so he thinks Umbraco is just as good as Sitecore, and can see no reason why anyone should pay the license fee”. However, if you read the entire post, this is not the case. He actually advises his readers to look at which system will meet the requirements most efficiently. I totally agree with this advice. Some of the people I’ve discussed the article with, didn’t read the entire piece (or merely the headline), and had a wrong view of Janus’ opinion. Hopefully the headline will match the content better next time.

My comparison is mainly from a developer point of view, but I’ll try to keep it fairly simple.

I’ll publish the complete comparison in 3 parts, and the topics will be as follows:

Part 1:

  • Editor / Administration UI
  • Media management
  • Localization / Globalization
  • Analytics and reporting
  • Security and Workflow

Part 2:

  • API and documentation
  • Project startup costs
  • Open Source vs. Commercial software.
  • System community

Part 3:

  • Upgrading strategies
  • Multi developer setups
  • In the near future
  • My conclusions

First part will ne online in a few days.

Hope you’ll enjoy the reading…

Tags:

Categories: Sitecore | Umbraco

Optimizing Sitecore development

As mentioned in my last post, I’ve spent the best part of the last year optimizing the processes involved in developing Sitecore solutions in multi developer setups.

In this post I’ll describe the core areas we’ve focused on, and shortly describe what we’ve done. As I said in my last post this has been a team effort in the development department in 1508 A/S. I’m not going to mention any names (then I won’t forget any).

Establishing a shared standard
We’ve implemented a code bible setting standards for some of the basics in .Net and Sitecore development. This ensures a common way of developing making it easier to support etc. I’m not going to waste more space explaining why this is a good idea (since it’s just common sense)...
To ensure that everyone adheres to these standards, we are using StyleCop.
 
Sharing source
As any other development company we are using a Source control system – we are using SVN. We commit all of the code specialized in each Sitecore solution to SVN. We also commit a serialized version of the Master database (and if we make changes to the Core database this is serialized and committed too). We also commit other technical assets like external references.

Serialized databases
As of Sitecore 6, Item serialization has been available. Due to my involvement in the development of Sitecore Intranet Portal we had an early preview of this in version 5.3, and – though a bit unstable – it was clear that this had to be the future of DB-versioning in Sitecore development environments. It adds the ability to commit partial database changes – just like you do with the source code.

Standard Sitecore implementation
One of the things we brought from Enzym to 1508 was a standardized Sitecore solution called XPAC. This has been redeveloped from scratch using all of the best concepts, conventions and techniques. We now have an extremely strong foundation for all our Sitecore solutions, including a thought through frontend framework, a well tested .Net API and much more. This has been implemented throughout 1508 including IA and Design.

Handling deploy of development environments
One of the tedious and time consuming processes of developing Sitecore solutions is setting up a new environment (whether it’s a new solution, or you just have to implement some changes to an existing solution). And it’s not only boring and lengthy… if you work with other developers you also have to keep the same conventions when naming databases, IIS site, folder structure etc.
We have solved this by automating the entire process. We now deploy any solution to a developer workstation in under 30 minutes – including everything from setting up Sitecore, creating IIS site, restoring databases, adding entries in the hosts file, updating from SVN... etc! It has been the best part of this process.

Build and Test
The latest part of our setup is a build and test server performing nightly builds generating various useful reports. We use CruiseControl / NAnt. We are also using StyleCop in the buildsetup. Nice...

Roadmap
We are currently planning other initiatives including Configuration management and Deploy management. We are currently working on establishing a large scale virtual development / test / QA environment. This will ensure that we develop, test and run QA in environments as close to the Production environment as possible.

 

Tags:

Categories: Sitecore