Umbraco 8 was released in mid-2019. With Umbraco 8 came a host of new functionality, the three biggest new business features, content-language variations, content apps, and infinite editing. Asides from business features, Umbraco 8 also introduced some pretty major sweeping changes in its architecture. This article is not code-focused, so I will not dig into all of those changes here, however, features like dependency injection out-of-the-box are great! When it comes to upgrading to Umbraco 8 from earlier versions you will need to ask yourself if the time and the investment are worth the effort. The upgrade path from 7 to 8 is not as easy as in previous versions. For simple sites that do not use a lot of packages, an upgrade might be easy. For some sites, an upgrade to V8 might involve weeks of effort. The aim of this tutorial is to give you a high-level overview of the considerations that may affect your decision-making process about whether to upgrade or not. We will start by looking at the new features in V8 that might make it worth the upgrade effort.

Better Multi-Language Support

Umbraco 8 comes with much better out-of-the-box multi-language support. Before version 8 Umbraco had pretty crappy multi-language support. Previously, if you wanted to create a multi-language site within Umbraco, you had two options:

  • Create a 'website' for each site within the same Umbraco instance. Each new language variation would have its own homepage within Umbraco and its own content tree. In this set-up, you could have a home page called en for English, another one called fr for France. Content could then be added by content editors under each website as needed. Someone would then access the English version of the site using 'www.website.com/en/' and the french version, like www.website.com/fr/.

  • Use a third-party unsupported plug-in like Vorto. Vorto provides the ability to only build a single website, by allowing multiple language content to be added against a single mode/page. Both of these approaches have flaws (depending on the requirements). Creating and maintaining a website per language takes a lot of effort for content editors. Each time a new page is required it has to be created in numerous places. One page per language variation site. The menu might need updating in multiple places for each language variation site. In general, there's a lot of room for accidental content editing mistake to occur. For some large sites with lots of content this approach works of having different a website per language might be useful. If the content structure and content tree need to be different then this can be useful. For most websites I have worked on, this approach is overkill.

Using a third-party plug-in shifted the time away from content editors and placed it with the developers. Integrating Vorto took a lot more effort and made tasks like content migration a lot more complicated. Especially you want to use the model's builder with Vorto! Relying heavily on non-core packages built by the community is also not ideal. If a feature comes out of the box, you know you will get good support and if you find a bug it will probably get fixed. You can not say the same about community packages.

If you use a plug-in and then that person stops developing for whatever reason, you are stuck. In the worst-case situation, you may need to completely rebuild your website from scratch. Using Vorto also created content management issues, there was no way to release the English version at one time and then the french version in a few days time. It was an all or nothing approach.

Personally, providing better multi-language support, for me is Umbraco 8's most important new feature. Multi-language management is now an integral part of the CMS, so no more third-party packages are required. The new multi-language functionality works on a per-node basis, so there is no need to create multiple homepages anymore. Managing content is much easier for editors, as there is a side-by-side comparison view now. Editors can also schedule different language content to be published at different times.

In the past, if a client asked me to recommend a CMS that required multi-language, it was difficult to recommend Umbraco as it was one of the worst options. In Umbraco 8 that pain goes away. Umbraco 8 now makes building a multi-language website simple. This is a big win!

Infinite editing

During my career, I have spent hundreds of hours writing content within CMS systems. One of the most frustrating parts of writing content within a CMS is the clunkiness of it. If I need to write 10 tutorials, I want to do it as fast as possible. I do not want to have to click buttons to switch tabs. I do not want to have to wait for pages to reload for no reason. This is the issue that infinite editing tackles.

Infinite editing is a change in the workflow of how pages are created by editors within Umbraco. Infinite editing allows an editor to add/edit content and media in one place. Gone are the old clunky tabs, pages are now shown using a single infinite scrolling page. Infinite editing means less time wasted clicking and waiting for things while content is being created. It allows content editors to focus on creating content!

The Darkside Of Umbraco 8

As mentioned in the introduction, Umbraco 8 also takes a big step in its architecture. Debunking the jargon, how developers write code within Umbraco has changed. The outcome of this is that:

  1. Upgrading might take a significant amount of time. Upgrading the website you are reading this article on, took 3 weeks. This website does not use multi-language, so that was a three-week investment of time for little benefit.

  2. Lack of package support. When Umbraco 8 was first released, most packages were not updated to work with it ahead of time. Things are a little better now, however a lot of projects that were built in 7 no longer work in 8. Most developers make heavy use of packages to build Umbraco site. There is little point in re-inventing the wheel when an existing package can do something for you. When upgrading to v8 there is a high chance some packages will not work. If a package you use a lot is not available, you will need to spend considerable more time refactoring the parts that use it. As time moves on and more plug-ins are supported to work in v8, the impacts of this second point will be minimized. As of 2019, there are still a lot of plug-ins that do not work.

Should You Use Umbraco 8?

For any new projects - especially multi-language website - yes. The caveat for any developer estimating how long a new build will take, check that any packages that you may have used in V7 still work in V8.

If you are upgrading to V8 rather than starting from scratch, the choice is not so easy. As a business owner, I have 52 weeks per year to focus on money-making activities. Upgrading a site to V8 can take a lot of time. Depending on what your site does, the effort of upgrading may only return minimal benefits. As I write and advise clients about Umbraco, I upgraded my website so I could provide advice about it. If I didn't have a pressing concern, I would have stuck with v7. Also, keep in mind the upgrade to V9 will likely be a re-write as well when Umbraco goes to .NET 5!

If you want to build a website with Umbraco 8, or, you need help upgrading then I may be able to help. Get in touch - using the contact link at the top - if you have a project you want to discuss with me. finally if you want more information on Umbraco V8 you can read the official docs, here.