Release notes - Xperience 13
Kentico Xperience 13 Refreshes are product updates that include new features, released in the form of larger than standard hotfixes:
- Refresh 13 – hotfix 13.0.167 or newer
- Refresh 12 – hotfix 13.0.142 or newer
- Refresh 11 – hotfix 13.0.131 or newer
- Refresh 10 – hotfix 13.0.115 or newer
- Refresh 9 – hotfix 13.0.104 or newer
- Refresh 8 – hotfix 13.0.94 or newer
- Refresh 7 – hotfix 13.0.83 or newer
- Refresh 6 – hotfix 13.0.73 or newer
- Refresh 5 – hotfix 13.0.64 or newer
- Refresh 4 – hotfix 13.0.52 or newer
- Refresh 3 – hotfix 13.0.43 or newer
- Refresh 2 – hotfix 13.0.31 or newer
- Refresh 1 – hotfix 13.0.16 or newer
See the Hotfix instructions to learn how to apply refreshes via the hotfix.
Kentico Xperience 13 Refresh 13 (released November 21, 2024)
Updates and changes
- .NET 6 support is being discontinued as a consequence of the framework reaching Microsoft’s planned end of support on November 12, 2024. All ASP.NET Core projects that update to this and future releases must target .NET 8.
- The minimum framework version required for starting new ASP.NET Core projects is now .NET 8.
- The installer now installs .NET 8 SDK v8.0.403 if no .NET 8 SDK is found on the target machine.
- The Blank site and Dancing Goat web project templates newly created by the installer now target .NET 8.
- Added SQL Server 2022 to the list of supported SQL Server versions.
- The following NuGet package references were updated:
- BouncyCastle.Cryptography to version 2.4.0
- MailKit to version 4.7.1.1
- Microsoft.Rest.ClientRuntime to version 2.3.24
- MimeKit to version 4.7.1
- System.Formats.Asn to version 8.0.1
- System.ServiceModel.Duplex to version 4.10.3
- System.ServiceModel.Http to version 4.10.3
- System.ServiceModel.NetTcp to version 4.10.3
- System.ServiceModel.Primitives to version 4.10.3
- System.ServiceModel.Security to version 4.10.3
- System.ServiceModel.Syndication to version 4.7.0
- System.ValueTuple to version 4.0.3.0
Updates and changes – API
The following API is now obsolete as it uses the BinaryFormatter
framework API that is being phased out:
- CMS.DataEngine.AsyncProcessData.SaveToPersistentMedium
- CMS.DataEngine.AsyncProcessData.UpdateFromPersistentMedium
- CMS.Helpers.PersistentStorageHelper.GetValue
- CMS.Helpers.PersistentStorageHelper.SetValue
- CMS.Helpers.PersistentStorageHelper.RemoveValue
- CMS.Tests.CMSAssert.Serialization<T>
The API RenderStandaloneWidgetAsync
and RenderNestedWidgetAsync
for rendering widgets on ASP.NET Core sites is obsolete. Use the RenderStandaloneWidget
and RenderNestedWidget
API instead.
Fixed issues
- Page builder – A runtime error occurred when using Razor components inside Page Builder widgets, sections, and areas. Only projects targeting ASP.NET Core 8 and newer were affected. This issue also impacted the direct rendering of widgets. The
RenderStandaloneWidgetAsync
andRenderNestedWidgetAsync
methods are now obsolete and replaced withRenderStandaloneWidget
andRenderNestedWidget
(both also asynchronous).
Kentico Xperience 13 Update (released August 1, 2024)
New features
Form builder
- Form components – New form components that allow you to add a single value or multi-value calendar to the Form builder. The components are provided via the Kentico.Xperience.CalendarComponent NuGet package. For more information, see the Kentico Xperience 13 Calendar Form Component GitHub repository.
Kentico Xperience 13 Refresh 12 (released March 7, 2024)
New features
Integrations
- Azure OpenAI – An external module that allows you to automatically select the best fitting categories for a page based on its content using Azure OpenAI. For more information, see the Xperience Azure OpenAI integration GitHub repository.
Updates and changes
- The Vue.js framework used in the Page and Form builders was updated to version 3.
Fixed issues
- Security – Fixed vulnerabilities in the Page and Form builder dependencies.
- Web farms – Execution of custom web farm tasks failed if the task data contained the ‘^’ character.
Additionally, all bugs fixed within Xperience hotfixes 13.0.141 or older are included in the Refresh. See the Bugtracker on DevNet for a full list (click Fixed Bugs).
Kentico Xperience 13 Refresh 11 (released December 7, 2023)
New features
General
- .NET 8 support – Added support for project development on .NET 8.
Content management
- Page builder – New features added to the page builder widget selection dialog, including widget search (filtering), selection of recently used widgets, and other UI improvements.
- Page and Form builder – jQuery can now be disabled for the form and page builder by setting the CMSBuilderScriptsIncludeJQuery key in the configuration file of your live site project (appsettings.json or web.config). All default features remain functional without jQuery.
Fixed issues
- Application dashboard – The welcome tile on the application dashboard was incorrectly rendered behind the application tiles in the newest versions of the Chrome and Edge browsers.
- Pages – An error occurred when the value 00:00:00 was saved into a TimeSpan field of a page under workflow.
Additionally, all bugs fixed within Xperience hotfixes 13.0.130 or older are included in the Refresh. See the Bugtracker on DevNet for a full list (click Fixed Bugs).
Kentico Xperience 13 Refresh 10 (released June 22, 2023)
New features
Content management
Media libraries and page attachments now support the SVG and WebP formats for image files. Such images can be uploaded in the administration interface, selected via various image selectors, and displayed on the live site. However, WebP and SVG files are not compatible with the built-in image editor, and do not support automatic generating of image thumbnails or the resizing API (such as the WithSizeConstraint extension method when displaying images).
- To use the new file types after updating an existing project, you need to allow and configure the .svg and/or .webp file extensions:
Settings → Content → Media → Media file allowed extensions
Settings → System → Files → Upload extensions
The allowed extension settings of individual image selector fields (for example, the AllowedExtensions property of the Media files or Attachment selectors for page builder components).
The CMSImageExtensions configuration key (web.config and/or appsettings.json). See Configuring supported file types in Media libraries.
For WebP files, add a <mimeMap> MIME type mapping under the <staticContent> element in the web.config file of your administration project (and live site project if using the MVC 5 development model).
... <staticContent> <remove fileExtension=".webp" /> <mimeMap fileExtension=".webp" mimeType="image/webp" />
Note: SVG images may host scripts or CSS and can pose a security risk. Carefully consider your project’s security before allowing the SVG file type.
- If you are using the responsive image functionality for page attachments, you need to adjust your image filters to handle the new image types. This may require installation of an external image processing package or API.
- To use the new file types after updating an existing project, you need to allow and configure the .svg and/or .webp file extensions:
Fixed issues
All bugs fixed within Xperience hotfixes 13.0.114 or older are included in the Refresh. See the Bugtracker on DevNet for a full list (click Fixed Bugs).
Kentico Xperience 13 Refresh 9 (released March 23, 2023)
New features
Content management
- Page builder – Content editors can now copy entire sections and paste them on any page where page builder is available.
Updates and changes
- Third-party dependencies in page builder client-side code that contained known security issues were updated.
Fixed issues
- Page builder – Moving a page in the content tree caused inconsistent behavior with any custom link attributes added to the editor of the Rich text widget (e.g., a custom title attribute).
- Forms – After applying hotfix 13.0.12, it was possible to submit forms without selecting a value in a Drop-down list form component, even if the field was set as required.
Additionally, all bugs fixed within Xperience hotfixes 13.0.103 or older are included in the Refresh. See the Bugtracker on DevNet for a full list (click Fixed Bugs).
Kentico Xperience 13 Refresh 8 (released December 13, 2022)
New features
Content management
- Workflows and publishing – Content editors can now set a redirect after a page is unpublished, i.e., the Publish to date has passed or the page is moved to the Archived workflow step.
- Page metadata – Content editors can now use macros in all properties available on the Metadata tab of pages. The macros are automatically resolved when using the Xperience metadata extension methods (e.g., Kentico().PageTitle) in the code of the live site application.
On-line marketing
- Marketing automation – Marketers can now schedule the time interval when automation processes are enabled. The system automatically enables or disables processes based on a preconfigured From and/or To date.
- Salesforce integration
- The system was updated to use version 54.0 of the Salesforce SOAP API (the previous version was 23.0, which will be retired in 2023).
- The integration now supports synchronization of contacts and Salesforce leads in both directions. You can set up a Salesforce flow that automatically notifies your Xperience application whenever a previously replicated lead is updated, which synchronizes the lead data back to the corresponding contact in Xperience.
- New extensibility options that allow you to set up custom data sources for Salesforce lead fields using macros or custom code.
- For detailed information and instructions, see Configuring Salesforce integration.
Forms
- The reCAPTCHA form component was updated to support reCAPTCHA v3. This version of reCAPTCHA provides frictionless validation without interrupting users. A score is calculated for each request, indicating whether an interaction is likely to be a bot or a valid human user.
Integrations
- Twilio SMS – An external module that allows you to send SMS messages to contacts via the Twilio SMS service. Additionally, the module also contains a marketing automation action that allows you to send SMS messages from your automation processes. For more information, see the Twilio SMS Kentico Xperience 13 Integration repository.
Fixed issues
All bugs fixed within Xperience hotfixes 13.0.93 or older are included in the Refresh. See the Bugtracker on DevNet for a full list (click Fixed Bugs).
Kentico Xperience 13 Refresh 7 (released September 29, 2022)
New features
General
- Minimal APIs support – The system now supports application configuration using minimal APIs introduced in .NET 6.
- The legacy configuration model with separate program entry (Program.cs) and startup files (Startup.cs by default) remains fully supported. To migrate your codebase to the new model, follow Migrate to the new minimal hosting model in ASP.NET Core 6.0 for framework code, and Hosting ASP.NET Core applications using minimal APIs for Xperience-related code.
Page and Form builder development
- The properties within builder configuration dialogs (widgets, sections, etc.) now support multiple visibility conditions.
- Added the option to configure the state of editing components assigned to the properties of builder configuration dialogs. The configuration can run on the initial load of the properties dialog where the component is rendered or when the value of another field within the dialog changes. A typical use case for this type of configuration are selector components (dropdown, radio buttons), whose selection changes based on the value of a different property in the dialog. See Configuring editing component state in builder configuration dialogs.
Media libraries
- Media file search improvements – The search for files in media libraries now covers all folders and subfolders within the given library, and looks for matches within all relevant file properties: file name, title, description and extension. The search improvements are available in all locations where users view or select media library files, including the Media libraries application and all types of media file selection dialogs.
- The new search no longer allows mass actions to be performed for media file search results (due to the global scope of the search across all folders in the media library).
Integrations
- Looker Studio – An external module that allows you to display data from Xperience within Looker Studio (Google Data Studio) reports. For example, these reports can show information about contacts and their activities, email marketing statistics, and more. The module provides a way to select exactly which types of data will be available, as well as tools to generate the data and keep it up-to-date. To comply with personal data protection policies, the module also includes functionality that anonymizes data before it is transmitted to Looker Studio. The resulting data is accessed in Looker Studio using a dedicated connector for Kentico Xperience. For more information, see the Xperience Looker Studio Integration GitHub repository.
Updates and changes
- The minimum framework version required for starting new ASP.NET Core projects is now .NET 6.
- The installation process now installs .NET 6 SDK (v. 6.0.400) if not found on the target machine.
- The Blank site and Dancing Goat web project templates newly created by the installer now target .NET 6.
- The following NuGet package references were updated:
- Azure.Core from version 1.2.2 to version 1.25.0
- System.Net.Http from version 4.3.1 to version 4.3.4
- System.Text.Json from version 4.7.1 to version 4.7.2
- The following projects now target .NET 6:
- AspNetCore.Platform
- Kentico.Membership
- Kentico.Web.Mvc
- Kentico.Web.Mvc.Proxies
- Kentico.Content.Web.Mvc
- Kentico.Content.Web.Rcl
- Kentico.OnlineMarketing.Web.Mvc
Fixed issues
- NuGet packages – The refresh update consolidates the System.Text.Encoding.CodePage NuGet package to version 4.5.1. Certain projects incorrectly referenced a lower version of the package, which caused issues when restoring NuGet package dependencies after a hotfix. This issue ocurred only after applying hotfix 13.0.80 or newer.
Additionally, all bugs fixed within Xperience hotfixes 13.0.82 or older are included in the Refresh. See the Bugtracker on DevNet for a full list (click Fixed Bugs).
Kentico Xperience 13 Refresh 6 (released June 10, 2022)
New features
General
- User experience improvements – the Refresh release introduces small tweaks and changes to certain applications with the goal of simplifying their workflow and improving the user experience. For example, you can now create new page types without having to define at least one field using the page type creation wizard.
Integrations
- Google Search Console – an external module that allows Xperience users to view the indexed status of Xperience website pages from Google Search Console . Users can easily track which pages are included in the site index and sitemaps, request page indexing, identify warnings and errors for specific pages, view reports for sections of the content tree, and create exports of issues to be fixed. For more information, see the Xperience Google Search Console integration GitHub repository.
- Microsoft Dynamics 365 – an external module that enables the synchronization of Xperience contacts and activities to a Dynamics 365 tenant. Moreover, it ensures that updates of synchronized contacts via Dynamics 365 are reflected back into your Xperience website. The module also contains custom marketing automation actions to log Dynamics 365 tasks and appointments. For more information, see the Microsoft Dynamics 365 Sales integration GitHub repository.
- SendGrid – Xperience offers an external module that allows you to send all Xperience emails from the email queue via SendGrid using their Email API. The SendGrid API offers faster email processing with a customizable sending process. For more information, see the Xperience SendGrid Integration GitHub repository.
Fixed issues
- Page builder – Restrictions for page builder zones incorrectly evaluated widget identifiers in a case-sensitive way when copy-pasting widgets. This could prevent widgets from being copied into zones, even in cases where the widget was allowed in the target zone.
- Page builder – The Page builder didn’t work in certain cases for newly created pages or after changing a page’s URL. This issue occurred after applying hotfix 13.0.72, and the fix reverses the hotfix’s changes related to performance improvements of requests to non-page routes.
Additionally, all bugs fixed within Xperience hotfixes 13.0.72 or older are included in the Refresh. See the Bugtracker on DevNet for a full list (click Fixed Bugs).
Kentico Xperience 13 Refresh 5 (released March 29, 2022)
New features
Content management
- Media libraries – The system now allows content editors to view the usage of media library files within content stored in the Xperience database. See Viewing media files usage.
Integrations
- Algolia – Xperience offers an external module that allows you to create Algolia search indexes and index pages in the Xperience content tree using a code-first approach. The integration also enables you to provide a search interface on the live site using .NET API, JavaScript API, or the InstantSearch.js JavaScript library. For more information, see the Algolia Search Xperience Integration GitHub repository.
Updates and changes
- The Froala WYSIWYG editor (for example used in the Rich text widget) was updated to version 4.0.8 in hotfix 13.0.58.
Fixed issues
- Forms – Form validation provided by the reCAPTCHA form component could be bypassed in certain scenarios.
- Integration bus – Subscriptions to form data records created for outgoing synchronization using the integration bus didn’t work if the site name parameter was specified for the ObjectIntegrationSubscription object.
Additionally, all bugs fixed within Xperience hotfixes 13.0.63 or older are included in the Refresh. See the Bugtracker on DevNet for a full list (click Fixed Bugs).
Kentico Xperience 13 Refresh 4 (released November 23, 2021)
New features
Content management
- Images – The system now automatically sets the alternative text for images in the rich text content of websites. By helping content editors add suitable image alternative text, you boost the SEO capability and accessibility of your websites. If editors do not specify the alternative text directly when inserting an image, the value is loaded from the Description property in the metadata of the inserted image. For cases where the image Description is also empty, the system can be configured to generate alternative text using automatic image recognition (see below).
- AI Image recognition – New integration of the Microsoft Azure Computer Vision API (Cognitive Services) that allows automatic generating of alternative text for images inserted into the rich text content of websites. See Settings - Cognitive Services.
Integrations
- Disqus – Xperience offers an external module that integrates with the Disqus comment platform. The module contains a Disqus comments widget that provides the option to add a comment section to any page on your website. Disqus also offers advanced moderation tools, analytics and monetization options. The module is distributed through NuGet packages and does not require Xperience 13 Refresh 4. For more information and detailed instructions, see the Xperience Disqus Widget GitHub repository.
- Jira – An external module that integrates with the Jira issue tracking software. The module contains three custom actions for Xperience workflows and marketing automation processes that enable the creation of new Jira issues, a transition of existing issues between different Jira workflow steps, and the creation of Jira webhooks. The integration is distributed as an open-source custom module and does not require Xperience 13 Refresh 4. For more information, see the Xperience Jira integration GitHub repository.
- Intercom – An external module that integrates with the Intercom chat service. The module provides synchronization of Xperience contact data to your Intercom organization, transfer of data submitted through the Intercom chat to Xperience contact attributes, logging of activities in Xperience when users perform specified actions in the Intercom chat, and an HtmlHelper API that helps developers generate scripts that add the Intercom chat interface onto the pages of your website. The module is distributed through NuGet packages and does not require Xperience 13 Refresh 4. For more information and detailed instructions, see the Kentico Xperience Intercom modules GitHub repository.
Fixed issues
- Workflow – The default administrator user account didn’t receive notification emails about page transitions between workflow steps. The problem is fixed for new installations of Xperience 13 Refresh 4. For existing instances that utilize the administrator user account, you can fix the issue manually:
- Open the Users application in the Xperience administration.
- Edit the administrator user.
- On the Sites tab, assign the user to the related websites.
- On the Languages tab, select the User can edit all languages option.
- Page builder – On pages containing two instances of the Rich text widget with long content, pressing Enter while editing the content of the second widget scrolled the page to the position of the first Rich text widget.
Additionally, all bugs fixed within Xperience hotfixes 13.0.51 or older are included in the Refresh. See the Bugtracker on DevNet for a full list (click Fixed Bugs).
Kentico Xperience 13 Refresh 3 (released September 14, 2021)
New features
Page builder
- The Page and Path selectors for page builder component properties now support selection of multiple pages. The same option is also available for page selection dialogs implemented using the content selector API.
- Widget zone restrictions now allow developers to limit what widgets can be added to individual widget zones within a section.
- An identifier can be added to widget zones to ensure that widgets are correctly transferred when changing section types.
Form builder
- An identifier can be added to form zones to ensure that form components (fields) are correctly transferred when changing form section types.
Fixed issues
- Page Builder – If the JsonSerializerSettings.NullValueHandling (Newtonsoft.Json) serialization option was globally set to Ignore in a project’s application start code, an error occurred when loading the list of widgets in the Page Builder interface, for example when adding a widget to a zone.
Additionally, all bugs fixed within Xperience hotfixes 13.0.42 or older are included in the Refresh. See the Bugtracker on DevNet for a full list (click Fixed Bugs).
Kentico Xperience 13 Refresh 2 (released June 22, 2021)
New features
Content management
- Page URLs and routing – New option to set culture aliases that replace the culture code within URL language prefixes. Culture aliases apply to multilingual sites that use content tree-based routing mode and the language prefix URL format. See Configuring URLs for multilingual websites.
- Text analytics
- Integration of the Microsoft Azure Text Analytics API (Cognitive Services) that allows content editors to analyze the sentiment of text when editing page fields on the Content tab in the Pages application. See Settings - Cognitive Services and Using text analytics.
- The API also allows developers to implement custom sentiment analysis scenarios. See Using the sentiment analysis API.
Page builder
- The page builder interface now allows users to copy widgets into a clipboard and later paste them on the same or other pages using the add widget dialog.
Form builder
- Developers can now create form builder sections with properties. Properties allow editors to adjust the content or behavior of sections within forms through a configuration dialog. For example, a property can be used to set the heading text of a section containing a group of fields. See Defining form section properties.
- The Rich text editor component can now be used within the form builder, for the properties of form components or form sections.
On-line marketing
- Added a tip box with a Digital Marketing introduction video for the Contact management and Contact groups applications.
Fixed issues
Source code – Compilation of the source code solution resulted in an error due to duplicated files in the Kentico.Content.Web.Mvc project. The issue only occurred after applying hotfix 13.0.29 or 13.0.30. If you have applied either of these hotfixes, you need to manually move the following files from the CMSSolution/Mvc/Kentico.Content.Web.Mvc/Authentication folder to CMSSolution/Mvc/Kentico.Content.Web.Mvc/Preview and overwrite the duplicated files with the same name:
- KenticoVirtualContextAuthenticationController.cs
- VirtualContextAuthentication.cs
Additionally, all bugs fixed within Xperience hotfixes 13.0.30 or older are included in the Refresh. See the Bugtracker on DevNet for a full list (click Fixed Bugs).
Kentico Xperience 13 Refresh 1 (released March 16, 2021)
System requirement changes
- ASP.NET Core projects now support development using .NET 5.0 and .NET 6.0. This also extends back to older patch versions, starting from hotfix 13.0.3.
New features
Platform
- Search
The system now provides a single search index type for the content of pages, which combines the original Pages crawler and Pages indexes. The data source for indexing (page HTML output and/or structured fields) can instead be configured separately for individual page types. This allows more flexibility and accurate search indexing based on the content type of each page.
- See Defining local page indexes for more information.
- Applying the Refresh automatically converts all existing page search indexes. However, you need to manually Rebuild these indexes.
The search options for page fields now include the Index update trigger flag, which controls whether the system updates the page in search indexes when the field’s value is modified.
- We recommend having the option enabled for all fields included in your indexes.
- Applying the Refresh automatically sets the Index update trigger flag, so the behavior of page indexes remains the same as before the refresh. However, if you have customized the search settings for page fields via the SKU or Page class, you need to set the flag manually for this class. We also recommend validating the search field settings of your page types and configuring the flag to meet your exact search requirements.
Sections of page HTML content can now be excluded from search indexing using elements marked with the data-ktc-search-exclude data attribute (for page types that use the HTML output or Both data source for search). For example, excluding may be suitable for shared content within your site’s layout, such as a header or footer.
Search customization API improvements:
- New ISearchCrawlerContentProcessor service, which allows developers to customize how the search crawler processes the HTML content of pages. See Defining local page indexes for an example. Crawler customization through handlers for the SearchCrawler.HtmlToPlainTextHandler event remains valid without any changes.
- New global events that enable adding of custom fields for locally stored page search indexes. For example, custom index fields can be used to set up search result filtering or faceting based on external data not actually stored within the searched pages. See Customizing the content of search indexes.
- Debug – Added support for debugging the live site in the Debug application. The available live site debugs cover the application cache, executed SQL queries and resolved macro expressions.
- Caching
- Introduced a new cache-dependency tag helper tied directly to the cache tag helper provided by the ASP.NET Core framework. The tag helper enables developers to specify cache dependencies on Xperience objects via dummy cache keys. See Caching page output in ASP.NET Core applications.
- The system now provides support for caching the output of page builder widgets on ASP.NET Core sites. The caching support is code-driven – widgets and editable areas provide properties that allow developers to design flexible caching strategies. See Caching page output in ASP.NET Core applications.
- Hotfix – Added event logging to identify the start and end of the procedure that runs on the first administration request after applying a hotfix. The events make it easier to identify potential problems that can occur during hotfix (or Refresh) installations.
Page builder
- New selectors for page builder component properties:
- Object selector – allows users to choose one or more Xperience objects of a specified type.
- General selector – allows users to choose items from any set of data defined by developers. The items offered by the selector can be of any type, including external data outside of Xperience. The general selector also grants developers more control over the behavior of the selector and the display names of items.
- The content selector JavaScript API can now be used in custom scripts when developing modal dialogs for builder components.
Content management
- Content recommendations – Xperience offers an external module that integrates with the Recombee Artificial Intelligence Powered Recommender service. The module provides the data of your website’s pages to Recombee, and then allows displaying of page recommendations (based on either the previous page views of each visitor or the content of the currently viewed page). The module is distributed through NuGet packages and does not require Xperience 13 Refresh 1. For more information, examples and detailed instructions, see the Kentico Xperience Recombee modules GitHub repository.
- Bynder integration – An external module that integrates Xperience with the Bynder digital asset management platform . The module adds a form control for Xperience administration forms. By assigning the form control to a page type field, users can select and display images stored in the Bynder service when editing pages in the Pages application. The module is distributed through NuGet packages and does not require Xperience 13 Refresh 1. For more information, examples and detailed instructions on using the module, see the Kentico Xperience Bynder module GitHub repository.
On-line marketing
- Activities – New option to log On-line form submission activities even for visitors who have not given consent to be tracked as contacts. Data added into the system as a result of such activities only includes information explicitly entered into the form, and such logging does not enable any other type of tracking for the visitor. Personal data collected through such activities may only be used for legitimate interest purposes in accordance with the site’s legal requirements. For more information, see Enabling activity tracking.
Updates and changes
- Data engine – Developers can now extend or modify the system’s Data provider (performs handling of low-level database operations) by implementing and registering a custom IDataProvider instance. For example, this can be used to integrate 3rd party tools for SQL profiling. Additionally, the system’s default DataConnection class is now protected, which allows developers to create a derived class within IDataProvider implementations.
- The Xperience API libraries now include the AngleSharp HTML parser, added via the AngleSharp NuGet package. The library allows improved parsing of page HTML content by Xperience search indexes, and can also be used by developers in custom scenarios.
- The Froala WYSIWYG editor (for example used in the Rich text widget) was updated to version 3.2.6 in hotfix 13.0.10.
Fixed issues
- Form builder – On ASP.NET Core sites, the properties panel of the Form builder in the Forms application did not correctly validate the values of field properties. For example, this allowed users to enter invalid Names for fields, which could result in errors or inconsistent behavior.
Additionally, all bugs fixed within Xperience hotfixes 13.0.15 or older are included in the Refresh. See the Bugtracker on DevNet for a full list (click Fixed Bugs).
Kentico Xperience 13 (released October 27, 2020)
System requirement changes
The minimum required version of Microsoft .NET Framework is now 4.8 (for the Xperience administration application and MVC 5 live site projects).
Ended support of Internet Explorer (11) for the Xperience administration interface and live site components.
Microsoft SQL Server for Xperience databases:
- Version 2008 R2 is no longer supported (2012 or newer is required)
- Added support for version 2019
Server operating systems:
- Ended support for: Windows 7, Windows 8 (8.1 remains supported), Windows 2008 R2
- Added support for Windows Server 2019
New features
ASP.NET Core
- Added support for developing live site applications using ASP.NET Core.
Content management
Page URLs and routing
- New content tree-based URL routing mode. The system can now automatically generate URLs for pages based on their position in the content tree and the configuration of their page types. See Content tree-based routing.
- If you want to switch from custom routing based on URL patterns to content tree-based routing while preserving the former URLs, you can do so by manually executing a prepared code snippet. See Enabling content tree-based routing.
- Added support for configuring the format of URLs on multilingual sites using the content tree-based routing mode. For multilingual URLs, you can use separate domains or language prefixes. See Configuring URLs for multilingual websites.
- New Former URLs application, which enables automatic tracking of changes made to the URL paths of pages (e.g. by changing a URL slug). Old URLs are stored and the system handles redirection to the current URLs. See Managing page URLs.
- New content tree-based URL routing mode. The system can now automatically generate URLs for pages based on their position in the content tree and the configuration of their page types. See Content tree-based routing.
Added support for creating linked pages on MVC and ASP.NET Core sites. Linked pages allow content to be reused in various scenarios, for example to simplify editing in the content tree when data stored in a page is displayed within multiple parts of the website.
New navigation feature for page types and individual pages, which allows content editors to choose which pages are displayed in navigation menus. For more information, see Building website navigation.
Improved support for editing and handling metadata for pages. The new metadata feature for page types allows administrators to control which pages provide metadata editing, and developers can use new extension methods to render metadata tags when displaying page content.
Added settings and support for reflecting page permissions on the live site. Page-level permissions are now automatically reflected on sites using the content tree-based routing mode. It is also possible to create authenticated sections that are enforced on the live site.
- On sites using custom routing, developers can utilize methods from the Xperience API to check page permissions and authentication and authorization of users to access pages. See Implementing page permission checks.
Thelanguage version comparison mode used for viewing and editing two different language versions of pages side-by-side is now supported for MVC and ASP.NET Core sites.
MVC and ASP.NET Core sites now support validation of HTML , CSS , links , and
accessibilityfor pages via built-in validators.- The CSS validator now checks CSS definitions used on pages against the CSS3 standard .
- Page accessibility validation is no longer available after May 1, 2021 due to the termination of the used 3rd party validation service.
New security web.config key for accepting all certificates when validating website code or accessibility (e.g. CSS validation) using a 3rd party validation service over a secured protocol (HTTPS): CMSValidationAcceptAllCertificates. See Reference - Web.config application keys.
Content API
New IPageRetriever service that simplifies loading of page data within live site applications. Supports dependency injection, automatically provides caching, and ensures default parameterization of the resulting page query for common scenarios.
Page URLs and routing
- Improved API for getting the live site URLs of pages from the Xperience content tree (new IPageUrlRetriever service and extension methods). For more information, see Displaying page content.
- New system constraint SiteCultureConstraint that automatically detects and sets the current culture for each request on multilingual websites that use custom routing based on URL patterns. The constraint has a property HideLanguagePrefixForDefaultCulturethat enables hiding language prefixes for default content culture URLs.
- New Kentico().PageCanonicalUrl() extension method that helps developers render Canonical link elements for pages with alternative URLs or for linked pages. The method replaces the PageMainUrl() extension method used previously for this purpose. As a result, the PageMainUrl() method is now obsolete.
Media libraries – Improved API for retrieving and configuring URLs of media library files. For more information, see Displaying content from media libraries.
Page attachments – Improved API for retrieving and configuring URLs page attachments. For more information, see Displaying page attachments.
Page builder
- The system now provides the Rich text widget out-of-the-box (for Kentico 12, the widget was available through a NuGet package as an extension). The Rich text widget allows content editors to add stylized text content to pages. See Using the Rich text widget. The same rich text editor can also be used by developers within custom components, as described in Configuring the rich text editor for page builder.
- The editor used in the widget is Froala WYSIWYG editor version 3.2.2.
- Development
- Developers can now limit which sections are allowed in page builder editable areas (in addition to limiting widgets). See Creating pages with editable areas.
- New API for rendering widgets directly within the views of pages or other page builder components. For more information, see Rendering widgets in code and Extending widgets.
- The API now allows developers to add visibility conditions to the properties of page and form builder components (widgets, page templates, personalization conditions, etc.). For more information, see Adding visibility conditions for builder component properties.
- Added support for accessing the data of the current page within custom controller actions that handle POST requests (for both pages and page builder components, such as widgets, sections, and page templates). When handling such requests, the persisted page data can be accessed via the new IPageDataContextRetrieverservice. For more information, see Developing widgets, Developing page builder sections, Developing page templates.
- Added support for accessing the properties of page builder components (widgets, sections, page templates) from within custom controller actions that handle POST requests. For more information, see Defining widget properties.
- Two new selectors for page builder component properties: URL selector and Attachment selector. The JavaScript API of all selectors has been unified into a single configurable content selector API.
Form builder
- New Multiple choice form component that offers checkbox options, and allows users to select multiple options at the same time. See Reference - System form components.
- Development – Added dependency injection support for classes that implement form components. Components can now automatically resolve dependencies from the application’s service container.
Platform
- Site domains
- Domain aliases can now specify alternative Presentation URLs for the live site (MVC). See Setting domain names for sites.
- You can now specify a Preview presentation URL for each Administration domain name alias. The Preview presentation URL is then used when previewing live site content within the scope of the administration interface. This can be useful, for example, when preparing environment for content staging.
- The system now validates the Presentation URL of sites for uniqueness. Different running sites (or their domain aliases) can no longer have matching Presentation URL values.
- Membership
- All Membership & Security and Passwords settings set via the Settings application now also affect the configuration of the Xperience membership OWIN integration API used by the live site application. Password policies, password reset token validity intervals, cross-site user account sharing, and other features can now be controlled directly from the Settings application without the need to synchronize such changes with the configuration of the live-site application.
- New API for managing user avatars. See User avatars for more information.
- The Kentico.Membership.User object used by the system’s ASP.NET Identity integration now also maps the ‘UserInfo.FullName’ property. See Adding custom fields to users.
- Licensing – Reworked how Xperience controls the maximum number of web farms allowed by site license keys. The number of allowed web farm servers is now counted separately for the live site and administration applications. For example, a license key for a live site hosted on domain.com that allows up to 3 web farm servers allows you to scale the corresponding application to up to three instances. To scale the connected administration instance (e.g., hosted on admin.domain.com), you need a license key for admin.domain.com with its web farm allowance. In previous versions, the scaling model enabled arbitrary distribution of web farm servers allowed by a single license across both applications. See How licensing works for more information and examples illustrating various hosting configurations.
- Added SameSite mode configuration options for cookies. Due to stricter enforcement of the SameSite configuration of cookies adopted by major browsers, it is now possible to configure the SameSite mode of cookies set via the system’s API (for both system and custom cookies). By default, Xperience uses the Lax mode for all system cookies, which is sufficient if the live site and administration are hosted on a single domain. However, if the applications comprising your site are hosted across multiple domains, you need to explicitly force the None mode to ensure the preview mode functionality and all dependent features, such as the page builder, work correctly. See:
- Configuring cookie SameSite mode to learn how to configure the SameSite mode for system cookies depending on your hosting environment.
- Working with cookies to learn how to configure the SameSite mode for custom cookies set via the Xperience API.
- Macros
- Updated the available macro methods to allow resolving by both the administration and live site application (with the exception of methods that only have a specific function within the administration interface). Certain methods that are no longer relevant were removed and others were made obsolete. To learn about the current macro methods, refer to Reference - Macro methods.
- The macro report available in System -> Macros -> Report was extended to report occurrences of removed or obsolete macro methods used in the administration application. See Searching for macros.
- Scheduled tasks – The system now allows scheduling and running of site-specific tasks on the side of the live site (MVC) application. For example, you can use this option for tasks that work with the application memory or the local file system. See Processing scheduled tasks on the live site.
- Search
- Improved the functionality of Pages crawler indexes to allow better usability on sites presented by a separate live site application (MVC or ASP.NET Core). See Defining local page indexes.
- Added support for Pages crawler indexes in combination with Azure Cognitive Search.
- Event log – It is now possible to specify custom event logging destinations via event log writers. See Customizing event logging for more information.
- REST
- When generating URLs with hash parameter authentication for REST requests, the system now allows administrators to set an expiration date for individual URLs.
- Hash parameters generated for authenticating REST requests can now be invalidated.
- Caching
- New CacheAsync method added to the CacheHelper API that allows loading and caching of Xperience data in asynchronous code. See Caching in custom code.
- New IProgressiveCache service that provides a full alternative to the static CacheHelper API. Supports dependency injection and makes it easier to cache data within the code of unit tests.
- Performance – The general performance of ObjectQuerycalls was slightly improved (such calls are used to load object data within the system and in custom code).
- SharePoint integration – New API that allows developers to retrieve the URLs of SharePoint files and display the files on the live site.
- Added automatic registration of secured (HTTPS) endpoints for the WCF services used by the marketing automation designer and advanced workflow designer (when the administration application is running over HTTPS). Manual configuration is only required in scenarios with advanced environment configurations. See Configuring Windows Communication Foundation for more information.
- Data API
- The API now contains interfaces (services) for most InfoProvider classes, which are used for basic loading and management of Xperience objects. For example, IUserInfoProvider for UserInfoProvider. The new services can be added using dependency injection or accessed through the Provider property of the corresponding Info class. The original static InfoProvider methods that have replacements are now obsolete. See Database table API.
- Xperience objects can now be loaded asynchronously using the GetAsync method of the new IInfoProvider interfaces.
- The DocumentQuery and ObjectQuery classes provide a new GetEnumerableTypedResultAsync method, which allows asynchronous execution of queries that load Xperience pages or objects.
- The query parameterization methods available for the DocumentQuery and ObjectQuery API are now virtual. This allows developers to call the methods when creating mocked data in automated unit tests (for example when using Substitute.For with query objects).
On-line marketing
- Marketing automation
- New and improved visual design and overall interface for the automation process designer. The steps for managing the flow of processes (conditions, etc.) were simplified and streamlined.
- New Time-based triggers, which can be used to start automation processes. Such triggers schedule the process to run for a specified set of contacts, either once at a specified time or recurring based on a set interval.
- Automation processes can now be saved as templates and then later used as a starting point for creating new processes. The system provides several predefined templates to help quickly create processes that cover common scenarios (Send birthday message, Re-engagement campaign, Abandoned cart reminder). See Managing automation process templates.
- Improved editing interface for process triggers – triggers are now displayed and managed directly within the process designer interface as part of the Start step.
- Improved analytics for automation processes, including reports showing the demographics of contacts handled by the process, and a visual representation of the journey that individual contacts have taken through the steps of the process.
- Marketers can now document and annotate automation processes by adding notes to the process graph. See Working with the automation process designer for more information.
- Action steps can now retrieve data and display the resulting information to users in the automation process designer interface. For example, the system’s default Send marketing email action step loads and displays available statistics for the related email (number of sent emails, open and link click rate). For more information about implementing data retrieval for custom steps, see Developing custom marketing automation actions.
- The automation process designer newly displays a warning icon and message for steps with required parameters that are not configured.
- Users can now duplicate steps within an automation process, including their current configuration.
- The Web analytics feature is now supported for MVC and ASP.NET Core sites. Allows marketers to measure and analyze key metrics of websites directly in the Xperience administration interface.
- New and improved API for developers who wish to log custom events as web analytics. See Adding custom web analytics.
- Email marketing
- Emails can now be cloned (copied) between different email feeds. See Composing marketing emails.
- Emails that have A/B testing enabled can now be selected and sent by marketing automation processes (using Send marketing email action steps).
- The Custom table form submit activity is now supported for MVC and ASP.NET Core sites (logged automatically when calling the appropriate custom table API).
- New macro rules:
- Rule that evaluates whether a contact has their birthday on the current, preceding or following day.
- Rule that evaluates whether a contact has been inactive for a specified number of days (i.e. was created at least X days ago and has not performed any activities in the last X days).
- Personas – The staging, export/import, and continuous integration features now support persona data. If you want to synchronize, import or export data of personas that usecustom activities in their rule definitions, you need to make sure each custom activity has its Activity item object type configured in Contact management -> Configuration -> Activity types -> Edit -> Scoring rule configuration section. Additionally, you need to manually resave all scoring rules that use such custom activities.
General
- Published the Kentico Xperience item on the Azure Marketplace, which can be used to quickly deploy and evaluate a sample website as an Azure Web App.
Updates and changes
- The Preview mode feature for pages is now always active and no longer needs to be enabled on the side of the live site application (the UsePreview method of the ApplicationBuilder instance is obsolete). Developers may still need to adjust the configuration and code of the application to ensure that the preview mode works correctly, as described in Adding preview mode support.
- The WYSIWYG editor used for rich text fields in the administration interface was updated to CKEditor version 4.14.0.
- The jQueryUI library used in the administration application was updated to v1.11.4.
- The jQuery library used by the form builder feature was updated to v3.5.1.
- The Licenses application in the Xperience administration interface was renamed to License keys.
- Marketing automation – The following types of steps for marketing automation processes were streamlined and renamed:
- Standard – renamed to Approve progress.
- First win – renamed to If/Else.
- Condition – merged into the If/Else step type (automatically converted when upgrading sites).
- Multi-choice – removed, we recommend using the If/Else step type (occurrences in existing processes remain when upgrading sites).
- User choice – renamed to Manual choice.
- Start process – renamed to Start another process.
- Countries – The country of Saint Martin (MF, MAF) was split into:
- Saint Martin (French part) (MF, MAF) with the SaintMartin code name.
- Sint Maarten (Dutch part) (SX, SXM) with the SintMaarten_DutchPart code name.
- Countries – The following countries were added to the system:
- Bonaire, Saint Eustatius and Saba (BQ, BES) with the Bonaire_SintEustatiusAndSaba code name.
- Curacao (CW, CUW) with the Curacao code name.
- Administration interface is a new application that merges the functionality of the following Portal Engine applications used to customize the Xperience interface:
- Widgets (renamed to Dashboard widgets)
- Web parts
- Page layouts
- Page templates
- Form controls
- Due to the removal of community features and groups, any group-related media libraries are converted to regular media libraries when upgrading.
Fixed issues
- E-commerce – If a tax exemption for customers was created by registering a custom ICustomerTaxClassService implementation, it was only applied for products with a tax class that had the Zero tax if tax ID is supplied property enabled. The property no longer affects custom tax exemptions (unless checked in the code of the custom implementation).
All bugs fixed within the Kentico 12 hotfixes up to version 12.0.90 are included in Xperience 13. See the Bugtracker on DevNet for a full list (click Fixed Bugs).
Breaking changes (functionality, API, data structure)
NuGet packages
All NuGet packages used for MVC development and general integration of the Xperience API were renamed (rebranded). When upgrading projects, you need to uninstall the original Kentico 12 packages and replace them with the equivalent packages for Xperience 13.
Kentico 12
Xperience 13
Kentico.AspNet.Mvc
Kentico.Xperience.AspNet.Mvc5
Kentico.AspNet.Mvc.Libraries
Kentico.Xperience.AspNet.Mvc5.Libraries
Kentico.Libraries
Kentico.Xperience.Libraries
Kentico.Libraries.Web.UI
The package was removed. The contained Web.UI libraries are only intended for use within the Xperience administration application. If necessary, you can access the libraries in the Lib folder of Xperience projects.
Kentico.LanguagePack.English
The package was removed. Localization files are now part of application assemblies (included as part of the Kentico.Xperience.AspNet.Mvc5.Libraries package).
Kentico.Libraries.Tests
Kentico.Xperience.Libraries.Tests
Kentico.Glimpse
Kentico.Xperience.Glimpse
- The Microsoft.Azure.Search NuGet package provided in Xperience projects was updated to version 10.1.0 (both in the Xperience web project and as a dependency of the Kentico.Libraries NuGet package). For this version update, the Azure Search SDK contains minor breaking changes that should not impact your project’s integration with Xperience. However, version 9 of the SDK (cumulatively applied with this update) contains potentially significant breaking changes. For example, all non-generic types derived from SearchResultBase, DocumentSearchResultBase, SuggestResultBase, DocumentSuggestResultBase, IndexBatchBase and IndexActionBase were removed from the provided API. The derived types were meant to be used in “dynamically-typed” scenarios and assumed usage of the Microsoft.Azure.Search.Models.Document class. For dynamically-typed scenarios in the newest version, use SearchResult<Document>, DocumentSearchResult<Document>, and so on (explicitly specify Microsoft.Azure.Search.Models.Document as the type’s generic parameter). For a detailed description of all changes and recommended upgrade process, see Upgrading to the Azure Search .NET SDK version 9 and Upgrading to the Azure Search .NET SDK version 10 in the official Microsoft Azure documentation. The Azure Search API provided by Xperience (CMS.Search.Azure namespace) remains unchanged.
- The Microsoft.Azure.Storage.* NuGet packages were updated to version 11.2.2. There are no expected breaking changes associated with this update.
External authentication – To work with Xperience 13, the Microsoft.Owin.Security NuGet packages that provide middleware components for external authentication on the live site must use version 4.0.0 or newer. If using an older version and upgrading to Xperience 13, you need to update the packages.
Platform
- The web site project type is no longer supported for the Xperience administration application. New installations always use the web application project type. The upgrade procedure is not supported for web site projects.
- Deployment to Azure Cloud Service is no longer supported (along with the Microsoft Azure project type). When deploying new projects to Microsoft Azure, use Azure Web Apps (or Azure Virtual Machines).
- Scheduled tasks
- Automatic scheduling based on a timer is now the default mode for processing scheduled tasks (instead of processing at the end of web requests). See Configuring scheduled task execution.
- When creating scheduled tasks, the system no longer provides the option to create a copy of the task for all web farm servers (the scenario did not work correctly in dynamic web farm scenarios and was potentially misleading).
- The CMSSchedulerUrl web.config key is no longer handled – setting a custom automatic scheduler route is no longer a supported scenario.
- Localization – Resource string files that contain the default English localization strings used by the application (CMS.resx, Kentico.Builder.resx, Kentico.PageBuilder.resx, Kentico.FormBuilder.resx, Kentico.Components.resx) are no longer a part of the Kentico.Xperience.LanguagePack.English NuGet package, which was removed. Instead, they are delivered as embedded resources in application assemblies. If you need access to these files for purposes of application localization, contact us at partners@kentico.com or support@kentico.com. Upgrading the live site project to Xperience 13 NuGet integration packages removes the files from the file system. Existing localizations implemented according to our localization practices remain unaffected.
- Monitoring of online users and contacts is no longer supported (in the Users and Contact management applications). This feature was never available for MVC sites.
- Mapping the entire filesystem to external (shared) storage via the CMSExternalStorageName web.config key is no longer supported due to potential deadlock issues. If the key is detected on application startup, the system logs a warning to the event log. Instead, map only the parts of the file system your project uses often using the StorageProviderclass. For example, the media library and form data submission folders. This avoids the need to synchronize large volumes of data over web farms while keeping the main parts of the application file systems separate.
- The Banned IPs application and related functionality were removed from the system. This feature was never available for MVC live sites.
- Introduced an additional layer of security for virtual context links (used in the administration interface when previewing or editing live site pages). The system now additionally stores the username of the current user on the client in a new CMSVirtualContextIdentity cookie (in addition to the URL itself). When processing requests for virtual context links, the system checks the username in the cookie against the username present in the URL.
- Page type settings for configuring custom administration interface pages in the Pages application were removed (New/Edit, Preview and Listing mode pages).
- Removed the JavaScript files application, and the option to manage files in the Xperience project’s ~/CMSScripts/Custom folder through the administration interface.
- Removed the CSS Stylesheets application, and the option to manage system stylesheets through the administration interface.
- Search indexes of the Pages crawler type no longer allow configuration of the domain on which content is indexed. The crawler now always uses the main live site URL of the indexed page (the domain may be different between culture versions of pages).
- The Membership - Forgotten password (obsolete) email template was removed from the system, along with the related macro resolver, and the Forgotten password template type. This template was obsolete and no longer used by the system’s password reset functionality.
- The Membership - Registration, Membership - Registration waiting for approval, and Membership - Registration confirmation email templates were removed from the system. These email templates were not used during the user registration process on MVC sites. To send emails regarding user registration or changes in account status, use the corresponding API provided by the KenticoUserManager class. See Enabling user registration.
- Domain aliases for sites no longer provide the option of setting a redirection URL.
- The option to save sites as web templates is no longer supported. If required, we recommend using the export and import feature for sites.
- The setting that ensured internal site prefixes for user names was removed and this option is no longer supported.
- The entire Health Monitoring functionality was removed from the system. The corresponding Windows services and performance counter registrations are automatically removed during the upgrade.
- The following font icons (used to display graphics in the administration interface) were renamed:
- @icon-parent-child-scheme > @icon-parent-children-scheme-3
- @icon-parent-child-scheme-2 > @icon-parent-child-scheme-inverted
- @icon-parent-child-scheme2 > @icon-parent-child-scheme
- @icon-parent-children-scheme > @icon-parent-children-scheme-2
Content management
- The Portal Engine and ASPX template development models for websites are no longer supported. Related features and components (web parts, widgets, page templates, controls, etc.) were removed from the system.
- Web parts can no longer be used to build website pages. They remain in the system as components for administration interface pages.
- Portal Engine page templates can no longer be assigned to website pages. They remain in the system as a way to build administration interface pages. Ad-hoc templates dedicated to individual pages are no longer supported. When upgrading projects, all page templates except for UI and dashboard templates are removed, and any ad-hoc UI templates are converted to global shared templates.
- All support for the original Portal Engine widgets was removed for live site content. This includes editor, user and group widgets, as well as inline widgets (adding widgets into editable text areas via the editor). Widgets can still be used on dashboards within the administration interface.
- Removed support for web part and widget containers.
- Transformations are no longer intended for displaying data on the live site. The ASCX, XSLT, and jQuery transformation types are no longer supported, and any existing transformations of these types are deleted when upgrading projects. If you use such transformations, you need to create equivalent macro-based transformations.
- On-site editing mode is no longer supported (the feature was never available for MVC sites).
- Some tabs used when editing pages in the Pages application were reorganized (e.g., the content of the General tab was reworked, the tags functionality was moved to a separate Tags tab, etc.). As part of this reorganization, some UI elements in the Pages application were also rearranged. If upgrading from an older version, we recommend that you check that any UI personalization configuration or custom UI elements are still valid.
- The Sites application no longer provides the option to switch sites to off-line mode (the feature never worked for MVC sites).
- On-line formscreated on Portal Engine sites (without the MVC form builder) are no longer supported.
- Removed permanent URL functionality for pages. URLs served via the /getdoc handler are no longer supported.
- The Sites application no longer provides the option to select a CSS stylesheet applied to the content of rich text fields edited through the WYSIWYG editor. Instead, a stylesheet can be configured for this purpose using the new CSS stylesheet for WYSIWYG editor setting in Settings -> Content -> Content management (accepts the stylesheet’s absolute URL or virtual path based on the MVC application’s Presentation URL). See Styling the editor for rich text fields.
- Attachments and media library files now have separate settings for configuring URLs in the URLs and SEO category of the Settings application.
- The built-in components and functionality for content notifications was removed (the feature was never available for MVC sites). Additionally, the original API for developing notification gateways in Xperience is no longer supported.
- Removed support for Device profiles (a mobile development approach originally usable by Portal Engine sites). This includes all related applications, settings, components and integration with 51Degrees device detection.
- The WebDAV integration feature used for collaborative editing and file management on remote web servers is no longer supported.
- The searchattachments and searchdocuments SQL queries originally placed under the CMS.Root page type were moved and renamed. The queries are now named Search and available under the Attachment (cms.attachment) and Page (cms.document) classes of the system’s Pages module.
- The Default page and Default alias path settings were removed. The option to set a Default alias path for domain aliases was also removed. Redirection to your website’s home page is now configured via the Home page and Home page URL behavior settings. See Settings - URLs and SEO for more information.
- The Redirect invalid case URLs to their correct versionssetting was removed. To configure how the system handles the letter case of characters in URLs, set the Enforce lowercase URLs setting. See Settings - URLs and SEO for more information.
- The translations.com translation service is no longer supported.
- Removed the functionality that allowed a watermark to be configured for images managed by the system (media library files, page attachments, object metafiles).
On-line marketing
Marketing automation
- Newly created or imported automation processes are now inactive by default. Processes need to be enabled in the process designer interface before they can start running for contacts.
- Send marketing email action steps within automation processes can now only send marketing emails that are specifically flagged for marketing automation purposes (via a new Use in Marketing automation property). Such emails cannot be sent directly from the Email marketing application.
- Marketing automation process steps of the Multi-choice type are no longer available. We recommend using the If/Else step type to create conditions in automation processes. When upgrading sites, any occurrences of Multi-choice steps remain in existing processes.
- The reports for automation processes no longer support the option to directly save or print the report content, or subscribe to receive email notifications about the report status. Additionally, any custom modifications made in the Reporting application under the Online marketing -> Automation report category no longer apply.
Multivariate testing of pages is no longer supported (the feature was never available for pages on MVC sites). We recommend using A/B testing instead.
The following macros related to personas were removed or modified:
- GlobalObjects.PersonaScores – removed
- GlobalObjects.Personas[0].PersonaScore – changed to GlobalObjects.Personas[0].Scores
It is no longer possible to assign personas to pages (the binding between content tree nodes and personas was removed).
Banner management functionality is no longer supported, and all related components were removed from the system (applications, web parts, widgets, settings, etc.).
Social & Community
- Community features were removed from the system, along with all related components (web parts, widgets, email templates, form controls, settings) and API:
- Abuse report
- Bad words
- Blogs
- Chat
- Content rating
- Events
- Forums
- Flood protection
- Groups
- Message boards
- Polls
- User badges and activity points
- User contribution web parts
- The following functionality related to user avatars was removed from the system: the Avatars application, management of pre-defined avatars, Gravatar support. It is still possible to manage user avatars using the API. For more information, see User avatars.
E-commerce
- All components and functionality related to displaying e-commerce data and shopping carts on Portal Engine sites were removed (includes macro methods, transformation methods, web parts, widgets, settings, etc.). See the Developing on-line stores documentation to learn how to implement equivalent functionality on MVC sites.
- Strands Recommender integration is no longer supported (the feature was never available for MVC sites).
API – Breaking changes
Search the API changes page on DevNet to find all possible breaking changes in the API.
Platform (live site API)
- Kentico.Membership – The UserManager, UserStore, and SignInManager types from the Kentico.Membership namespace are now obsolete. Use KenticoUserManager, KenticoUserStore, and KenticoSignInManager instead. The new types support a generic parameter that allows you to work with customized Kentico.Membership.User objects (e.g., containing additional properties corresponding to custom or existing fields of user objects) in the Xperience ASP.NET Identity implementation. See Adding custom fields to users for more information.
- Form builder
- All selector form components (e.g., SelectorFormComponent, CompareToFieldSelectorComponent) now work with collections of Kentico.Web.Mvc.HtmlOptionIteminstead of System.Web.Mvc.SelectListItem. Affected members are marked as obsolete with the corresponding alternative provided in the obsolete information message. To convert collections of HtmlOptionItems to SelectListItems, use the Kentico.Web.Mvc.ToSelectListItems extension method.
- The GetEditorHtmlAttributesextension method no longer directly extends ViewData but is provided under the ViewData.Kentico() extension point instead. Replace all usages of ViewData.GetEditorHtmlAttributes with ViewData.Kentico().GetEditorHtmlAttributes. The old approach is marked obsolete and will be removed in future versions.
Platform (general API)
- The static methods of most InfoProvider classes used for basic loading and management of Xperience objects are now obsolete. Instead, the API provides interface equivalents (services) for each InfoProvider. For example, use IUserInfoProvider instead of UserInfoProvider. The new interfaces (services) can be added using dependency injection or accessed through the Provider property of the corresponding Info class.
- All system API methods working with uploaded files now take IUploadedFile instead of HttpPostedFile. The IUploadedFile interface acts as a wrapper that encapsulates properties of posted binary data. Use the provided ToUploadedFile extension methods (CMS.Base.UploadExtensions namespace) to convert HttpPostedFile types.
- The event logging API exposed by the EventLogProvider class is now obsolete. To log events into the application’s event log, use IEventLogService instead. See the event log API Examples.
- The properties of the CoreServices class, used to provide access to a set of core system services (IAppSettingsService, IEventLogService, ILocalizationService, etc.), are now obsolete. Use Service.Resolve<ServiceType>() to access these services instead. For example, use Service.Resolve<IAppSettingsService>() to get an instance of the service that works with a project’s web.config setting keys.
- The DataExportHelper.ExportToExcel, DataExportHelper.ExportToCSV, and DataExportHelper.ExportToXML methods no longer close the System.IO.Stream object passed to them as a parameter. Correctly disposing of the stream is now the responsibility of the calling code.
- Materializing an ObjectQuery call (typically by enumerating through the results) now triggers the SqlEvents.ExecuteReader global event instead of the SqlEvents.ExecuteQuery event. This is not the case for DocumentQuery calls, which still trigger the ExecuteQuery event. You need to accordingly adjust any custom event handlers of these events.
- Using period character (‘.’) prefixes in role code names to specify global roles is no longer supported when loading roles in custom code. Instead, use 0 as the value of the site ID parameter in the corresponding API call. For example: RoleInfo.Provider.Get(“RoleName”, 0)
- The CMS.Helpers.BrowserHelper class is now obsolete. All custom browser detection or compatibility logic should be performed client-side using JavaScript. If you need client browser data available on the server for specific requests, you can send them as part of the corresponding request.
- All QR code functionality was removed from the system, including the related API (CMS.Helpers.ImageHelper.GetQRCodeUrl, CMS.UIControls.QRCodeGenerator, etc.), the entire ThoughtWorks.QRCode.dll library, and support for loading QR codes via the GetResource.ashx handler.
- ObjectTypeInfo properties related to macros (CheckPermissions, ContainsMacros, MacroCollectionName) were moved into a new separate MacroProcessingSettings class, available under the new MacroSettings property of ObjectTypeInfo. The original properties are now obsolete.
Content management
- Page builder
- The API for limiting widgets and assigning default sections in page builder editable areas has been improved and updated. The previous approach (using optional parameters of the EditableArea method) is now obsolete and should not be used.
- The ComponentController.GetPage methods used to access the data of the page where a component is rendered are now obsolete. Use the IPageDataContextRetriever service and its Retrieve<TPageType> method to access the page data instead. See, for example, Developing widgets.
- The ComponentController.GetProperties methods used to access the properties of components in controller actions are now obsolete. Use the IComponentPropertiesRetriever service and its Retrieve<TComponentProperties> method the access the properties instead. See, for example, Defining widget properties. To access the properties of page templates, use IPageTemplatePropertiesRetriever.Retrieve<TTemplateProperties>.
- The KenticoFormWidgetController.WIDGET_IDENTIFIER constant containing the registered identifier of the system’s Form widget is now obsolete. Instead, access the widget’s identifier via the SystemComponentIdentifiers class (Kentico.Content.Web.Mvc namespace). This class aggregates the identifiers of all default system widgets (Form, Rich text, etc.).
- Page attachments – the GetPath extension method used to resolve the relative URL of page attachments is now obsolete. Use the IPageAttachmentUrlRetriever service to resolve page attachment URLs instead. See Displaying page attachments.
- The ImageUrl extension method used to generate and parameterize absolute URLs from relative URLs is now obsolete. Instead, use WithSizeConstraint and WithOptions extension methods on the IFileUrl object. The object is returned by general URL “retriever” services for page attachments and media library files. In cases where you only have the relative path to an image available (e.g., product images, manufacturer logos), you can construct an IFileUrl object manually. For example, see the Adjusting product image size section in Displaying product listings.
- The GetFileUrl method of the CMS.AmazonStorage.File and CMS.AzureStorage.File classes, used for obtaining URLs to media files stored on Amazon S3 and Microsoft Azure external storages, now returns the URL in a virtual path format (e.g. ~/CMSPages/GetAmazonFile.aspx?…) instead of the previous absolute path format. You can resolve the virtual relative URLs depending on your needs.
On-line marketing
- The IABTestLogger service that performed conversion logging for A/B tests is now obsolete. Instead, use the IABTestConversionLogger service (available in the CMS.OnlineMarketing namespace).
E-commerce
- When developing custom tax exemptions for customers, the GetTaxClass method in ICustomerTaxClassService implementations now has an additional TaxClassInfo parameter and the returned CustomerTaxClass value was changed to an enum. Such customizations now correctly apply even for products under a tax class with the Zero tax if tax ID is supplied property disabled.
- The IRoundingService and ISettingService services were removed from the set of system service managed by dependency injection. The instances of these service are intended to be resolved using the corresponding IRoundingServiceFactory and ISettingServiceFactory services. If you injected or resolved these services directly (using Service.Resolve<TType>()), replace them with the intended service factory methods.
Database – Breaking changes
All changes in the database structure are automatically handled by Xperience during the update procedure. This information is provided to help you prepare in case you use custom code or scripts that rely on the original database structure.
General
The following database tables were removed (the related features are no longer supported in Xperience 13):
- BadWords_Word
- BadWords_WordCulture
- Blog_Comment
- Blog_PostSubscription
- CMS_AbuseReport
- CMS_Badge
- CMS_BannedIP
- CMS_Banner
- CMS_BannerCategory
- CMS_CssStylesheet
- CMS_CssStylesheetSite
- CMS_DeviceProfile
- CMS_DeviceProfileLayout
- CMS_DocumentAlias
- CMS_OpenIDUser
- CMS_PageTemplateScope
- CMS_PageTemplateSite
- CMS_Session
- CMS_TemplateDeviceLayout
- CMS_WebTemplate
- Events_Attendee
- Notification_Gateway
- Notification_Subscription
- Notification_Template
- Notification_TemplateText
- Polls_Poll
- Polls_PollAnswer
- Polls_PollRoles
- Polls_PollSite
The following columns were removed from the CMS_Avatar database table due to updated and simplified User avatar functionality:
- AvatarType
- AvatarIsCustom
- DefaultMaleUserAvatar
- DefaultFemaleUserAvatar
- DefaultGroupAvatar
- DefaultUserAvatar
The following columns were removed from the CMS_FormUserControl database table:
- UserControlShowInBizForms
- UserControlDefaultDataType
- UserControlDefaultDataTypeSize
- UserControlForVisibility
- UserControlType
- UserControlThumbnailGUID
The following columns were removed from the CMS_Layout database table due to page layouts being simplified only for use with administration templates:
- LayoutThumbnailGUID
- LayoutZoneCount
- LayoutIsConvertible
- LayoutIconClass
The following columns were removed from the CMS_PageTemplate database table due to page templates being simplified only for use within the administration interface:
- PageTemplateFile
- PageTemplateIsReusable
- PageTemplateShowAsMasterTemplate
- PageTemplateInheritPageLevels
- PageTemplateHeader
- PageTemplateSiteID
- PageTemplateForAllPages
- PageTemplateIsAllowedForProductSection
- PageTemplateInheritParentHeader
- PageTemplateAllowInheritHeader
- PageTemplateCloneAsAdHoc
- PageTemplateNodeGUID
- PageTemplateMasterPageTemplateID
The WebPartDefaultConfiguration column was removed from the CMS_WebPart database table.
The following columns were removed from the CMS_Widget database (the original widgets can now only be used on administration dashboards):
- WidgetForGroup
- WidgetForEditor
- WidgetForUser
- WidgetForDashboard
- WidgetForInline
The following columns were removed from the CMS_Role database table due to dropped support for community groups:
- RoleGroupID
- RoleIsGroupAdministrator
The UserVisibility column was removed from the CMS_User database table.
The following columns were removed from the CMS_UserSettings database table due to dropped Portal Engine functionality:
- UserPicture
- UserPreferences
- UserBadgeID
- UserActivityPoints
- UserForumPosts
- UserBlogComments
- UserMessageBoardPosts
- WindowsLiveID
- UserBlogPosts
- UserUsedWebParts
- UserUsedWidgets
- UserFacebookID
- UserLinkedInID
- UserAvatarType
The following columns were removed from the CMS_SearchIndex database table due to updated search index functionality:
- IndexIsCommunityGroup
- IndexCrawlerUserName
- IndexCrawlerFormsUserName
- IndexCrawlerUserPassword
- IndexCrawlerDomain
The following columns were modified in the CMS_Site database table due to dropped support for Portal Engine sites:
- SiteDefaultStylesheetID – removed
- SiteDefaultEditorStylesheet – removed
- SiteIsOffline – removed
- SiteOfflineRedirectURL – removed
- SiteOfflineMessage – removed
- SiteIsContentOnly – removed
- SitePresentationURL – no longer allows null values (modified to not null)
The following columns were modified in the CMS_SiteDomainAlias database table due to dropped support for Portal Engine sites:
- SiteDomainDefaultAliasPath – removed
- SiteDomainRedirectUrl – removed
- SiteDomainAliasName – no longer allows null values (modified to not null)
The following columns were removed from the CMS_Transformation database table (transformations are now only intended for use within macro expressions):
- TransformationIsHierarchical
- TransformationHierarchicalXML
- TransformationCSS
- TransformationPreferredDocument
The PersonalizationDocumentID column was removed from the CMS_Personalization database table.
The following columns were removed from the SharePoint_SharePointConnection database table (the SharePoint integration now only supports SharePoint Online):
- SharePointConnectionAuthMode
- SharePointConnectionSharePointVersion
- SharePointConnectionDomain
Content management
- The following columns were removed from the CMS_Class database table due to updated Page type functionality:
- ClassEditingPageUrl
- ClassListPageUrl
- ClassViewPageUrl
- ClassPreviewPageUrl
- ClassNewPageUrl
- ClassDefaultPageTemplateID
- ClassPageTemplateCategoryID
- ClassIsContentOnly
- The following columns were removed from the CMS_Document database table due to dropped support for the Portal Engine development model:
- DocumentNamePage
- DocumentUrlPath
- DocumentShowInSiteMap
- DocumentMenuItemHideInNavigation
- DocumentMenuCaption
- DocumentMenuStyle
- DocumentMenuItemImage
- DocumentMenuItemLeftImage
- DocumentMenuItemRightImage
- DocumentPageTemplateID
- DocumentMenuJavascript
- DocumentMenuRedirectUrl
- DocumentUseNamePathForUrlPath
- DocumentStylesheetID
- DocumentMenuClass
- DocumentMenuStyleHighlighted
- DocumentMenuClassHighlighted
- DocumentMenuItemImageHighlighted
- DocumentMenuItemLeftImageHighlighted
- DocumentMenuItemRightImageHighlighted
- DocumentMenuItemInactive
- DocumentExtensions
- DocumentWildcardRule
- DocumentWebParts
- DocumentRatingValue
- DocumentRatings
- DocumentPriority
- DocumentType
- DocumentUseCustomExtensions
- DocumentGroupWebParts
- DocumentCheckedOutAutomatically
- DocumentTrackConversionName
- DocumentConversionValue
- DocumentHash
- DocumentLogVisitActivity
- DocumentSitemapSettings
- DocumentMenuRedirectToFirstChild
- DocumentInheritsStylesheet
- The following columns were removed from the CMS_Tree database table due to dropped support for the Portal Engine development model:
- NodeCacheMinutes
- NodeDocType
- NodeHeadTags
- NodeBodyElementAttributes
- NodeInheritPageLevels
- RequiresSSL
- NodeGroupID
- NodeTemplateID
- NodeTemplateForAllCultures
- NodeInheritPageTemplate
- NodeAllowCacheInFileSystem
- NodeIsContentOnly
- NodeBodyScripts
- The following columns were removed from the CMS_VersionHistory database table:
- DocumentNamePath
- VersionDocumentType
- VersionMenuRedirectUrl
- The ScopeAllowABVariant column was removed from the CMS_DocumentTypeScope database table.
- The following columns were modified in the CMS_Form database table:
- FormDevelopmentModel – removed
- FormLogActivity – no longer allows null values (modified to not null)
- The LibraryGroupID column was removed from the Media_Library database table due to dropped support for community groups.
- The size of the AlternativeUrlUrl column in the CMS_AlternativeUrl database table was reduced from 450 to 400.
- The TranslationServiceGenerateTargetTag column was removed from the CMS_TranslationService database table.
On-line marketing
- The following database tables were removed:
- Analytics_Conversion (conversions for A/B testing and Campaigns use a different storage format and location)
- OM_ABVariant (A/B testing variants for pages are now persisted in the OM_ABVariantData table)
- OM_MVTCombination (multivariate testing is no longer supported in Xperience 13)
- OM_MVTCombinationVariant
- OM_MVTest
- OM_MVTVariant
- OM_PersonalizationVariant (personalization variants were only stored for Portal Engine content, see Content personalization to learn about personalization on MVC sites)
- Personas_PersonaNode (assigning personas to pages is no longer supported)
- The following columns were modified in the Analytics_ExitPages database table due to updated functionality for exit page logging:
- ExitPageNodeID – removed
- SessionIdentificator – renamed to ExitPageSessionIdentifier
- The ActivityMVTCombinationName column was removed from the OM_Activity database table due to dropped support for multivariate testing.
- The ActivityTypeIsHiddenInContentOnly column was removed from the OM_ActivityType database table due to dropped support for Portal Engine sites.
- The ScoreBelongsToPersona column was removed from the OM_Score database table (the table contains a new ScorePersonaID reference column instead).
- The PersonaScoreID column was removed from the Persona_Persona database table.
E-commerce
- The following columns were removed from the COM_SKU database table
- SKUConversionName
- SKUConversionValue
Social & Community
- The following database tables were removed (the related community features are no longer supported in Xperience 13):
- Board_Board
- Board_Message
- Board_Moderator
- Board_Role
- Board_Subscription
- Community_Group
- Community_GroupMember
- Community_GroupRolePermission
- Community_Invitation
- Forums_Attachment
- Forums_Forum
- Forums_ForumGroup
- Forums_ForumModerators
- Forums_ForumPost
- Forums_ForumRoles
- Forums_ForumSubscription
- Forums_UserFavorites
- Chat_InitiatedChatRequest
- Chat_Message
- Chat_Notification
- Chat_OnlineSupport
- Chat_OnlineUser
- Chat_PopupWindowSettings
- Chat_Room
- Chat_RoomUser
- Chat_SupportCannedResponse
- Chat_SupportTakenRoom
- Chat_User