13 great reasons to upgrade to Kentico Xperience 13
Tags: kentico, xperience, upgrade, netcore
Published: 2021-03-09 15:41:41

##Introduction
Kentico Xperience 13 is out some time now. Perhaps you have already taken the steps to upgrade your existing MVC websites or you are still exploring the possibilities. In many cases it feels like a logical step to keep software updated to the latest version. But does everyone agree? It takes time and costs money to properly perform an upgrade. And what benefits does it ultimately bring us? In this article I cover 13 reasons, for business users and developers, to consider upgrading to Kentico Xperience 13. 

##:gear: 1. Stay up to date 
Keeping up with software updates ensures customers to stay supported. This can be in the form of hotfixes, security updates or simply to be able to send a question by e-mail and receive a decent answer. Staying up to date also allows customers to be able to take advantage of innovations in the latest product versions.

In all the years that I have worked with Kentico, the knowledgeable support desk has surprised me time and again with their insightful answers. I recommend keeping up to date with the current versions to minimize security risks and to continue to benefit from high quality services.

##:clock130: 2. Improved marketing automation
The marketing automation module has received a welcome update in Kentico Xperience 13. Within the marketing workflow, the steps can be configured without losing track of the rest of the steps. Auto-save is of course indispensable. Furthermore, sticky notes can be placed next to the workflow steps to provide necessary feedback. 
![Marketing automation redesign](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h03e64nkr5ab6vwbywrn.png) In addition to the cosmetic changes, improvements have been made with the aim of making a marketer's job more efficient. For example, workflow steps can be easily copied for reuse and the entire workflow can be saved as a template. Kentico Xperience 13 also introduces a time-based trigger to determine exactly at what time the workflow should be activated. Finally, the complete journey of the visitor is visually displayed in reports. 

##:bullettrain_front: 3. Content tree-based routing
In a nutshell, this functionality makes it possible to automatically generate URLs for pages in the content tree. These pages can then be displayed within MVC without dealing with the technical part of knotting routes to controllers.

