Upgrade the Renderer
Overview
Sitefinity ASP.NET Core Renderer and Sitefinity CMS are two decoupled applications that communicate via REST API calls. The communication is one-way, only the Renderer recognizes that there is an Sitefinity CMS instance and stores its URL in the appsettings.json
file.
When you have two applications working together, it is important to upgrade them in a way that you avoid downtime. Therefore, Sitefinity CMS is backward compatible with older versions of Sitefinity ASP.NET Core Renderer. This way, you can first upgrade the CMS application an afterwards – the Renderer. The newly upgraded CMS will continue running with the old Renderer, while you are upgrading it. This ensures that there is no downtime during the upgrade process.
IMPORTANT: Sitefinity CMS is backward compatible with the last four versions of Sitefinity ASP.NET Core Renderer.
Scope
Only the built-in features of Sitefinity CMS are backward compatible. If you have any custom widgets or endpoints, you must ensure that they will continue to work with the old Sitefinity ASP.NET Core Renderer versions.
Recommended upgrade flow
We recommended first upgrading Sitefinity CMS, and then the Sitefinity ASP.NET Core Renderer. When you start your upgrade process with the CMS and the Renderer running the same version, you should perform the following general steps:
- Upgrade Sitefinity CMS
- Connect Sitefinity ASP.NET Core Renderer to the new Sitefinity CMS.
- Shut down the old Sitefinity CMS version.
- Upgrade Sitefinity ASP.NET Core Renderer.
- Connect the upgraded Renderer to the upgraded CMS.
- Shut down the old Sitefinity ASP.NET Core Renderer.
ASP.NET Core Renderer breaking changes
Changed namespaces
With Sitefinity CMS 14.4, the following interfaces and classes for the Renderer are moved from Progress.Sitefinity.AspNetCore.Widgets.Models.Common
to Progress.Sitefinity.AspNetCore.Models.Common
namespace:
IHasMargins
IHasPaddings
OffsetSize
OffsetStyleBase
If your project is created with a version prior to 14.4 and you are referring any of them, you must change namespace Progress.Sitefinity.AspNetCore.Widgets.Models.Common
to Progress.Sitefinity.AspNetCore.Models.Common
.
Changes in Program.cs
With Program.cs
file style entry point, the following line of code is no longer required:
app.UseEndpoints(endpoints =>
{ endpoints.MapSitefinityEndpoints(); });
Changes in output cache configuration
Output cache is no longer configured via Startup.cs
.
For more information, see Configure cache.