Umbraco vs Orchard CMS: what content management system to choose for your website
Umbraco vs Orchard CMS: what content management system to choose for your website
A couple of years ago I compared an Orchard CMS with Wordpress, and while Wordpress is powering most of the Internet sites, I decided to choose Orchard for my projects. (Read why)
Orchard CMS is a good content management system, which allows you to work with website content easily, it does not usually require too much training and works fast and stable. I was pretty happy to work with Orchard during last three years, but recently I tried Umbraco CMS for one of my projects, and my experience was completely different compared to Orchard.
I tried Umbraco about 5 years ago, but at that time I did find it difficult to understand and use, but it all changed with the latest version (current version is Umbraco 7). I was impressed how easy it is to create a website using Umbraco CMS. When developing a template, it is the same as working with a normal ASP.NET MVC application, beside a couple of Umbraco helpers the principles are the same as with ASP.NET MVC.
Below is the comparison of Umbraco and Orchard CMS
1. The concept difference between Umbraco and Orchard CMS
First I have to start with the concept. The concept is completely different between Umbraco and Orchard. Orchard is more like a page management system, where you have a list of different pages which you can customize according to your needs. The page is one of the building blocks of your website, with most of the required properties already defined (such as title, body...). But Umbraco is more "content management" and content can be anything, not only page (and in fact, you will rarely create just page content). For example "Contact us" page can be a completely different type of content than "About us" providing just specific properties of the page related to contact, such as phone, address, email... and all that content will be reflected in a separate template, just for this page. While both of that pages render HTML as the output, the user who is making changes, don't need to know all HTML markup to make changes, it will be just form with page specific fields to fill. You can have a content type "Page" as well, but that will be your own decision with the fields necessary for you, not a pre-defined template, like in Orchard CMS, where the "Page" is already created. And while it is still possible to modify the page in Orchard, it is not easy to display the new fields you going to add.
2. How development and customization are different between Orchard and Umbraco
When creating a new website using Orchard CMS, you already have some basic structure, a couple of pages and default template, but nobody uses the default template, and in 99% times you have to develop a new template for the website. I have to admit, doing it with Orchard CMS is a pain, the concept based on so-called "parts" which are building components of your website template is hard to understand and later support. Anything can be a "part", for example, title, or an image and to find out what part you have to create/override, you need to inspect the page, extract that part and update. As a result, you may end up with hundreds of small cshtml files which you need to update. And later if you have to update something in the template, it is challenging to remember what "part" doing what. The is no concept of a single template file, while you still have your "layout " file containing most of the razor markup, you have to work with dozens of files in order to make it all look as you need. Umbraco on the other side is built as a regular ASP.NET MVC application.
There is a single template for each content type where you add all HTML markup and have access to all properties of your content type. This means then you end up with just a single point of access for your template and if later you need to change something, it is very easy to find where to start. And like with a regular ASP.NET MVC application your can have a master template and either single template for similar content types or a separate template for each content type.
Developing template in Umbraco is extremely easy, you can use the Visual Studio or do it from the Administrator interface while for Orchard CMS you always need an external tool, such as the Visual Studio. The only item where Orchard may be better, then Umbraco is support for multiple templates. In Orchard, you can have multiple templates in different folders and easy switch in runtime, while Umbraco has only one Views folder with your template and there is no option to update it in runtime.
3. More clean and responsive user interface in Umbraco comparing to Orchard CMS
4. Umbraco vs Orchard CMS: Performance
One of the reasons I chose Orchard CMS over WordPress was a better performance, but that was applicable for small website only. Over the time when the number of pages grows, the performance is getting worse and worse, and in fact, that was one of the reasons I started looking into different CMS to replace Orchard. While I don't have a big website to test with Umbraco, the same website with a hundred pages works much faster on Umbraco, the pages open almost immediately, while in Orchard CMS it takes a couple of seconds. It still may be possible then the Orchard just require some tweaking to make it faster, but that is not obvious and may require a lot of time to investigate.
5. Umbraco and Orchard CMS comparation: Permissions and user management
While both systems provide features for user and permissions management Umbraco did a much better job there, the UI is much cleaner and easy to understand, while Orchard UI is very complex with hundreds of checkboxes on a single page. One nice feature which Umbraco provides out of the box is allowing users to create accounts on your website. It may be beneficial when you want to sell something, for example, video or music or pictures. In fact Umbraco.TV using that feature their learning portal.
What I found better in Orchard comparing to Umbraco
While I am pleased with Umbraco, there are some items which I am going to miss from Orchard. One of them is URL management. In Orchard CMS, URL is just a string, so you can do whatever URL you want, and it may be any level you want, for example, the following URL is valid for any page,
/products/regex-master/how-to-install When working with Umbraco, you don't have such flexibility. You may modify the last part of the URL, but first is dictated by your website structure, your tree. And while there is a workaround, when you can create content type just to group other contents, it is a little more work.
The development of custom modules is a little bit easy with Orchard, and while you can develop your logic for Umbraco, you have to use a Surface controller, which is not so convenient as Orchard Controller, due to more complex routing. It is possible then I just did not get it right, but so far Umbraco does not allow a normal GET method to your custom form. And while I managed to work successfully with POST, I still can't pre-populate form's fields from GET action.
Navigation (such as top navigation menu) is part of Orchard CMS. You can add custom URLs, hide/show pages and change menu text. All this is missing in Umbraco, and you have to develop all menu related items by yourself, which is not too difficult but takes time. Also the fact then I can't add any custom menu item in Umbraco menu from Admin section make me spend more time for some kind custom development in the template.
Orchard CMS have a blog as part of the default package, which saves a lot of time when you have to implement a blog in Umbraco. And while there are many free blog engines for Umbraco, it is not easy to find something which works according to your needs, and in most cases, they are not updated when a new version of Umbraco released.
What do I hate about Umbraco?
Unfortunately, there is one feature in Umbraco which I can’t stand that is TinyMCE editor which comes as default HTML text editor. That editor is terrible and gives me a lot of pain. It replacing your HTML code with something else, it does not support some HTML code at all, for example, empty <li> which used together with Font Awsome just got removed. The Umbraco configuration allows somehow make that editor more useful, but still, I hope one day it will be possible to replace it completely with something more friendly.
So what should you choose? Umbraco or Orchard CMS?
After working with both systems for a while, I will suggest you go with Umbraco. And while Orchard CMS is still good content management system, Umbraco is much superior.