The [content tree-based routing](https://docs.xperience.io/developing-websites/implementing-routing/content-tree-based-routing) functionality can be activated via a setting. This ensures that existing custom implementations of routing continue to be supported when upgrading to Kentico Xperience 13. On top of that new Page Type features have been introduced to enable URL's for pages: 
![Page Type Features](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m6atnu49ad2n1nfgqrnt.PNG)

Additional benefits of content tree-based routing include:

* Settings to control the URL's format and behavior 
* Former URL's can be stored when moving content
* Handle redirects for alternative and former URL's
* Page permissions are automatically reflected on the live site

##:recycle: 4. Reusable content 
Linked items are back in Kentico Xperience. Product management has listened carefully to the community and added functionality to the platform to create a content item in multiple places in the content tree. This can be used to for example build a page taxonomy within the content tree.

![Linked pages](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zcamzmgvajnp67zqi0vd.PNG)

##:nerd_face: 5. NET Core support
I always get very excited when I get to work with new technology. Kentico sparks my excitement by offering .NET Core support. With Kentico Xperience 13 it becomes possible for developers to build a ASP.NET MVC Core application with Kentico Xperience as the underlying engine. Developers can now leverage features such as [Feature folders](https://devnet.kentico.com/articles/enabling-feature-folders-in-xperience-13-mvc-net-core), [Tag Helpers](https://docs.xperience.io/developing-websites/developing-xperience-applications-using-asp-net-core/reference-xperience-tag-helpers) and [Docker](https://dev.to/truelime/top-3-reasons-to-use-docker-with-kentico-xperience-2689) to name a few.

Coming from previous Kentico Xperience versions a [migration from MVC 5 to MVC Core](https://docs.xperience.io/developing-websites/developing-xperience-applications-using-asp-net-core/starting-with-asp-net-core-development/migrating-asp-net-mvc-5-projects-to-asp-net-core) can be considered. Please note that this is not a simple migration and a rebuild may be a better alternative. Also note that .NET Core support of the CMS will follow later with Kentico Xperience: [Odyssey](https://xperience.io/discover/blog/2021-01/kentico-xperience-a-glance-into-the-future).

##:toolbox: 6. New Page Builder components
The Page Builder provides editors and marketers a powerful drag-and-drop solution to visually compose pages. With Kentico Xperience 13 the existing component set is expanded. It includes a [rich text widget](https://docs.xperience.io/managing-website-content/editing-rich-text-content/using-the-rich-text-widget):

![Rich text widget](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bj68gtiiwspnv7m8a4b0.PNG) 

In addition, a [URL selector](https://docs.xperience.io/developing-websites/page-builder-development/selectors-for-page-builder-components#Selectorsforpagebuildercomponents-URLselector) and [Attachment selector](https://docs.xperience.io/developing-websites/page-builder-development/selectors-for-page-builder-components#Selectorsforpagebuildercomponents-Attachmentselector) have been added.

##:wastebasket: 7. Removal of portal engine 
With Kentico Xperience 13 we say goodbye to the Portal Engine, Kentico's development framework that I grew up with.
<img width="100%" style="width:100%" src="https://media.giphy.com/media/LTFbyWuELIlqlXGLeZ/giphy.gif">Now you might question if this a great reason to upgrade. As mentioned earlier I recommend staying up to date and embrace current development technology stacks such as .NET Core. On the other hand, it means that a major clean-up has taken place and that [outdated functionality has been removed](https://devnet.kentico.com/articles/phoenix-s-on-fire). When working in the CMS this becomes noticeable because screen loading times seem faster. 

If you are considering moving from Portal Engine to MVC then I highly recommend [Brian McKeiver's](https://twitter.com/mcbeev) article [25 reasons to move to Kentico Xperience MVC](https://www.mcbeev.com/25-reasons-to-move-to-kentico-xperience-mvc).

##:art: 8. Update of the user interface
With last year's [Kentico Xperience rebrand](https://www.kentico.com/articles/accelerate-your-digital-transformation-with-kentico-xperience) it is very welcome to see the new logo and names reflected in the CMS application. It helps me to recognize in which Kentico Xperience version I am currently working. It also visually confirms to me that the CMS application is up-to-date.

![Kentico Xperience 13 dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xlwbdw2q8jxrlc4ar3p7.PNG)

##:shopping: 9. Get the best from the community 
Product updates can inspire to come up with fresh new ideas. These ideas then transform into downloadable packages that can be installed from the [Kentico Xperience marketplace](https://devnet.kentico.com/marketplace). Examples of new community produced modules are:

- [Brian McKeiver](https://twitter.com/mcbeev) and his team at [BizStream](https://www.bizstream.com/) created the [Toolkit for Kentico](https://www.toolkitforkentico.com)
- [Mike Wills](https://twitter.com/HeyMikeWills) published a [Staging configuration module](https://github.com/heywills/StagingConfigurationModule)
- [Sean G. Wright](https://twitter.com/seangwright) created a handy [Query debugger](https://github.com/wiredviews/xperience-query-debugger) console application
- [Trevor Fayas](https://twitter.com/DevTrev_Kentico) built a module that reminds me of web part containers in Portal Engine called [Page Builder Containers](https://github.com/KenticoDevTrev/PageBuilderContainers)

##:eyeglasses: 10. Search for widget content
Imagine that you have a landing page with a number of content widgets such as title and text. Until recently, the content of these widgets were not included in the search indexes. With Kentico Xperience 13 there is a new Page Crawler search index that adds widget content to the search index. 

##:oncoming_automobile: 11. Improvements under the hood
With every Kentico Xperience release I directly dig into the [release notes](https://docs.xperience.io/release-notes-xperience-13). This is the place where you can find about API changes that are not directly visible, but can increase the ease of development. An excellent example of this is the new `IPageRetriever` that makes it easier to load and work with page data on the live site.

Topics such as caching, asynchronous programming and dependency injection are just a few examples where Kentico has recently published extensive articles on:

- [Asynchronous API in (Multi)DocumentQuery and ObjectQuery](https://devnet.kentico.com/articles/improvements-under-the-hood-asynchronous-api-in-(multi)documentquery-and-objectquery)
- [Document and ObjectQuery enumeration without DataSets](https://devnet.kentico.com/articles/improvements-under-the-hood-document-and-objectquery-enumeration-without-datasets)
- [InfoProviders injectable as dependencies and asynchronous Get methods](https://devnet.kentico.com/articles/improvements-under-the-hood-infoproviders-injectable-as-dependencies-and-asynchronous-get-methods)
- [Task-based caching in Xperience 13](https://devnet.kentico.com/articles/improvements-under-the-hood-task-based-caching-in-xperience-13)

##:zap: 12. New integration with Zapier
Kentico Xperience expands on it's integration support by providing a native integration with [Zapier](https://zapier.com/apps/kentico-xperience/integrations). The Zapier module can be installed via a [NuGet package](https://github.com/kentico-ericd/xperience-zapier-cli) and uses webhooks to create objects or pages in Kentico Xperience. 

It is also possible to trigger Zaps via custom workflow and marketing actions. Zapier retrieves the data via the built-in REST service. 

![Zapier integration in Kentico Xperience](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ydyu2l7ee2e8m2al39tw.PNG)

Kentico recently also published two new integrations with [Bynder](https://github.com/Kentico/xperience-module-bynder) and [Recombee](https://github.com/Kentico/xperience-module-recombee) which are officially part of the next product update which is covered in the next and final reason.

##:robot: 13. Ready for future Xperiences
The Kentico Xperience team [recently announced](https://xperience.io/discover/blog/2021-03/kentico-xperience-13-refreshes-small-steps-for-the) their plans to shorten the release cycles and deliver product updates on a quarterly basis. These so called `refreshes` contain technical as well as business related improvements and can be closely followed via [Productboard](https://portal.productboard.com/kenticoxperience/1-kentico-xperience-roadmap/tabs/2-in-development).

This new approach potentially reduces the complexity of the upgrade procedure. The release will be much smaller and will therefor most likely require less API changes compared to a major release once a year. In terms of work, it will be similar to applying a hotfix.

##Getting ready to upgrade
In this article, I covered 13 great reasons to consider an upgrade to Kentico Xperience 13. But once you have decided to upgrade, where do you start? Anyone who has experience with upgrades in the past knows that there are many aspects that come into play. I therefor recommend reading the [Kentico Xperience documentation](https://docs.xperience.io/installation/upgrading-to-xperience-13) carefully as it covers the upgrade procedure in great detail.