Umbraco CMS

Umbraco offers the freedom of the open source software model coupled with the security and ready integration that comes from using a Microsoft technology stack.


Below we highlight the benefits of open source technology, the strength of the development resources behind Umbraco and the role Governor Technology has played in this as an Umbraco Certified Partner.

 

What is open source software? 

There are many definitions of open source software but typically open source relates to software for which the code is available or 'open' publicly. 

With any software product, the code is the valuable part - the intellectual property - that drives the functionality and appearance of product you see on your screen. By making it openly available, the people who write the code are giving up the opportunity to monetise it and the software is free to use. This is the case with Umbraco where, unlike proprietary CMS' such as Episerver, there is no licence fee to pay. 

 

How are open source software products maintained and improved?

How are open source products maintained and improved?

Because there is no commercial agenda, open source software attracts the experience and skills of hundreds of individual developers who come together voluntarily to work on open source projects.  

The open source development community is renowned for attracting some of the brightest and most experienced software developers, who are motivated by pride and personal attachment to a product they have played a real part in shaping. Product development is driven not by a desire to get the most money out of the software's users but the wish to build a robust product that is responsive to user requirements and usage trends.

Other examples of well-known open source products include Linux, Mozilla's Firefox browser and Google's Android phone operating system. 

 

The Umbraco developer community

Umbraco claims to have 'The friendliest CMS community on the planet' and its core is supported by a large network of software developers (of which we are a happy part). This network acts as a huge R&D resource, producing upgrades and improvements to the Umbraco CMS for the benefit of current and future users.

Umbraco developers can collaborate through a number of established forums, some of which are sponsored by Microsoft:

-  Umbraco's open source community is centred around www.ourumbraco.org. It's here that an Umbraco developer can search for documentation, get help and guidance from seasoned experts as well as download and collaborate on plugins and extensions.

- The Umbraco documentation wiki is a community driven resource provided with content by Umbraco's core team and anyone else in the community who wishes to contribute.

- There is good face to face networking between Umbraco community members, with regular local meetups between Umbraco developers. The annual Umbraco UK Festival is a relatively new event which we attended in 2011. The main event on the Umbraco calendar is the Umbraco CodeGarden, the annual developer conference in Denmark where the Umbraco community get together for three days to share knowledge and have fun.  CodeGarden '12 will be the 8th such annual Umbraco developer event and will take place in Copenhagen in June 2012.

 

Our role in helping to make Umbraco a better CMS

As an Umbraco development agency and Umbraco certified partner, we have been involved in making the Umbraco CMS a better product. Below we review some of the highlights of that work - those who are spooked by very technical stuff may want to look away now!


Umbraco Full Text Search Plugin

In 2010, we built a plugin that improves the performance of the search function. This project aimed to provide two features for the Umbraco CMS that had not existed previously:

1) An easy to install (for site developers) front end for Umbraco's Lucene based search functionality.

2) A simple way to index the full content of a rendered HTML page. Other search plugins only provided a way to index database fields.

To achieve these aims an Umbraco package (a modified zip file which can be installed into Umbraco by site administrators) was developed in C# and asp.net.

The primary technical challenge was to find a way to take, and maintain, a consistent index of the current rendered HTML of a site. To achieve this we used the indexing mechanisms built into Umbraco to detect changes to page content, and trigger off our own programme. This program rendered a page either by using a simple HTTP request, or by hooking into the Umbraco rendering pipeline, stripped the HTML tags, and passed it to Lucene to index with the id of the Umbraco page in question.

We also developed an easy to deploy front end that any site developer could use to search the index we had generated simply by copying and pasting a macro into their site templates. The primary challenge in this was to write a parser that could generate useful Lucene queries from user supplied search terms. We ended up building a parser that separated out queries into their constituent words, searched for each of those words individually along the entire phrase entered, then instructed Lucene to prioritise results based on whether the phrase entered, or how many of the constituent words entered were present on a page. The parser could also be instructed by the site administrator to prioritise certain fields, such as a page title.

The front end also contained code that neatly packaged the search results into an XML format that could be read by Umbraco's built in XSLT templating system for output to HTML, along with a pre-built XSLT macro that did this and could be easily modified by anyone familiar with Umbraco.

 

Campaign Monitor Integration Plugin

Campaign Monitor (CM) is a popular delivery platform for email marketing. In 2010, we built a plugin that integrates CM with Umbraco, so that a user can send emails via CM but more conveniently through the Umbraco CMS interface.

We started by making some changes to the Campaign Monitor API wrapper so that it could be usable from a web application such as Umbraco.  To configure the Umbraco side of things, we wrote some macros using XSLT regex extension to re-format links and turn p-tags into line breaks. 

As well as our own development skills, we were able to make use of the documentation and video guides provided on Umbraco TV.

>> Return to main Umbraco CMS page 

>> Read a general introduction to Umbraco in our Resources section