---
title: Release notes - Kentico 9
related:
  - https://docs.kentico.com/k9/installation/upgrading-to-kentico-9.md
  - https://docs.kentico.com/k9/installation/server-and-hosting-requirements.md
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

## Kentico 9.0 (released November 23, 2015)

## System requirement changes

- The minimum required version of Microsoft .NET Framework is now **4.5**
- The Kentico application in IIS must now use an _Application Pool_ with _Managed Pipeline Mode_ set to _**Integrated**_. Classic mode is no longer supported.
- Microsoft Azure SDK **2.7.1** required for Microsoft Azure projects.
- Removed support for Microsoft SQL Server 2008.

## New features

### Platform

- [Continuous integration](https://docs.kentico.com/k9/developing-websites/preparing-your-environment-for-team-development/setting-up-continuous-integration.md) - New feature that helps developers cooperate when developing sites and applications in a team environment.
- [Staging](https://docs.kentico.com/k9/deploying-websites/content-staging.md) - Users can now define groups for organizing staging tasks and switch to the context of a specific task group when working in the administration interface. The system then categorizes any staging tasks logged for the user's changes under the given group.
- Staging - The data of each staging task now includes the name of the user who performed the change represented by the task.
- Staging - Added filtering to the lists of tasks in the Staging application. The filtering options include the user footprint and task groups.
- [Module installation packages](https://docs.kentico.com/k9/custom-development/creating-custom-modules/creating-installation-packages-for-modules.md) - Added support for automatic installation of database objects. When a custom module is installed from a NuGet package, the required database objects are now imported automatically during the next web request.
- Module installation packages - Modules installed from NuGet packages can now be updated to newer versions or uninstalled, including database objects.
- Module installation packages - Page types can now be assigned to a module, which includes them in the module's installation packages.
- Module export - Developers can choose whether modules become sealed during export. Allows further development of the module after import.
- Web farms - Improved and streamlined the [web farm synchronization mechanism](https://docs.kentico.com/k9/configuring-kentico/optimizing-website-performance/setting-up-web-farms/configuring-web-farm-servers.md).
- Object listings - Drag and drop support added to the listing interface for most object types that have a defined order.
- Localization - Added support for [site-specific resource strings](https://docs.kentico.com/k9/multilingual-websites/setting-up-a-multilingual-user-interface/creating-site-specific-resource-strings.md).
- [Form controls](https://docs.kentico.com/k9/custom-development/developing-form-controls.md) - New interface that allows users to find all objects in the system that use a given control in their form.
- Application dashboard - The interface now allows pinning (adding) of individual objects to the [application dashboard](https://docs.kentico.com/k9/using-the-kentico-interface.md#adding-applications-and-objects-to-the-applications-dashboard), for example [Forms](https://docs.kentico.com/display/K9/Forms) or [Campaigns](https://docs.kentico.com/display/K9/Tracking+campaigns).
- Security - The system now uses security tokens to protect pages against [Cross site request forgery](https://docs.kentico.com/k9/securing-websites/developing-secure-websites/cross-site-request-forgery-csrf-xsrf.md) attacks.
- The _Cache files (minutes)_ setting now specifies the caching interval for Microsoft Azure CDN.
- DataQuery API ([ObjectQuery](https://docs.kentico.com/k9/custom-development/retrieving-database-data-using-objectquery-api.md), [DocumentQuery](https://docs.kentico.com/k9/custom-development/working-with-pages-in-the-api.md)):
  - The _WhereIn_ method can now work with collections of GUID values.
  - Improved how the _WhereIn_ method works with parameters containing nested queries. The type of the nested query is automatically determined based on the returned column.
  - Added advanced options for identifying target database tables using _QuerySourceTable_ objects. Allows you to specify aliases and [SQL Hints](https://msdn.microsoft.com/en-us/library/ms187713.aspx).
  - New method for performing [CAST](https://msdn.microsoft.com/en-us/library/ms187928.aspx) operations for database columns _(QueryColumn_ objects).
  - New method for performing the [ISNULL](https://msdn.microsoft.com/en-us/library/ms184325.aspx) function for columns.
  - New methods for working with XML data stored within columns.

### Content management

- Performance - Improved performance for:

  - Loading of page data by listing and menu web parts.
  - Displaying of data on multilingual sites that use the _Combine with default culture_ setting.
  - Other page-related operations.
- Page types - You can now create "Content only" page types. Content only page types are suitable for pages [on MVC sites](https://docs.kentico.com/display/K9/Developing+sites+using+the+MVC+framework) whose only task is to hold content, such as individual news articles. Content only pages aren't based on page templates and don’t contain presentation properties and tabs. This allows content editors to use the pages without unnecessary distractions. These page types have a  _URL pattern_  property that allows you to specify their presentation URL pattern. This way, you can allow content editors to view the content of content only pages via the administration UI.
- Pages - You can now add 'Page' fields to specific page types. Such fields allow you to [create content structures](https://docs.kentico.com/k9/developing-websites/defining-website-content-structure/page-types/advanced-content-modeling.md) consisting of not only standard fields, but also the data of other pages.
- Attachment history - Page attachment history is now saved according to the 'Settings (application) -> System -> Files -> Store files in' setting. This allows you to lower the overall size of the system database. The settings are shared with published versions of attachments. You can [force the system](https://docs.kentico.com/k9/installation/upgrading-to-kentico-9.md#page-attachment-history) to ignore the setting for attachment history and keep storing the data in the database.
- Site management - You can now add a 'Presentation URL' when editing your site. Use this property if you're running your site on a different domain than the domain you run your Kentico application on. This is useful, for example, when using a separate MVC application for your site that you host on a different domain.
- [Smart search](https://docs.kentico.com/k9/configuring-kentico/setting-up-search-on-your-website.md) - The _SearchResultUrl_  [transformation method](https://docs.kentico.com/k9/configuring-kentico/setting-up-search-on-your-website/displaying-search-results-using-transformations.md) now contains an optional _addLangParameter_ bool parameter. The parameter adds a culture specific query parameter to the returned URL if more than one culture version of the page exists. True by default.
- MVC - You can now use a new [site template](https://docs.kentico.com/k9/configuring-kentico/managing-sites/installing-new-sites/creating-new-sites-from-templates.md) to create sites that use an [MVC application](https://docs.kentico.com/k9/developing-websites/developing-sites-using-asp-net-mvc.md) for their presentation.
- Web parts - New interface that allows users to find all locations where a given web part is used.
- Forms - The [Form builder](https://docs.kentico.com/k9/managing-website-content/forms/designing-forms-using-the-form-builder.md) interface now displays status messages whenever the system automatically saves changes made to the form's fields.
- Localization - New _Language data source_ web part.
- Editable text regions - The _Editable text_ web part has a new property that determines whether HTML encoding is used for the text value when working in _Text box_ or _Text area_ mode.
- [51Degrees library](https://docs.kentico.com/k9/developing-websites/developing-websites-for-mobile-devices/configuring-mobile-development.md) - Upgraded to version 3.2.4.4.

### On-line marketing

- [Campaigns](https://docs.kentico.com/k9/on-line-marketing-features/web-analytics/tracking-campaigns.md) - The campaign tracking cookie expiration time was increased. The cookie is now valid for a long enough interval that campaign tracking is active until the cookie is deleted by the visitor or overwritten by a different campaign tracking cookie.
- [Campaigns](https://docs.kentico.com/k9/on-line-marketing-features/web-analytics/tracking-campaigns.md) - The Campaigns application was completely redesigned. You can now add pages as campaign assets. The assets are then automatically tracked and form a campaign funnel, which allows you to better track visitor progress in your campaigns.
- [Contact management](https://docs.kentico.com/k9/on-line-marketing-features/contact-management/working-with-contacts/configuring-contact-recognition.md) - The way Kentico recognizes contacts on the site has changed to best accommodate the most typical B2C and B2B scenarios.
- [Contact management ](https://docs.kentico.com/k9/on-line-marketing-features/contact-management/working-with-contacts/setting-up-automatic-deletion-of-contacts.md)- The automatic contact deletion settings were simplified. The settings now cover the most typical scenarios. Also, to preserve the performance of a website, the system now deletes only 1000 contacts at a time and reschedules the rest to off-peak hours (between 2 and 6 a.m. by default).
- [Email marketing](https://docs.kentico.com/k9/on-line-marketing-features/email-marketing.md) - Recipients can now opt-out of all email marketing communication. You can [configure the opt-out](https://docs.kentico.com/k9/on-line-marketing-features/email-marketing/integrating-email-marketing-campaigns-into-sites.md#allowing-recipients-to-unsubscribe-from-email-campaigns) to work across all sites or a single site only.
- Email marketing - Unsubscription links sent via the _Unsubscription request_ web part are no longer affected by the 'Opt-out list' site setting as they don't expire anymore.
- Email marketing - You can now specify [UTM parameters](https://docs.kentico.com/k9/on-line-marketing-features/email-marketing/working-with-email-campaigns/writing-static-campaign-emails.md#tagging-email-links-with-utm-parameters) that will be used in links in your campaign emails.
- [Online marketing macros](https://docs.kentico.com/k9/on-line-marketing-features/on-line-marketing-macros.md) - A new _FilledFormFieldWithValue_ macro method was added. The macro evaluates whether a visitor entered a specific text value into a form field. The method is used in Scoring, Persona and Contact group condition builders.
- [A/B tests](https://docs.kentico.com/k9/on-line-marketing-features/optimization-testing/a-b-testing-website-pages.md) - How-to videos were added to the main screen of the A/B tests application and to the Overview tab of a specific test. The videos were added to help users when using the functionality for the first time.
- [Contact management](https://docs.kentico.com/k9/on-line-marketing-features/contact-management/working-with-contacts.md) - How-to videos were added to Contact management -> Contact import. The video was added to help users when using the functionality for the first time.
- [Marketing automation](https://docs.kentico.com/k9/on-line-marketing-features/marketing-automation.md) - You are now able to delete running marketing automation processes. Previously, you had to remove all contacts from a process before deleting it.

### E-commerce

- [Abandoned cart marketing automation](https://docs.kentico.com/k9/on-line-marketing-features/marketing-automation/walkthrough-sending-an-automated-reminder-of-an-abandoned-shopping-cart.md) - Kentico now enables store managers and marketers to automate marketing processes related to abandoned shopping carts. For example, the system can send email notifications to all customers who abandon their carts. That leads to customers repeatedly visiting the store and possibly completing their orders.

## Fixed issues (major)

- Macros - The timeout limit for resolving of macros now applies correctly (by default 1 second). If you encounter problems with timed out macros, you can set a longer timeout by adding the _|(timeout)_ parameter to individual expressions, for example _|(timeout)10000_.
- Scheduled tasks - Fixed the sliding of scheduled task run times. The system now calculates the next run time based on the time for which the previous run was originally scheduled. The actual start time of the task and the execution duration no longer have any effect.
- Email queue - The retry policy for sending emails (both regular and campaign emails) changed to minimize the chances that failed emails get stuck in the queue. The Email queue keeps attempting to send failed emails every minute for the first hour after the first failed attempt.
- Geomapping - The Bing and Google map web parts now work with protocol-relative URLs.
- E-commerce - The _ECommerceContext.CurrentCustomer_ property now always points directly to the _CurrentShoppingCart.Customer_ property. Previously, the _ECommerceContext.CurrentCustomer_ property could have lead to different properties in certain cases.
- API - Fixed exceptions that could occur when calling the _ValidationHelper.GetBoolean_ method with unconvertible input.
- Field editor - Added validation for the names of primary identifier fields (for custom Classes, Page types, Custom tables, Forms, etc.).
- Portal engine - The HTML head section no longer combines head sections from multiple master pages before the closest master page in the tree is saved on the Master page tab for the first time.
- Pagination - When using a query string parameter for pagination, the system now hides the parameter on the first page.

> **Info:** Additionally, all bugs fixed within the Kentico 8.2 hotfixes are included in version 9. See the [Bugtracker on DevNet](http://devnet.kentico.com/download/hotfixes) for a full list (click **Fixed Bugs**).

## &#x20;Breaking changes (functionality, data structure, API)

### Platform

- [Web farm](https://docs.kentico.com/k9/configuring-kentico/optimizing-website-performance/setting-up-web-farms.md) synchronization mechanisms were removed, including the _Synchronize web farm changes_ scheduled task. Instead, web farms can now be disabled, run automatically, or configured manually. See [Configuring web farm servers](https://docs.kentico.com/k9/configuring-kentico/optimizing-website-performance/setting-up-web-farms/configuring-web-farm-servers.md) for more information.
- The backward compatibility of the [Import](https://docs.kentico.com/k9/deploying-websites/exporting-and-importing-sites/importing-a-site-or-objects.md) feature is now restricted to the previous major version or newer (i.e. only packages created on Kentico 8 or newer can be imported on Kentico 9).
- The _Deploy to Azure_ function of the [Kentico Installation Manager](https://docs.kentico.com/k9/external-utilities/kentico-installation-manager.md) utility was removed. Use the _Publish_ feature in Visual Studio to deploy Azure projects.
- The markup of the _Logon form_ web part was changed from a table to a DIV based layout.
- Certain resource strings used by the _Logon form_ web part were moved from the code behind to the markup to improve customization options.
- Postbacks no longer add the _.aspx_ extension to the URL by default. If you need to force adding of the extension, set the _CMSUseExtensionOnPostback_ web.config key to true. The related property in the code became obsolete.
- The _\~/CMSMessages/Error.aspx_ and _\~/CMSMessages/Information.aspx_ system pages now only display content if the URL contains a valid hash. Custom links to these pages will no longer work. However, you can use the API in your custom code to generate valid links – call the _UIHelper.GetErrorPageUrl_ or _UIHelper.GetInformationUrl_ methods respectively.
- The object type order used during export/import can no longer be overridden using the _\~/App\_Data/CMSModules/ImportExport/objecttypes.txt_ file.
- Removed all API example files from the _\~/CMSAPIExamples_ folder of projects. You can now view the example code [online](https://docs.kentico.com/display/API9), or in the _CodeSamples\APIExamples_ folder within your setup file directory.

### Content management

- Removed _GetAmazonFile.aspx_, _GetAzureFile.aspx_, _GetCSS.aspx_, _GetFile.aspx_, _GetMetaFile.aspx_, _GetResource.ashx_, and _GetMediaFile.aspx_ files, which were used to retrieve data. Modification of the these files is no longer possible because their implementation was moved into internal libraries.
- Removed support for several web parts and widgets that were present in previous versions of Kentico (for example the _Document library_ and _Drop-down menu_ web parts). [See the complete list](https://docs.kentico.com/k9/installation/upgrading-to-kentico-9/recovering-abandoned-features-web-parts-and-widgets.md) of abandoned web parts and widgets.
- The Trackback and Meta Weblog API features for blogs were removed.
- The recommended approach for creating MVC sites is now different. Make sure you see the [upgrade instructions](https://docs.kentico.com/k9/installation/upgrading-to-kentico-9.md) if you use the _CMSApp\_MVC_ project for your MVC development.
- Kentico 9 supports only ASP.NET MVC 5.2 and higher versions for pages that have a controller and action specified in the Kentico administration interface. Pages served by .NET Routing (routes defined in RouteConfig.cs) still support all versions of ASP.NET MVC.
- Default page type and custom table transformations are no longer generated automatically. The default transformations now only contain code for evaluating the fields in the object without any additional markup.
- The system no longer converts URLs inside CSS stylesheets from relative to absolute by default when serving the CSS code to browsers. If your application had the _CMSUseAbsoluteCSSClientURLs_ web.config key set to false, your physical stylesheets may contain relative URLs that start from a different folder path than the actual location of the stylesheet file. Such URLs are no longer valid – use the file location as the starting point for relative URLs.
- The _Parent_ property of page child objects (for example attachments) in macros no longer returns full data of the TreeNode class. Such _Parent_ macro properties now return a partial set of data, typically only the data of a specific language version of the page.
- The  _CMSProcessTrailingSlashForFile_ web.config key is no longer necessary and was removed. The system now processes attachment URLs both with and without the trailing slash.
- All controls with the _ResourcePrefix_ property were unified to contain a resource string prefix in their name. For example, _control.somestring_ is now _prefix.control.somestring_. This was done to unify the behavior and avoid potential collisions when a prefix was replaced.
- The application no longer processes URL routes with custom extensions (anything other than extensionless or .aspx) by default. If you use custom extensions in _Route_ or _MVC_ type URL paths of pages or in routes registered using custom code, you need to add the __ configuration to your web.config file. See [Extensionless and custom URLs](https://docs.kentico.com/k9/configuring-kentico/configuring-page-urls/extensionless-and-custom-urls.md) for details.
- Kentico no longer supports the following URLs for retrieving files and images: _/getimage/node/alias/path/filename.extension{.aspx}_ and _/getfile/node/alias/path/filename.extension{.aspx}._
- The _CMSStoreFilesInFilesystem_ and _CMSStoreFilesInDatabase_ settings were removed. You may use new the _CMSFilesLocationType_ setting with its _CMS.Helpers.FilesLocationTypeEnum_ enumeration. The removed settings are converted into the new one when performing an upgrade or an import from an older version.
- The _\CMS\CMSModules\Categories\Controls\Categories.ascx_ control used in the Categories application, User categories administration interface and in the _My profile_ web part on the live site changed its output HTML in the menu part of the layout. A new __ tag with the _category-main-menu_ ID was added.
- Removed the _Include all translations into one submission_ option from the _Send for translation_ advanced workflow action step. Each target language is translated in a separate submission.
- The File import application was removed. See [Managing files](https://docs.kentico.com/k9/configuring-kentico/managing-files.md) for information on how to work with files in the system.
- The obsolete Microsoft SharePoint integration web parts were removed. See the [Integrating SharePoint](https://docs.kentico.com/k9/integrating-3rd-party-systems/integrating-sharepoint.md) chapter to learn how to display SharePoint content without the obsolete web parts.

### REST service

- The [Kentico REST service](https://docs.kentico.com/k9/integrating-3rd-party-systems/kentico-rest-service.md) now returns date and time values within JSON data using the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (_2013-10-21T14:20:12.293+02:00_) instead of the original Microsoft JSON format (_\\/Date(1299419802000)\\/_). Both date and time formats are accepted when processing incoming POST or PUT requests.
- The macro resolving functionality of the REST service (_/macro/_ resource path) now uses the global macro resolver instead of the dedicated _ServiceResolver._ The _ServiceResolver_ was removed from the system.
- REST requests for getting multiple pages without specifying a page type, for example _/rest/content/all_, now by default return pages without coupled (type specific) data. To get pages with coupled data, add the _coupleddata=true_ query string parameter to the request URL\*.\*
- REST requests for getting pages without coupled data now return data containers with the general _cms.document_ name, instead of names based on specific page types. Requests that include coupled data use the page type class names.

### Social & Community

- The Project management feature was removed. See [Recovering abandoned features, web parts and widgets](https://docs.kentico.com/k9/installation/upgrading-to-kentico-9/recovering-abandoned-features-web-parts-and-widgets.md) to learn how to continue using project management after upgrading to Kentico 9.

### On-line marketing

- The _Subscribers -> Subscribers_ tab in the Email marketing application was renamed to _Subscriber management -> All subscribers_.
- The _Templates_ tab in the _Email marketing_ application was renamed to _Template management_.
- Generating of links in email campaigns was changed to improve security. As a consequence, the _Opened campaign email_ and _Clicked email campaign link_ activities from campaign emails sent in a previous version of Kentico will not be logged in Kentico 9.
- The _Remember contacts permanently_, _Automatically recognize visitors by user agent_, and _Automatically recognize visitors by IP address_ settings were removed. Kentico no longer recognizes anonymous visitors as contacts based on their IP address and browser user agent. The system also remembers contacts until their cookies are deleted or another contact is determined by the system.
- The _Track campaigns_ and _Track conversion_ settings were removed. Campaigns and conversions are now tracked automatically when the _Enable web analytics_ setting is selected.
- The _Campaign tracking URL parameter_ setting was removed. Now, the standardized _utm\_campaign_ query parameter in the URL is used by default.

  - Campaign tracking for already existing links with different parameters in the URLs will no longer work after the upgrade.
- The functionality for tracking campaigns via page aliases was removed.
- The functionality for defining marketing campaign goals was removed.
- The Campaigns tab was removed from conversions. Logging conversions in campaigns is now configured directly when editing a specific campaign.
- If a visitor arrives on a page via a link containing a _utm\_campaign_ parameter, the system doesn't log the conversion in the campaign unless the page is explicitly assigned to the campaign.
- The _CMSEnableAutomaticCampaignCreate_ web.config key was removed. The functionality to automatically create new campaigns by visiting the site using an unspecified _campaign_ URL parameter is no longer supported.
- The SiteObjects.EmailTemplate macro doesn't retrieve campaign email templates anymore. Use Newsletter.EmailTemplate to retrieve campaign email templates.
- The macro for retrieving campaign emails has been renamed to Newsletter.Email.

### E-commerce

- The values of customer properties are now synchronized with the content of user properties and vice versa.

  - This replaces copying of customer information to user information when registering without any later synchronization.
  - The email, first name, last name, full name and phone properties are synchronized by default.
  - To manually synchronize customers and users, or to change synchronization, see [Synchronizing customer and user properties](https://docs.kentico.com/k9/e-commerce-features/customizing-and-developing-your-store/customer-related-customizing/synchronizing-customer-and-user-properties.md).
- The obsolete _Bundle items selector_ form control was removed. Use the universal _Multiple object binding control_ form control instead.
- The _Building your on-line store_ and _E-commerce settings checker_ widgets were removed without any replacement (also removed from the default content of the [Store overview](https://docs.kentico.com/k9/e-commerce-features/managing-your-store/store-reports/store-overview.md) application).
- The obsolete _Product filter_ web part was removed. You can replace the web part with the built-in smart search, see more information in [Configuring product listings with filtering](https://docs.kentico.com/k9/e-commerce-features/configuring-your-store/configuring-product-pages/configuring-product-listings-with-filtering.md).
- The obsolete _Shopping cart preview_ web part was removed. You can replace the web part with macros, see more information in [Displaying the shopping cart preview on pages](https://docs.kentico.com/k9/e-commerce-features/configuring-your-store/checkout-process/displaying-the-shopping-cart-preview-on-pages.md).
- The obsolete e-commerce macros in the ##MACRONAME## format are no longer supported. To achieve the same results as with the removed macros,  see [the upgrade instructions](https://docs.kentico.com/k9/installation/upgrading-to-kentico-9.md).
- Flat [taxes](https://docs.kentico.com/k9/e-commerce-features/configuring-your-store/configuring-taxes.md) (tax classes with a fixed tax) are no longer supported. Only percentage taxes are supported.
  - To replace the flat taxes functionality for shipping options, you can [implement a custom shipping carrier provider](https://docs.kentico.com/k9/e-commerce-features/customizing-and-developing-your-store/implementing-custom-shipping-carrier-providers.md).
- Legacy field mapping of product page types for backward compatibility is no longer supported without any replacement.
  - You can see more information about current mapping of product fields in [Mapping product type database columns](https://docs.kentico.com/k9/e-commerce-features/customizing-and-developing-your-store/product-related-customizing/mapping-product-type-database-columns.md).
- The _Registration conversion name_ and _Registration conversion value_ [e-commerce settings](https://docs.kentico.com/k9/configuring-kentico/managing-sites/configuring-settings-for-sites/settings-e-commerce.md), which take effect only when using the obsolete _Checkout process_ web part, were hidden as well as other hidden settings related to the _Checkout process_ web part. To display the hidden settings, see [the upgrade instructions](https://docs.kentico.com/k9/installation/upgrading-to-kentico-9.md).

### Database

- All page related views and the _View\_COM\_SKU_ views were removed with the exception of _View\_CMS\_Tree\_Joined_, which is used as the base for querying of page data. **PLEASE NOTE**: The resulting view (_View\_CMS\_Tree\_Joined)_ no longer includes SKU data. You need to join the data manually in a custom query. Based on this change, the SQL search functionality does not include SKU data in search results. To include the SKU data you need to modify the _searchdocuments_ and _searchattachments_ queries of the _Root_ page type.
  - The _selectdocuments_ query for page types is no longer used to query page data.
  - The SQL search implementation no longer uses the _searchtree_ page type query unless it is explicitly defined by the page type. The functionality now uses _DocumentQuery_ to retrieve search results.
- The  _SiteName_  column was removed from the _View\_CMS\_Tree\_Joined_   view.
  - Use the _NodeSiteID_ column instead (for example in _Columns_ and _WhereCondition_ web part properties).
- The _NodeOwnerFullName, NodeOwnerUserName, NodeOwnerEmail_ columns were removed from the View\_CMS\_Tree\_Joined view.
  - Use the _NodeOwner_ column instead, which stores the ID of the given user.
- The _Published_ column was removed from page views. The published status is now evaluated using an extra where condition through DocumentQuery. If you used the 'Published = 1' where condition to query for published pages, you need to use the following condition instead:\
  _(\[DocumentCanBePublished] = 1 AND (\[DocumentPublishFrom] IS NULL OR \[DocumentPublishFrom] = GETDATE()))_
- The automatic translation of the _SKUName_, _SKUDescription_ and _SKUShortDescription_ database fields in the _COM\_SKU_ table to the corresponding _DocumentSKUName_, _DocumentSKUDescription_ and _DocumentSKUShortDescription_ fields in the _CMS\_Document_ table is no longer supported without any replacement.
- The _SKUInheritsTaxClasses_, _SKUInheritsDiscounts_ and _SKUAllowAllVariants_ columns of the _COM\_SKU_ database table were removed without any replacement.
- The _ManufacturerIsImportant_ field was removed from the  _[Manufacturer](https://docs.kentico.com/k9/e-commerce-features/managing-your-store/products/managing-manufacturers.md)_  class. If you need a replacement, you can create a custom field with the same function (in the _Modules_ application).
- The _OrderContentTaxes_ property was removed from the _OrderInfo_ class. Every order item keeps the information about taxes by itself.
- The _TotalClicks_ database column was removed from the _Newsletter\_Link_ database table. Clicked links are now stored in the _Newsletter\_ClickedLink_ table.
- The  _Newsletter\_SubscriberLink_  database table was removed. Clicked links are no longer stored based on the subscriber but based on the subscriber's email address in the  _Newsletter\_ClickedLink_  table.
- The _Proc\_Analytics\_GenerateSampleData_ stored procedure was removed. Sample web analytics data is now generated internally in code.
- The _CategoryOrder_ column was removed from the _CMS\_PageTemplateCategory_ table as it wasn't used.
- The _ScopeExcluded_ column is now required in the _CMS\_WorkflowScope_ table.
- The following columns were removed from the _CMS\_Document_ table:
  - DocumentLastVersionType
  - DocumentLastVersionMenuRedirectUrl
  - DocumentLastVersionName
  - DocumentMenuStyleOver
  - DocumentMenuClassOver
  - DocumentMenuItemLeftImageOver
  - DocumentMenuItemImageOver
  - DocumentMenuItemRightImageOver
  - DocumentCampaign
- The following columns were removed from the _CMS\_Tree_ table:
  - NodeWireframeTemplateID
  - NodeWireframeComment
  - NodeWireframeInheritPageLevels
- A new _NodeOriginalNodeID_ column was introduced in the _CMS\_Tree_ table. This column is used to join culture specific data in the main database view.

### API

- The _CMSList_ collection was removed. Use standard .NET collections instead.
- The _TreeNodeDataSet_ class was removed. Use _InfoDataSet_ instead.
- _DocumentQuery_ objects no longer reflect site settings by default (especially the settings related to culture parametrization). The settings are only taken into account when the _TreeProvider.SelectNodes()_ or _DocumentHelper.GetDocuments()_ methods are used. This is also the preferred way to directly create instances of the _DocumentQuery_ class. Also, to only retrieve published pages only, use methods from the _TreeProvider_ class.
- The _CurrentUserInfo.PreferredCultureCode_ property now returns the value of the user's _Preferred content culture_ field. To get the code of the content culture currently selected by the user for the website, use _LocalizationContext.PreferredCultureCode_.
- URL rewriting now occurs during a different event within the Kentico request handling life cycle. The URL rewriting logic was moved from the _RequestEvents.MapRequestHandler_ event to the new _RequestEvents.PostResolveRequestCache_ event, which occurs earlier.
- The _WebSyncHelper.OnProcessCustomTask_ event is no longer available. See [Creating custom web farm synchronization tasks](https://docs.kentico.com/k9/custom-development/miscellaneous-custom-development-tasks/web-farm-internals-and-api/creating-custom-web-farm-synchronization-tasks.md) to learn how to work with custom web farm tasks in the new API.
- Large parts of the web farm API were made private or internal (not intended for public use).
- The _CMS.IO.Stream_ class declares a new _CanSeek_ abstract property, which must be implemented in all derived classes.
- When serializing _CMS.Helpers.XmlData_ objects to string values using the _GetData()_ or _ToString()_ methods, the resulting XML now has all elements in alphabetical order and no longer converts element names to lower case. For example, XmlData is used in the _MediaFileInfo.FileCustomData_ and _UserSettingsInfo.UserCustomData_ fields.
- Email marketing subscription/unsubscription API was replaced with the API provided in the _ISubscriptionService_ interface.
- The _OpenEmailTracker.OnLog_ virtual method was removed. We recommend using the _NewsletterEvents.SubscriberOpensEmail_ event to perform custom logging.
- The _LinkTracker.OnLog_ virtual method was removed. We recommend using the _NewsletterEvents.SubsciberClicksTrackedLink_ event to perform custom logging.
- The _SetLanguage_, _SetCampaign_, _RebasePath_, _SiteName_ and _PermanentRedirect_ public properties in the _CMS.URLRewritingEngine.UrlRewritingAction_ class were removed as they were no longer necessary.
- When creating a new Workflow scope from code, you now need to include a value for the _ScopeExcluded_ property.
- The _ToString_ method of DataQuery where conditions _(WhereConditionBase_ objects) now returns _String.Empty_ instead of _null_ for empty conditions.
- The _DataQueryBase.NextPageAvailable_ property no longer throws an exception when accessed for a non-paged query. _Null_ is returned instead.
- The left node object binding in _RelationshipInfo_ was moved from the "Other bindings" collection to the "Binding" collection.

  > **Info:** **See also**: <http://devnet.kentico.com/documentation/api-changes/kentico-9>
