Kentico 8.2 (January 6, 2015)
System requirement changes
- The minimum recommended memory size for hosting plans was increased to 1 GB.
- Microsoft Azure SDK 2.5 required for Microsoft Azure projects.
- Shipping options - Easier way to develop custom shipping options including UI-based configuration (for example "Fedex" or "Shipping charge based on a country" as custom modules).
- Shipping options - Easier way to develop custom UI-based configuration for the availability of shipping options (for example a custom UI to configure shipping option availability based on a date/time/country/ZIP code etc.).
- Shipping options - Store managers can set up the mass unit for the store. The mass unit is used for the weight of products and also in the default shipping options based on the weight of products.
- User experience - Minor user experience improvements in the Products application.
- User experience - Products can be now filtered using the SKU identifier in the SKU selection dialogs.
- User experience - Orders can be now filtered using the customer's email address in the Orders application.
- Upgrade - The upgrade to Kentico 8.2 can be performed with a separated on-line marketing database.
- Contact management - You can now import contacts stored in CSV files into Kentico.
- Email marketing - New emails are now composed in the same window instead of a popup window. This results in more editing space for marketers.
- Activities - The system now informs administrators via Event log entries when activity processing takes too long. Administrators are then advised to increase the activity logging interval.
- Contact groups - Performance was significantly improved by the use of smart filtering. Only contact groups that have been affected by relevant contact activities are recalculated.
- Personas - Recalculation was optimized to improve performance.
- Geolocation - Updated the MaxMind GeoIP database used for to version 2.12.2014.
- New demo site - A new site that showcases the capabilities of the Kentico Integrated Marketing Solution. The site also serves as a reference for Kentico's best practices for modern responsive websites.
- SharePoint - New support for bi-directional synchronization of files between Kentico and SharePoint.
- Translation management - Content managers can now translate content to multiple selected languages or all languages at once.
- Translation management - The performance of translation processing was improved.
- Kentico improvement program - New optional mechanism for collecting and sending of anonymous data about the system's usage. Helps guide the development of future versions by targeting features that are most used.
- Modules - New way to deploy custom modules using NuGet packages.
- Modules - Fields without a database representation can now be added directly when creating new module classes.
- Settings - After changing the data type of custom setting keys, the system now replaces existing values with the default value.
- Settings - When creating custom settings, you can now enter explanation text that appears directly below the setting in the Settings application.
- Form controls - The administration interface of the Form controls application is now mostly based on page templates instead of physical pages (listing, new and edit pages).
- Form controls - New Multiple object binding control form control that allows users to select related objects (for example selection of discounted products for a given Buy X, Get Y discount).
- Staging - The interface of the Staging application was slightly improved.
Staging - Target staging servers now require a password to be set.
Visual Studio publishing - Simplified publishing for both Web site and Web application projects. Added support for more precompilation options.
- User site prefixes - When using site prefixes for user names (Security & Membership -> Use site prefix for user names setting), global administrators can now create users with the prefix of the currently active site by enabling the assign to website checkbox in the new user form.
Fixed issues (major)
- Active Directory import - The import no longer changes the GUIDs of existing users or roles. Instead, the tool can delete Kentico users or roles that don't have an AD object with a matching GUID, and then import the given objects again.
- API - DocumentQuery and MultiDocumentQuery now handle advanced constructions correctly (aggregate columns etc.).
- Banner management - Fixed the redirection of visitors for banners that have URLs without the HTTP protocol.
- Database objects - Saving changes made to an indexed view no longer causes errors.
- Debug - Deleting a cache item from the View object dialog now correctly displays a confirmation message.
- Form controls - The 'Time selector' form control no longer stores the current date, which allows correct comparison of values. The date component of the values now always uses DateTime.MinValue.
- Localization - Resource strings placed inside page layouts are now resolved into the correct culture.
- Macros - The 'WhereItemInPath' macro now works correctly if the given alias path contains an underscore character (_).
- Macro editor - Fixed the positioning of the macro autocomplete help.
- Modules - Fixed the back arrow in the module settings interface.
- On-line users - Caching of on-line users is now thread-safe.
- REST - Fixed the handling of requests for non-existing pages through REST. The 404 HTTP status code is now returned.
- Scoring - Rules with the 'Contains' condition in the URL referrer field are now automatically evaluated.
- Smart search - Indexing was enabled for the SKUShortDescription field of the SKU class.
- Staging - Synchronizing a subtree in the Staging application now also synchronizes all staging tasks related to the given items.
- Staging - Synchronization tasks are now displayed correctly for multilingual pages.
- Staging - Multiple campaigns associated with a single conversion are now synchronized correctly.
- Staging - The creation of a DELETEDOC synchronization task now removes UPDATEDOC tasks previously logged for the given page.
- Time zones - Fixed recalculation of time zone rules during import.
- User interface - Fixed the positioning of asynchronous progress log dialogs.
Additionally, all bugs fixed within the Kentico 8.1 hotfixes are included in version 8.2. See the Bugtracker on DevNet for a full list (select Fixed Bugs).
Breaking changes (API, functionality and data structure)
- Removed support for global shipping options, i.e. it is not possible to share shipping options across multiple stores running on a single Kentico instance.
- When upgrading to Kentico 8.2, global shipping options are automatically copied to each site that is configured to use global shipping options.
- When deleting a product page, users are no longer asked what to do with the assigned SKU.
- When the SKU is not contained in any order and is not assigned to any other page, the SKU is automatically deleted. Otherwise, the SKU remains in the system.
- The Bundle items selector form control is obsolete. Use the Multiple object binding control instead.
- Email marketing:
- The Newsletters application was renamed to Email marketing. This also applies to certain related web parts.
- The 'Newsletter queue' tab was hidden from the Email marketing application and will be removed completely in Kentico 9.0. The same functionality is available in the Email queue application.
- The 'Import subscribers' and 'Export subscribers' functionality is now under the 'Subscribers' tab.
- Email campaigns are no longer sent to user subscribers when the user is disabled. The same applies for users added via user roles.
- The ~/CMSPages/WebAnalyticsService.asmx/LogSearch web service endpoint with two parameters (keyword, pageGUID) was removed. Use the method with three parameters (keyword, pageGUID, pageSiteId) instead. Originally, there were two methods with the same name and a different signature, which is a scenario not supported by web services.
- Basic repeater with effect
- Query repeater with effect
- Zones with effect
- Repeater with effect
- Repeater with Carousel
- Repeater with Lightbox
- Attachments Carousel 3D
- Attachments Carousel
- Custom table repeater with effect
- Page attachments with effect
- Smart search for pages doesn't index personal categories when the 'Include categories' is enabled for Allowed content.
When creating or modifying page aliases through the API, make sure to call TreePathUtils.GetSafeUrlPath() for the custom AliasURLPath to ensure a correct format based on the current URL settings.
Social & Community
- Google plus - The Google+ web parts were updated from old unsupported API versions to the latest recommended format. The property definitions of the web parts changed, since Google now offers different customization options.
- The following stored procedures were removed:
- The Proc_CMS_WebFarmTask_Insert stored procedure was modified.
- The return type of protected methods ContentPersonalizationVariantInfoProvider.LoadContentPersonalizationVariantsInternal() and MVTVariantInfoProvider.LoadMVTVariantsInternal() changed from void to bool.
- The ThreadQueueProcessor class was removed without any replacement. The general functionality is now contained in the ThreadQueueWorker class and the related web farm functionality in the UrlWebFarmUpdater and DbWebFarmUpdater classes.
- Unused calendar icons were removed from the CMS\CMSAdminControls\Calendar folder.
- A new method was added to the ITableManager interface (any custom classes that implement the interface need to be updated).
- The JsonWebTokenClaims class was changed to internal.
The CMS.EventLog.EventLogHelper.mLogFile variable was made private. Use the public LogFile property instead.
- The following obsolete properties were removed from the CMS.UIControls namespace:
- The CMS.Base.ThreadItemsDictionary and CMS.Base.ThreadItems classes were removed from the public API.
The CMS.Tests.AutomatedTests.LockContext and CMS.Tests.AutomatedTests.UniqueStaticContext properties were removed (they must always have true values).
The ObjectTypeInfo.HostedByObjectType and ObjectTypeInfo.HostedObjectTypes properties were removed.
Static collections AbstractProvider.Providers and AbstractProvider.CompleteProviders were made private (from protected).
- The MediaLibraryHelper.GetFolderDataSet() method was removed without any replacement. The MediaLibraryHelper.GetTaskData(TaskTypeEnum, System.Int32, System.String, System.String) can be called instead.
- The last parameter of the TranslationServiceHelper.CreateSubmissionInfo(CMS.TranslationServices.TranslationSettings, CMS.TranslationServices.TranslationServiceInfo, System.Int32, System.Int32, System.String) method was changed due to a typographical error.
- The CMS.DocumentManager.WorkflowManager.MoveToPreviousStep(TreeNode, WorkflowStepInfo, string) method was renamed to CMS.DocumentManager.WorkflowManager.MoveToPreviousSpecificStep(TreeNode, WorkflowStepInfo, string) due to collisions with the signatures of the WorkflowManager.MoveToPreviousStep() method.
The signatures of the following methods were changed:
8.1 Signature 8.2 Signature
BaseInfo.GetDefaultDataWhereCondition(Boolean, Boolean, IEnumerable<string>)
BaseInfo.AddDependencyDefaultDataWhereCondition(String, BaseInfo, String, Boolean, String, String)
BaseInfo.AddDependencyDefaultDataWhereCondition(String, BaseInfo, String, Boolean, String, String, IEnumerable<string>)
BaseInfo.AddColumnPrefixesWhereCondition(String, String, IEnumerable<string>)
TreeProvider.InitNodeOrders(Int32) TreeProvider.InitNodeOrders(Int32, Int32) TreeProvider.SortNodesAlphabetically(Int32, Boolean) TreeProvider.SortNodesAlphabetically(Int32, Int32, Boolean) TreeProvider.SortNodesByDate(Int32, Boolean) TreeProvider.SortNodesByDate(Int32, Int32, Boolean)
Kentico 8.1 (August 22, 2014)
System requirement changes
- Removed support for hosting in Medium trust environments.
- Microsoft Azure SDK 2.3 required for Microsoft Azure projects.
- Added Microsoft SQL Server 2014 support for the database.
- Windows 7 and Windows Server 2008 R2 systems now require Service Pack 1 to be applied.
Documents were renamed to Pages in the administration interface. Keywords in the API and code names remain the same for backward compatibility.
- Performance - Improved performance for websites with a very large number of pages.
The editor toolbar is hidden until focus enters an editable region. After that the editor toolbar is displayed next to the region.
- The default editor toolbar contains a reduced set of options and is less confusing.
- Code generators - Provide an easy way to generate classes for accessing content data through the API (page types, custom tables, forms).
- 51Degrees library - Upgraded to version 22.214.171.124.
- Buy X, Get Y discounts - Allow store managers to define a new type of cross-selling promotions. For example, Buy any 3 clothing articles, get the cheapest for free.
- User experience - Orders and Discounts are now marked with colored tags based on their statuses.
- Performance - Significantly improved recalculation speed and live site traffic of contact groups, scoring, and personas.
- Geolocation - Updated the Maxmind GeoIP database used for .
- Activity events - Changed the recommended way of handling "activity logged" events in the API. If you have custom handlers for the ActivityEvents.ProcessActivity or ActivityEvents.ProcessActivities events, use the ContactManagementEvents.ProcessContactActionsBatch event instead.
- Individual users can now customize their system dashboard (add, remove, relocate application tiles).
- Application tiles on the dashboard now support displaying of live data.
- New HTML5 multifile uploader instead of the Silverlight uploader.
- Macro rules - Added support for escaping special string characters inside the values of text macro rule parameters.
- Automatically generated queries now use column names enclosed in square brackets.
- Added new where condition methods (WhereGreaterThan, WhereGreaterOrEquals, WhereLessThan, WhereLessOrEquals, WhereEndsWith, WhereNotEndsWith, WhereNotEquals).
- Added support for strongly typed columns (column, expression, value).
- API - New method for safe HTML attribute encoding (HTMLHelper.EncodeForHtmlAttribute).
Social & Community
- LinkedIn - New application for managing LinkedIn company profiles from Kentico. Includes analytics.
- SharePoint - New connector for SharePoint 2010, 2013 and SharePoint online.
Fixed issues (major)
- Debug - Optimized memory consumption.
- Design - Fixed several minor design issues in the administration interface.
- Design - Unified the position of site selectors in the administration interface – they are now on the right side of the header action buttons (with the exception of selectors in left menus).
- Design - Header action filters were moved into the content of pages in the administration interface.
- Design - The asp:GridView control was removed from skin files.
- Design - Fixed the design and positioning of tooltips in the macro autocomplete help.
- Design - Images in the database web installer were replaced by font icons.
- Design - Unused E-commerce related styles were removed from CMSDesk.css.
- DocumentQuery - The Immutable method was fixed for the DocumentQuery and MultiDocumentQuery classes.
- E-commerce - The Shopping cart contains product order discount rule was disabled. A new, more flexible rule Shopping cart contains products (any/all) was introduced.
- E-commerce - Added a foreign key constraint for the CouponCodeDiscountID column in the COM_CouponCode table.
- E-commerce - Removed a redundant WHERE condition generated by the Top N products by sales web part.
- E-mail engine - Improved stability for e-mail sending.
- jQuery - Unified the usage of jQuery in the system (web parts, administration interface). Solves most of the issues when combining two versions of jQuery in the site content.
- Macro data source web part - Added properties for configuring caching.
- ObjectQuery - The 'Count' property now returns the correct number of items for paged queries.
- ObjectQuery - The 'Distinct()' method now works correctly for paged queries.
- On-site editing - The Edit page button now uses the content culture instead of the preferred UI culture of the current user.
- Page paths - Page path selectors no longer save special characters in SQL encoded format (for example _ instead of [_]).
- Pages - Changing the initial workflow step for page creation is now supported in the DocumentEvents.Insert event.
- Performance - Optimized performance for object deletion.
- Performance - Added a database index to increase the speed of contact group recalculation.
- Smart search - Improved reliability and stability when running on Microsoft Azure.
- Strands Recommender - Fixed the format of the product catalog feed generated by Kentico (including multilingual support).
- UI elements - Fixed unwanted element reordering after the renaming of a UI element.
- WebDAV - Removing the WebDAV module from the installation resulted in errors during the compilation of the solution.
Additionally, all bugs fixed within the Kentico 8 hotfixes are included in version 8.1. See the Bugtracker on DevNet for a full list (select Fixed Bugs).
Breaking changes (API and HTML output code)
- The CMS.DataEngine.ClassMappingInfo and CMS.DataEngine.ClassMappingInfo classes were removed from the public API (not intended for external use).
- Certain overloads of the MacroCompatibility.TransformToDataMacros() method were removed from the public API (not intended for external use).
- The return value of the DocumentEngine.TreeProvider.SetNodeOrder method was changed from int to void. Use the NoderOrder property of the given TreeNode object to get the node order value.
- The DocumentEngine.DocumentNodeDataInfo and DocumentEngine.DocumentNodeDataInfoProvider public classes were made internal (not intended for external use).
The DocumentEngine.DocumentURLProvider.UseLiveURLForEditing property was removed. Pages with MVC templates always automatically use the live URL in Kentico 8.1.
- The first parameter of the CMS.Ecommerce.DiscountInfoProvider.IsUserAuthorizedToReadDiscount method was renamed from siteName to site and now accepts both site ID and site name values.
The CMS.Base.AzureHelper.TempPath and CMS.Base.AzureHelper.CachePath properties were moved to CMS.AzureStorage.PathHelper:
The following members were removed from the public DataQuery API (not intended for external use):
- CMS.DataEngine.QueryMacros CMS.DataEngine.DataQuerySettingsBase<TQuery>.GetExpressions()
- The NodeChildNodesCount column was removed from the CMS_Tree database table, replaced by NodeHasChildren (bit data type). To get the number of child nodes in the API, use TreeNode.Children.Count.
The ContactGroupScheduledTaskID column was removed from the OM_ContactGroup table. You can use the ContactGroupRebuildTaskManager class in the API to manage planned contact group recalculations.
- The CMSLogActivityImmediatelyToDB web.config key was removed and no longer affects on-line marketing functionality. This key was only intended for showcase purposes.
- The LinkedIn apply with web part was removed (LinkedIn no longer supports this functionality).
- Inline styles in the output of the UniGrid control were replaced by CSS classes. May influence live site pages that rely on the inline styles.
- The system generates information messages on the live site with simpler HTML markup (now the same as in Kentico 7).
- The file uploader control has different output HTML, because the Silverlight uploader was replaced by an HTML 5 uploader.
- The markup of the Tasks.ascx live site control used for displaying project management tasks has slightly changed. The FloatLeft CSS class was removed from the div element containing the task listing.