Home arrow Compare CMS - 4a
Compare CMS - Part 4a - ASP CMS

Open-source ASP CMS

Umbraco CMS Review

An open-source ASP / .NET content management system originating from Denmark, content on this CMS can be edited using Word, which would appeal to many users. There are OSS or commercial install and support options.

Umbraco runs on a Windows server, using an MS SQL Server database. Coding is executed in ASP - XSLT - .NET - Visual Studio.

This is a quality solution. Umbraco is a capable CMS of potential very high quality. The word 'potential' is used advisedly as this is an unusual CMS - on install, there is no template and not much of anything else. Everything depends on developer input - and this means a good developer can achieve very high standards. The opposite also applies.

Pages validate if the developer pays attention to this, and the CMS will have a smart and sophisticated air if the right template is used. Umbraco has a fully-tableless code layout and therefore has a high accessibility rating and SEO potential - if the usual ASP developer's weakness for excessive 3rd-party scripting can be avoided. This tends to be more of a problem with ASP applications due to the presence of AJAX. A correct, modern code layout scheme like this also has a big SEO potential for various reasons, if the developers know how to utilise it.

It's strange that so few CMS use the correct code layout, as the old methods such as cells and tables became obsolete around 2002. In computing and Internet terms, that was generations ago; but many software authors have yet to catch up.

Umbraco hosting requirements
Umbraco cms has strict hosting requirements that can easily be met in a dedibox environment, but are much harder to find in shared hosting. This means that 'value' hosting will be more difficult to locate for this CMS, and may be impossible in your area of course. In addition the application requires MS SQL Server, which is not universally provided (at least for free) on Windows hosting. Many hosts seem to offer Access DBs instead, but this is a very poor choice on a server as it is a desktop database that cannot be hardened fully. It has been subject to numerous exploits, which is no fault of the software authors as it was never designed to run on a server.

These are the minimum hosting requirements for Umbraco v3.0:
- Microsoft SQL Server (2000, 2005, SQLexpress, etc.)
- ASP .NET 2.0
- Full-Trust (High-Trust is the minimum; Medium-Trust will not work)
- Ability to set your website's file permissions to include create / read / write (or better) for the user that "owns" the Application Pool for your site (NETWORK SERVICE, typically)

The Trust level is the critical factor - it means that MOST Windows hosts CANNOT be used, as they run their shared servers at the Medium-Trust level. Full-Trust = a dedicated server.

You'll probably need shared Windows hosting with High-Trust rights - perhaps not that easy to find, certainly at the price you want to pay.

The unusual blank install
Umbraco is unusual because it installs with almost nothing there. There is no template and not much of anything else. However, just about anything is possible. In this regard it resembles Radiant, the RoR CMS.

Umbraco CMS sites built by developers who understand legal compliance and search compliance have a very high potential. However, the reverse is not only true, but in fact worse than this. Because Umbraco is essentially a blank canvas for a developer's work, it means that developers who have never heard of legal compliance, standards compliance and search compliance can do a truly terrible job. It's possible for an Umbraco site to be constructed with everything it is possible to get wrong, ruined. This is a magnificent achievement - but unfortunately we've seen it. So it's more important than for almost any other CMS to get not just a good developer, but a highly competent one who is bang up to date on modern web standards. Such developers, unfortunately, are in short supply.

The advantage of having a pre-built framework available is that it results in a predictably high standard, if the core application is good. It's hard to wreck it too badly. However, it is not flexible, and plugins must be used extensively in order to create functions and features. This description applies to many CMS. On the other hand, a CMS like Umbraco which has very little present on install means that a first-class developer can, in theory, produce the best class of work possible. It is also very flexible. But the downside is that the average developer cannot cope with this arrangement successfully, and the result will not be standards-compliant or search-friendly.

If you're having an Umbraco CMS built, there are three things you need:

  • A highly capable developer who understands standards compliance and other modern issues

  • A contract that defines minimum acceptable quality levels. These should refer in the first instance to standards compliance (including a full accessibility test), and search compliance

  • An SEO consultant or other third party experienced in CMS quality and/or SEO for CMS, who can audit the result and tell you if it is acceptable

These are of the roll-your-own variety, as in Radiant or CMS-MS. There is a lot to be said for this system as it means you can have a good tableless layout and correct source-ordering, with clean code, correct doctype and meta, and no junk scripting. In addition, total design freedom is provided - if you can design it and turn that design into reality, you can have a great-looking, totally individual website design.

Of course, this requires both design talent and a developer who is both skilled and up to date.

Umbraco ACL
ACL is good, and is a core function.

Additional functionality is provided by .NET usercontrols, or by xslt macros. Of the two, xslt is preferable in most circumstances and should be specified unless a usercontrol cannot be avoided. Usercontrols are much harder to update for changes, and since change is the nature of a CMS, they are less useful than xslt.

