Release notes - Kentico 12
Kentico 12.0 Service Pack (released June 26, 2019)
The Kentico 12 Service Pack is released in the form of hotfix 12.0.29 (or newer). See the Hotfix instructions to learn how to apply the service pack via the hotfix.
New features
MVC
- New alternative URLs feature for pages on MVC sites. Allows content editors and marketers to make individual pages available under any number of secondary URLs, without requiring changes in the application's routing code. See Enabling alternative URLs for pages and Adding alternative URLs for pages.
- New A/B testing feature for pages on MVC sites, which can be used to optimize content added via the page builder. See A/B testing pages.
- New page templates feature that can be used with pages on MVC sites. Page templates are prepared by the site's developers. Each template defines a specific page layout, which provides a starting point for content editors when creating or modifying pages. Existing pages based on templates can also be saved as new templates, including their page builder content. See Using page templates in MVC and Developing page templates in MVC.
- Added output filtering functionality that automatically resolves all virtual relative URLs on the side of the MVC live site (based on the environment where the site is actually running). This filter prevents content editors from creating invalid links in cases where the code of your MVC application does not explicitly handle resolving of URLs in page content. This functionality was added as part of the previously released hotfix 12.0.26.
- New API that enables intuitive configuration of output caching for pages containing personalized content (using the .NET VaryByCustom output caching feature). See Caching the output of personalized content.
- Boilerplate code added to the MVC project created when installing new MVC sites via the Kentico Installer. The additions consist of placeholder files and code for enabling the page builder and other Kentico features. Moreover, they ensure that first requests made to the MVC site immediately after the installation do not result in an error.
MVC – Page builder
- New API that allows simplified development of page builder components – Widgets, Sections and Page templates. The new development approach removes the need to manually implement a controller and view model for each component.
- New system form components that help create selector properties for page builder components: Media file selector, Page selector, and Path selector. Apart from the added selector form components, developers can also utilize JavaScript APIs to build the selectors within inline editors or custom form components. See Page and media selectors for page builder components.
- Added functionality and API for building modal dialogs, which helps developers implement advanced editors for the properties of page and form builder components. See Developing modal dialogs for builder component properties.
- New feature for page builder sections that allows developers to define section properties. Once the section properties are defined, content editors can adjust the appearance or behavior of the sections through section configuration dialogs.
- New base class for page builder section controllers. Provides a GetPage method that allows developers to access the page containing the currently processed section.
- The system now executes scripts added directly into the view code of page builder sections.
MVC – Form builder
- New File uploader form component that enables users to attach files as part of the submitted form. See Reference - System form components.
- Added the possibility to hide selected form components from the form builder's user interface. See Filtering form components.
- New Component is enabled validation rule for form fields using a component with the bool data type. Validates whether the field is selected or enabled (returns true).
- The system now executes scripts added directly into the view code of form builder sections.
Platform
- Data protection – The Data protection application now allows viewing of all visitors who have given consent agreements for individual consents.
- Macros – New Availability property in the macro rule editing dialog that indicates the intended execution environment of macro rules. Allows developers to hide macro rules for conditions where they would not work correctly (for example when evaluated by MVC live site applications).
- Email queue – When administrators view emails in the queue, the system now displays both the HTML and plain text versions of the message body (if both are specified for the given email).
- UniGrid – Developers can now define button actions within the configuration of UniGrid controls.
- Azure Search – New Fields property added to the event arguments of the CreatingDocument and AddingDocumentValue customization events. The property allows access to the collection of individual Microsoft.Azure.Search.Models.Field objects, enabling developers to modify field values of the corresponding document based on the field's configuration (such as the IsFacetable, IsFilterable flags).
Content management
- Preview – Added option in the Pages application for opening the Preview mode of pages in a new browser tab.
E-commerce
- API – New EcommerceEvents.ProductAddedToShoppingCart global event which can be handled in custom code. Triggers when a customer adds a product to their shopping cart.
On-line marketing
- Marketing automation – Added parameter to the Newsletter subscription marketing automation action, which allows automation steps to be configured to reflect the double opt-in settings of the related newsletter when subscribing. The update changes the parameter definition of the Newsletter subscription action step, which overrides any custom modifications of the step's parameters (for example adding a new field to the definition). If you have locally made such modifications, we recommend creating a separate custom action step (according to the Best practices for customization).
Updates and changes
- A/B testing – The format of the JSON data stored in the CMSAB<test name> cookie was updated due to the introduction of A/B testing for pages on MVC sites. The name of the VariantName data field was changed to VariantIdentifier (the field's value remains the same for tests on Portal Engine sites – the code name of the test variant assigned to the visitor).
- Activities – Updated approach for adding scripts that log page-related activities on MVC sites. Use the new Html.Kentico().ActivityLoggingScript extension method instead of directly loading and rendering scripts via the KenticoLogActivityScript route. The original approach remains functional, but the new extension method is recommended. See Logging activities on MVC sites.
- Azure Search – The Microsoft.Azure.Search NuGet package provided in Kentico projects was updated to version 5.0.3 (both in the Kentico web project and as a dependency of the Kentico.Libraries NuGet package). All existing search implementations should remain functional – the Azure Search SDK does not contain significant breaking changes for this version update. For detailed information, see Upgrading to the Azure Search .NET SDK version 5.
- Countries – The display name of the default Macedonia country was updated to North Macedonia. The code name and country codes remain unchanged.
- Form builder – Removed the option to set the Required flag for form fields using the Checkbox system form component in the form builder properties panel. Use the new Component is enabled validation rule to check whether Checkbox fields are selected.
- LinkedIn authentication – The LinkedIn authentication feature available for Portal Engine websites was updated to use version 2.0 of the LinkedIn API. The original implementation using version 1.0 of the API is no longer supported by LinkedIn (see the Developer Program Updates announcement for details).
- Note: If you are a LinkedIn Partner and use the r_fullprofile permission for your application, you need to manually set the new Requested permissions (scope) setting in Kentico to match the name of the permission: r_fullprofile. See Creating your LinkedIn application.
- Media libraries – All newly created media libraries have their library-level permissions set to Nobody by default (for improved security). Set the permissions according to your site's requirements if you wish to allow users to work with the media library without the administrator privilege level or permissions for the entire Media libraries module.
- Page database structure – The Service Pack adds the DocumentPageTemplateConfiguration and DocumentABTestConfiguration columns to the CMS_Document database table and the related View_CMS_Tree_Joined view. Any custom views, queries or other database objects that rely on the structure of these columns need to be updated.
- Workflow – Most locations in the editing interface of the Pages application no longer offer the option to disable sending of notification emails when moving pages between workflow steps. If required, pages can be moved between workflow steps without notification emails by switching to the Properties -> Workflow tab and clearing the Send notification emails check box.
Fixed issues
- Banner management – Deleting a banner category did not create export delete tasks for the contained banner objects (even when logging of delete tasks for export purposes was enabled).
- Contact management – Editing form data on the Recorded data tab in the Forms application could in rare scenarios cause an unintended update and merging of the on-line marketing contact who submitted the given form record.
Continuous integration – An error occurred when restoring continuous integration data if the repository contained a binding record representing a personal category assigned to a page (cms.documentcategory).
- Custom tables – When running in a web farm environment, web farm synchronization tasks related to certain custom table operations failed (creating or deleting a custom table, deleting a custom table data item).
- Customization – Under certain circumstances, custom implementations of system services registered using the RegisterImplementation attribute were overridden by their default system implementations.
- Groups – The Group selector on the Media libraries tab of the media and link selection dialogs did not evaluate group read permissions correctly on instances containing multiple sites (each with its own groups).
- E-commerce – If a product was added to a customer's shopping cart automatically as a result of a Buy X Get Y discount, the system incorrectly logged web analytics conversions specified via the Add to shopping cart conversion name e-commerce setting. Such conversions are no longer logged for automatically added products after applying the Service Pack.
- Form builder (MVC) – If the Maximum length validation rule was assigned to a form field with a lower value than the used form component's database column size constraint, the validation error messages for users incorrectly displayed the higher database constraint limit (instead of the actual limit specified by the validation rule).
- Form builder (MVC) – Form validation error messages were displayed incorrectly when the validation failed for multiple rules assigned to a single field.
- Form engine – Form field data macros entered within the field editor were not resolved correctly and errors occurred in special cases when the form used a custom layout of the ASCX type.
- Forms – The option to set a custom submit button image was not available for forms on MVC sites (the Submit button image setting was not displayed when editing forms on the General tab in the Forms application).
- Import toolkit – The Import Toolkit utility incorrectly caused logging of staging and web farm synchronization tasks when running a simulated import of data (if staging and/or web farms were enabled on the target instance).
- Installation – An error occurred during the installation if the Register to IIS option was enabled, and the selected IIS Website did not contain at least one Site Binding of the 'http' type (for example when the only binding was of the 'https' type).
- Installation – After installing an MVC site into an existing instance, the system did not ensure that web farm functionality was enabled and started correctly. This could lead to issues in the administration interface, for example not being able to switch to the new site in the main site selector until the application was restarted.
- Installation – If an installation using the MVC development model was configured to install a site into an existing project of the web site type, and the target location was then changed to install a new independent MVC project, the installer incorrectly created a Kentico administration project of the web site type (instead of the web application type which should always be used for MVC installations).
- Installation – If an installation process that was in progress got cancelled by a user and then restarted, the subsequent installation failed unless the entire Installer application was relaunched.
- Installation – Installing a new MVC site with a hyphen ('-') character in the site name created an MVC project with invalid code that could not be compiled.
- Marketing automation – An error occurred when a marketing automation process ran the Newsletter subscription step with the Unsubscribe from newsletter action selected.
- Object versioning – Clicking the Reset button of the object filter in the Recycle bin application did not correctly refresh the list of deleted objects.
- On-line marketing – Logging of web analytics and contact activities did not work when a page was displayed after a visitor authenticated through a LinkedIn account using the LinkedIn logon web part.
- Page types – After cloning a page type with child query objects, the cloned queries had invalid names that could not be re-saved.
- Performance – Redundant database queries were called during application start when loading the system's data classes (object types, page types, etc.). The process was optimized to reduce the volume of loaded data.
- Personas – An error occurred when cloning persona rules that were calculated at least once for the given persona.
- Web farms – When running in a web farm environment, images uploaded to a form through a field using the Upload file form control with automatic resizing configured were synchronized to other web farm servers in their original size, before the resizing was performed.
Additionally, all bugs fixed within Kentico hotfixes 12.0.28 or older are included in the Service Pack. See the Bugtracker on DevNet for a full list (click Fixed Bugs).