In general, xslt is the better way and used by skilled developers. Dot-NET usercontrols are much simpler, but far more rigid and less upgradeable, and are a basic level used by less skilled developers.

A navigation menu or similar should never be built using .NET as it is impossible to change without reconstruction. XSLT should be used here.

However, forms and some other items must use .NET controls as they are the only method for this - XSLT cannot be used for all and every purpose. It is best employed where something might need editing, changing, deleting or adding - such as menus. .NET is the wrong choice here.

A .NET process involves two files - the project file and the web file. This is a clumsy way to build CMS functionality since any change requires two files to be rebuilt, one of which is in compiled code. Since change is the nature of a CMS and part of the reason for its existence, hard-coding of this type is a poor choice.

It also means that an Umbraco CMS may be among the most difficult of all to transfer between developers or site managers, since in addition to the normal web files and database dump, the hard-code project files are vital. If just one set of these is omitted, that part of the site will have to be completely rebuilt. This is another reason why XSLT development is preferable to .NET.

Umbraco costs
Costs with Umbraco are normally higher than for most other open-source content management systems. This is because all work is custom work, since there is no basic framework to hang your content on; and also because value hosting cannot always be found. That means that this CMS is a good bet where you need some sort of custom or specialist functionality, or if you simply want a high-quality bespoke CMS. Umbraco is probably not for use where costs need to be trimmed, and definitely not where there is any doubt whatsoever about the developer's skill.

Plesk issues
Some developers seem to have problems with Umbraco on Windows servers with Plesk, so this might be considered. We have not experienced this ourselves on Plesk panel servers though.

Excess scripting
Some Umbraco sites feature too much Ajax and JavaScript for modern search engine compliance, standards compliance, accessibility compliance - and therefore possibly legal compliance. A talented developer will be needed to reduce this unwanted 3rd-party script to a minimum, and get the scripting off the site pages and into server-side scripts - if not remove it completely.

Umbraco terminology
A node is a content item, as in other cms. However it can also be used for any item that can be addressed, such as a media folder. These are all items in the content tree, and there is also a relation to xml nodes within xslt, as these are tied in to such objects.
A docType is an Umbraco construct and is no relation to the
more commonly-seen Doctype, which is the standard declaration of web page type, found on every web page, in a format provided by the W3C, and without which a page is not strictly a web page. An umbraco docType is usually an attribute listing for a node.
Filetypes: an .aspx page is basically an HTML page; but an .ascx page is typically a tied .cs (code behind) page, a .NET coded one with links to a .dll file for example.

Umbraco forum
There is a good forum on the Umbraco central site, where developers will be keen to help you. It's a little hard to locate though, as they seem to want to hide it (there is no main menu link to it at 2008-09).


Umbraco - the developer's view

Here is an overview from an Umbraco developer. I asked about various common aspects of CMS such as plugins, best features, and so on. I also asked about worst features - because an honest appraisal is needed, not a rose-tinted one. The subheadings are mine, and roughly correspond to the questions I asked.

What types of sites will suit Umbraco
"Umbraco works well for nearly all types of sites. I have used it from small sites for quick deployment, to large sites for flexibility, notification system built in, etc.

If you have ever installed Umbraco, you will quickly notice that it is blank! Meaning there is no content (dummy or otherwise), no templates, no doctypes, no pre-made ‘modules’. I love this fact, but people new to umbraco often hate it.

Umbraco compared to PHP CMS
I am not a fan of PHP open-source cms platforms because of the open-source nature of the web server - and to be honest, the large community and the abundance of non-moderated add-ons is pretty unsettling.

Potential maximum size
Umbraco sites can be huge, with thousands of nodes.

Best features
The UI for the admin panel - the ease of extensibility - and the awesome community.

Worst features
Poor Firefox and Safari support in admin - being fixed in version 4 which is coming soon.

Umbraco ecommerce support is not great. There are a few codeplex projects addressing the e-commerce functionality – one of the weak points in my opinion.

Documentation is not extensive partly due to the free-form nature of Umbraco. What applies to one site might not apply to another.

Remote web installer
I have an installer for .NET control panels - works great. So web installation works fine.

Umbraco ACL
Total support for users and access based on groups. You can define the groups, and control access with a simple right-click.

Use of XML and XSLT
The next great feature that I love about Umbraco: it utilizes an xml document on the public facing frontend of the site (a flat-file in addition to the SQL DB backend), which allows the basic site to run more quickly and more securely, as there are no calls to the DB. An XML file is generated and updated when content is saved / published in the CMS. This creates a flat-file DB for the frontend, providing fast operation and greater security from SQL injection attack.

This is a subset of cms that utilizes front end xml – the best advantage is the pure ease of extensibility. The backend user interface based on folders and files, which translate to nodes in an xml structure, I find very intuitive and easy to train clients and end users on. The right-click menu structure for adding, deleting, sorting and moving nodes is very straightforward.

What is XSLT
For creating features like listing latest news items or latest blog posts, you can use XSLT - which is an xml transformation language - to iterate through the xml document and style things accordingly. This can all be written and managed through the Umbraco interface. This rolls nicely into the difference and application of .NET usercontrols vs. XSLT macros…

.NET usercontrols v XSLT macros
A usercontrol is typically written in visual studio (a Microsoft dev app) and is made up of a compiled .dll file and an .ascx reference file. In all cases, the .NET usercontrol has a minimum of two parts, and can typically only be updated with access to the project source files. You would use such a vehicle for very complex interactions with the Umbraco API and for larger, more enterprise-type sites that require integration with 3rd party tools, membership databases, etc. For these applications a .NET usercontrol *may* be warranted.

Now, the alternative: XSLT macros can be used for almost all data manipulation. For example, navigation bars can easily be made and be dynamic, using XSLT to draw the nodeNames in an unordered list and styled via xslt. This is preferable for menus.

In many cases developers can achieve the results they are looking for without resorting to .net userControls. Manipulating the xml via xslt transformations is fairly intuitive and quite powerful for displaying information managed by your content editors.

However, .NET userControls are pretty much a necessity when it comes to form development and interaction. The umbraco team, though, has a package for creating forms, and there is also an excellent package created by a community member, Casey Neehouse ( www.bestcasetechnologies.com ) called Doc2Form. This package allows users to specify input fields on a docType and gives you the option to have the results emailed, stored to nodes or both. Developing forms to interact with umbraco has historically been a challenge for non-developers using umbraco, but now, thanks to these two packages – many form related applications can be developed via umbraco.

Umbraco WYSIWYG editor
Umbraco utilizes TinyMCE for document properties specified as rich text fields. There is also a property type of simple editor that has very basic buttons. Once again, the beauty of Umbraco is that each of these items can be controlled as well. You can also specify styles that editors are allowed to use in the editor.

Umbraco plugins - the package management system
There are definitely a good number of plugins available. Most can be found on the forums. However, there is also an integrated package repository within the admin panel of umbraco. This connects you to the package server, and on there packages are categorized and can be installed right from the interface.

Version 4 is taking huge leaps in making it easy for developers to make packages and actually submit them to the repository. Also with version 4 you can have private repositories, but this is a product of Umbraco corporate and is available for purchase as a service / product package.

At http://packages.maliciousthinktank.com is a place where I have been housing some of my most widely used packages. My packages are fairly basic, but make things easier for myself and other developers when creating sites. Many other community members have packages on their sites. I have developed several add-ons for umbraco, ranging from navigation constructs to dynamic flash rotators, galleries, spam blocking techniques based on existing user controls and more. It is important to note that not one of the solutions I have crafted to extend umbraco is a .NET usercontrol. They are all XSLT macros.

The primary issue with packages / plugins is quality control and ease of integration. If a developer adds too much markup, or markup that isn’t clean or valid, it can kill that package's value. So I find it hard to measure the value of a community or cms based on the number of plugins.

Umbraco v DotNetNuke - DNN
I have used DNN and do not find it easy to use. It seems very proprietary, despite the open-source label, and not very intuitive for non-dotNET developers (I am not a .NET developer).

Umbraco v Kentico
I have investigated Kentico, and I found its open-source label is not really true in my opinion, and it has costs associated with the number of users.

Many thanks to Bob Baty-Barr
Umbraco dev

Editor's comments:
Bob makes some interesting points. The ones of most interest to me are:
  • How Umbraco is pretty much a blank canvas for the developer's work
  • The package system for plugins, which seems a lot like the Linux system

  • The XML flat-file frontend DB

  • XSLT vs .NET usercontrols, and how XSLT is normally preferable

  • The ACL set-up sounds excellent if you can in fact select and control group access by a simple right-click procedure. This would make it about the simplest ACL management in CMS.

  • His view that DNN is semi-commercial in reality

  • The way he notes that a percentage of plugins are of reduced value, and therefore the pure number of plugins for a CMS is not really a guide to the real number of additional features that can be added - but of course this applies in exactly the same way to all CM systems

He doesn't like PHP CMS, but then PHP devs don't like ASP CMS - so this is not really unexpected :)

His point about the Umbraco community is valid. It's small but extremely helpful. Unlike some software forums, you are certain to get help and assistance on theirs. A smaller community has advantages in this respect.

Thanks Bob.
Web Business Managers