February 13, 2015
Released Sitecore® Experience Platform™ 7.5 rev. 150212 (7.5 Update-2)
Note: This is a product update. Sitecore recommends that you upgrade to this release if it includes fixes that meet the specific needs of your organization. If this release does not include new functionality or specific fixes that your organization requires, you may benefit from waiting to upgrade until Sitecore releases an update that is relevant for your organization. This is especially true in production environments.
To learn more about Sitecore’s versioning system, see the Sitecore Versioning Policy page.
For instructions on how to download and install this release, please visit the appropriate Sitecore 7 downloads page.
Highlights
The DLLs have been signed according to Microsoft’s requirements. The upgrade package only refers to the updated DLLs and we have not implemented any changes to the configuration files or to the functionality in Sitecore.
February 05, 2015
Released Sitecore® Experience Platform™ 7.5 rev. 150130 (7.5 Update-1)
Note: This is a product update. Sitecore recommends that you upgrade to this release if it includes fixes that meet the specific needs of your organization. If this release does not include new functionality or specific fixes that your organization requires, you may benefit from waiting to upgrade until Sitecore releases an update that is relevant for your organization. This is especially true in production environments.
To learn more about Sitecore’s versioning system, see the Sitecore Versioning Policy page.
For instructions on how to download and install this release, please visit the appropriate Sitecore 7 downloads page.
Highlights
The main highlights in this update are:
- Includes all the fixes from 7.2 Update-3.
- A large number of issues relating to Engagement Analytics have been addressed.
- Implementation of support for several Solr cores has been improved.
Important changes
- A limitation of the number of pages that are tracked and saved into the experience database for interactions has been introduced. Experience data for all further page requests for visits after the limit is reached is not saved. You can configure the limit in the SetDummySession processor of the ensureSessionContext pipeline defined in the Sitecore.Analytics.Tracking.config configuration file in the /App_Config/Include folder. The default maximum number of tracked and saved pages for a single interaction is 1000. (6522, 6613, 6624, 6627)
Improvements
- This release incorporates all the changes made for 7.2 Update-3. For additional information about these changes, please refer to the release notes:
Resolved Issues
- Engagement Analytics
- Updating visitor classification on the content management server would sometimes lead to inconsistent data between xDB and the reporting database. This has been fixed. (6615)
- SQL Server transaction deadlocks related to the processing expired sessions could occur on high load. This has been fixed by changing the GetExpiredItemExclusive stored procedure in the Session database so that it now uses WITH UPDLOCK when reading from the Sessions table. (6602)
- Custom facets of the contact did not always merge correctly. This has been fixed. (6592)
- A rendering based on the condition of a triggering goal in a current visit was not rendered if the goal had been triggered. This has been fixed. (423908, 6623)
- A connection string to the reporting database was required even when the content management server was configured to use the Remote Reporting Service. This has been fixed. (6518, 6441)
- A goal or page event specified by its ID in the st_trk query string parameter was not triggered for the request. This has been fixed. (6512)
- When using the Identify method of the session object to identify the contact, the System.InvalidOperationException exception with the message “Another contact with the same identifier already exists. ” would sometimes appear in the log file. This has been fixed. (6601, 428795)
- VisitorIdentification was not working correctly in Internet Explorer 8 and Internet Explorer 9 browsers and threw JavaScript errors. This has been fixed. (425212, 425820)
- The “Triggering actions for user is not implemented” exception was thrown in the Execute Trigger dialog of the Supervisor application. This has been fixed by the simulation functionality being implemented in which the ForceTrigger method in the Sitecore.Analytics.Automation.AutomationContactManager class is no longer obsolete and used to force the triggers. (424679)
- When Sitecore attempted to get sharding information from Mongo ‘config’ database and the database was not available, the following error would appear: “Command 'count' failed: unauthorized (response: { "ok" : 0.0, "errmsg" : "unauthorized" }”. This has been fixed. (426283, 6595)
- Expired sessions were sometimes not removed from the SessionState database when the system was under heavy load. This has been fixed by optimizing the GetExpiredItemExclusive stored procedure. (426079)
- The X-Forwarded-For header was not considered when a contact was identified. As a result, the Contact IP address was not resolved correctly. This has been fixed. (426386)
- The Interaction.DeviceId would sometimes not be saved to the Experience database after a session expiration. This has been fixed. (426388, 6633)
- The IP address would sometimes not be resolved correctly after identifying a contact. This has been fixed. (6635)
- If you opened the Contact overview report from the Supervisor application in the Marketing Center, the system would sometimes throw an unhandled exception of the System.FormatException type. This has been fixed. (426893, 427260)
- If a user used paging to navigate through the contacts enrolled in a state of a test plan, the message: “Data could not be loaded” would appear in the SelectStateVisitor dialog. This has been fixed. (426994)
- The SaveEngagementPlan processor has been deprecated and is not used any longer. The processor has been removed from the deployDefinition pipeline. (6544)
- The ProcessTracking method in the Sitecore.Analytics.Data.TrackingFieldProcessor was not implemented and threw a NotImplemented exception. This has been fixed so that now it processes campaigns, page events, and profiles from tracking the field of the item. (427961)
- Contact custom data would sometimes be lost when contacts are moved to another state in an Engagement Plan. This has been fixed. (422113)
- Localization
- Display name of __Standard Values items for some analytics templates were localized in some languages. As a result, all analytics items created from these templates inherited the value from the Display Name field. This has been fixed. The __Standard Values items do not have localization in the Display Name field. (424664)
- Miscellaneous
- If you used .NET Framework 4.5 and you configured Sitecore to use the Forms authentication mode instead of None, users were not logged in properly to the Sitecore Client. When a user tried to log in with valid credentials, the login page was refreshed and the user was not logged in. This issue was fixed in previous Sitecore 6.6 updates but reintroduced in the Sitecore 7.5 initial release. This has been fixed. (422172, 374264, 427368)
- The forbidden ASP.NET EnableViewStateMac page attribute has been removed from all Sitecore pages. (420470)
- When you worked with Sitecore, an error message would sometimes appear in the Sitecore log file relating to the Sitecore.Services.Infrastructure.Web.Http.DefaultRouteMapper creating instance. This has been fixed so that the initialization logic type has been corrected. (423248)
- Performance
- The Page event registration API from PageContext has been updated to work with entity IDs instead of names. The new API is backward compatible. (424366, 427405)
- The performance of the getting item by name operation in the Sitecore.Analytics.Data.Items.ItemRecords has been improved. All functionalities that use this API (for example, the startTracking pipeline) now work faster. (425494)
- The process of merging interactions has been refactored to improve the performance of the contact identification. (427818)
- The Cleanup method of the Sitecore.Analytics.Lookups.GeoIpHandleTable class has been optimized to save processor time. (427955)
- The Analytics API has been improved to work better with users that have a large amount of data in their analytics profile. (424331)
- A large number of persistent user tickets stored in the SC_TICKET property entry could lead to performance issues in the Experience Editor (Page Editor) and Content Editor applications. This has been fixed by changing the way of storing persistent user tickets in the Properties table. Each user ticket is now stored in a separate Property entry. (408523, 416668)
- Renderings and layouts
- When custom rendering parameters templates were used and these templates inherited from other templates that had field sections with the same names, fields from these sections were not merged in the Control Properties dialog and were shown in separate sections with the same names. This has been fixed. (354862)
- Setup.exe installation program
- When you installed Sitecore, the installation program created a number of performance counters that were not in use. This has been fixed so that the installation program does not create obsolete counters. However, the obsolete counters still appear in the Windows Performance Monitor application if you have previously installed earlier Sitecore versions, or if you install earlier Sitecore versions after you install Sitecore 7.5. (408575, 408683, 408733)
- Sitecore.ContentSearch
- Search in the PDF documents was not working with Adobe PDF IFilter 11 x64 installed. This has been fixed. (401460)
- Sitecore.ContentSearch Solr provider
- The implementation of the GetTypeFieldNames method in the SolrFieldNameTranslator class was not thread safe. While searching, an infinite loop could occur, which decreased the performance of the system until the ASP.NET worker process was restarted. This would only occur in very rare cases. This has been fixed. (426716)
- Sitecore could not be started and failed with an exception when the Solr provider was configured to use different Solr Cores for its indexes on various (Ninject, StructureMap or Unity) IoC containers. This has been fixed. (408993, 410276, 420356)
- Sitecore could not be started and failed with the SearchProviderConnectionException exception when the Solr provider was configured to use the Unity IoC container and the ContentSearch.Solr.EnableHttpCache setting was set to True. This has been fixed. (409760, 420356)
- Using the Sitecore clients with out-of-process session state modes
- A number of dialogs could not be opened on Content Management servers with an out-of-process session-state configured. This happened because the pipeline arguments were not serialized correctly. This has been fixed. (423920, 424008)
Breaking changes
- In Sitecore.Kernel, the old performance counter classes have been reworked and improved. Some of the changes are breaking API changes.
- IRestRequest and IRestResponse interfaces defined in sitecore.cloud.restclient assembly have been extended with new properties.
October 14, 2014
Released Sitecore® Experience Platform™ 7.5 rev. 141003 (7.5 Initial Release)
This is a feature release. Sitecore recommends upgrading to this release when the fixes included meet the specific needs of your organization. If this release does not include new functionality or specific fixes that your organization requires, you may benefit by waiting until Sitecore releases a Service Pack for this series before upgrading. This is especially true in production environments.
To learn more about Sitecore’s versioning system, see the Sitecore Versioning Policy page.
For instructions on how to download and install this release, please visit the appropriate Sitecore CMS 7 downloads page.
Highlights
The Sitecore 7.5 rev. 141003 initial release includes all the fixes from 7.2 Update-2.
The main highlights of this release:
- Sitecore 7.5 revolutionizes the way we handle "experience data".
- This new flexible and scalable architecture is capable of handling very large amounts of customer data.
- You can scale both up and down from small single instance, low traffic solutions to larger solutions consisting of hundreds of servers designed to handle high volumes of traffic.
- Sitecore 7.5 introduces the Experience Database (xDB) with collection, processing and reporting that supports enterprise level installations.
- The Experience Profile is an entity in the xDB that provides a centralized object to store all known data against an individual, whether the individual is known (email, name, tel etc.) or anonymous.
- The Experience Profile gives you a clear view of de-anonymized contacts and activities before the individual is known and provides you with a visualization of all Interactions an individual has with a brand.
- Contact Search extends Sitecore 7’s search & indexing to find groups of people with common characteristics in the xDB.
- The Sitecore Tag Management client library (previously available as a separate download) is now distributed as part of the platform.
New and updated documentation
-
New documentation released with Sitecore 7.5:
- xDB Upgrade and Conversion Process
A step-by-step guide to the Sitecore 7.5 upgrade and conversion process - xDB Overview and Architecture
A conceptual overview of the architectural changes introduced in Sitecore 7.5 - xDB Configuration Guide
A configuration guide for Sitecore administrators and developers - Sitecore Experience Database, Cloud Edition - Quick Start Guide
A developer's guide to configuring Sitecore xDB Cloud Edition - Experience Profile Quick Start Guide
A guide to getting started with the Sitecore Experience Profile - SPEAK Component Reference
A reference guide to the SPEAK components - Sitecore.Services.Client Develper's Guide
A guide to the service layer that you use to develop data-driven applications
- xDB Upgrade and Conversion Process
- Existing documentation that has been updated for Sitecore 7.5:
- Sitecore Search and Indexing Guide
A guide for Sitecore partners and developers who want to implement search functionality in Sitecore - Developer's Guide to Item Buckets and Search
A developer's guide to working with item buckets, search, and indexing in Sitecore - Sitecore Experience Platform 7.5 Installation Guide
An installation guide for administrators and developers
- Sitecore Search and Indexing Guide
System requirements
Supported SQL Server versions:
- Sitecore 7.5 now supports SQL Server 2014, in addition to SQL Server 2012 and SQL Server 2008 R2 SP1.
- The initial release of Sitecore® Experience Platform™ only supports Microsoft SQL Server (except for the DMS collection database which requires MongoDB).
- Please contact us at oraclesupport@sitecore.net if you require Oracle support for 7.5 or later.
The following system requirements have changed:
- On Sitecore instances where Analytics is enabled, you must use a session-state provider that can invoke the SessionEnd event, such as InProc or the new Sitecore session-state providers for MongoDB or SQL Server. When Analytics is enabled, the standard StateServer provider from Microsoft cannot be used because the provider does not support the SessionEnd event.
- DMS collection and reporting databases
- The collection database uses MongoDB as storage. For production environments, the minimum recommended configuration is a single replica set consisting of two full capacity data servers for failover and one low capacity server for the arbiter. Single server MongoDB installations should only be used for development and testing.
- The reporting database uses SQL Server as storage. The reporting database server has the same system requirements as the Analytics database server had in previous versions of Sitecore.
- Running the DMS collection and reporting databases on Oracle is no longer supported.
- The system requirements for content management and content delivery servers have not changed.
New features
Sitecore 7.5 introduces the Sitecore Experience Database:
- The Sitecore Experience Database (xDB) is a set of digital marketing features that enable you to interact and engage more effectively with your contacts and customers, while doing so in a more scalable way than was previously possible. The xDB is a central data repository for marketers that collects and connects all customer interactions in a single view, and enables immediate, personalized, automated experiences.
- The new marketing platform and architecture is designed for hyperscalability.
- Available on-premise or as a service
- Vertical and Horizontal scaling
- Sitecore 7.5 comes with support for automatically connecting to Sitecore Experience Database Cloud Edition.
The main highlights of the Sitecore Experience Databases are:
- A collection layer, which tracks experiences as close to the customer as possible.
- Database session storage is available for scalability/resilience. Session state providers for use with the Sitecore Experience Platform are available for MongoDB and Microsoft SQL Server. For information on how to enable and configure these providers, see the xDB Configuration Guide.
- A collection database, which collects and stores all experiences of all customers.
- Easily extendable and customizable
- Tracks the contact, not the device
- Uses NoSQL technology (MongoDB)
- A processing and aggregation layer, which groups and aggregates experience data.
- A dedicated reporting database
- Fact/dimension-based tables that store aggregated data for reporting and analysis
- Single reporting API for reporting consistency
- Reporting service for cloud-based solutions
- SQL-based technology (SQL Server)
- An engagement automation API that ensures marketing plans are carried out for the contact, with full data integrity.
- Customer segmentation that uses Sitecore's search and indexing API to find groups for targeted marketing campaigns.
- A search index for experience data. The new search index supports the customer segmentation feature and lets you make active use of experience data in a whole new way in your solutions.
Note: In Sitecore 7.5, the search index for experience data cannot be rebuilt due to the way the data is aggregated and indexed. Therefore, the option is not available in the Indexing Manager in the Control Panel. You can currently only rebuild this index by rebuilding the reporting database. - The Experience Profile is a new sales intelligence UI that provides a single, real-time view of all the online experiences an individual has had with your organization. The application is available in the Launch Pad.
- A shared session state provider that makes session state accessible from any visit associated with the contact.
- Clusters – depending on the location, a contact can be redirected to the closest cluster. In addition, simultaneous sessions across different browsers or devices related to the same contact are tracked and share the same contact data context. This allows systems such as the engagement automation system to operate with the most current data.
Additional new features
- Sitecore.Services.Client service layer
- The new Sitecore.Services.Client service layer provides a configurable and extendable framework for creating consistent client-server communication for your applications, using the ASP.NET Web API as the foundation.
- Clients can access server-side classes using the provided Restful API directly, via client-side JavaScript, or via SPEAK components.
- The service layer provides two predefined services:
- ItemService: provides access to Sitecore items
- EntityService: provides access to customer defined business objects
- Important: Changing the settings in the Sitecore.Services.Client.config file may impact the security of your Sitecore installation. Please consider any changes carefully before you implement them on a production server. If you change the SecurityPolicy setting or the settings related to anonymous users, you may allow third parties to access content directly on your server without any security restrictions.
- Limitations: The Sitecore.Services.Client ItemServiceController does not currently support customizations or extensions. This means that customers who want to override the default behavior of the ItemServiceController will need to create their own controller (perhaps starting with a copy of the provided controller) and make changes to it. We hope to improve this limitation in a later release.
- SPEAK components for the Sitecore.Services.Client service layer
- The new StoredQueryDataSource SPEAK component allows you to access the ItemService from SPEAK applications.
- The new EntityDataSource SPEAK component allows you to access the EntityService from SPEAK applications.
- Media request protection
- The new media request protection feature restricts media URLs that contain dynamic image-scaling parameters so that only server-generated requests are processed. This ensures that the server only spends resources and disk space on valid image scaling requests.
Sitecore Corp. wants to give credit to Cognifide (Adam Najmanowicz and Marek Musielak, www.cognifide.com) for the discovery of this vulnerability, for their cooperation and providing the initial ImageGuard solution. - When the feature is enabled, Sitecore automatically signs image URLs that are rendered by the <renderField> pipeline and adds a hash value to the query string. When processing an incoming media request, image resizing/scaling is skipped if any of the relevant query string parameters in the image URL have been altered or any extra resizing parameters have been appended to the URL. In these cases, Sitecore returns the original, unaltered image. Requests for the original image (without any resizing/scaling parameters) work as usual and are not restricted.
- If you have code in your solution that manually appends image scaling parameters to image URLs without passing the parameters to the <sc:image> control, you must rewrite the code to append a hash value using one of the helper methods or rewrite it to use the <sc:image> control. In XSLT renderings, you can use sc:SignMediaUrl(url) or sc:GetSignedMediaUrl(…). In C# code, you can use HashingUtils.ProtectAssetUrl(url) which appends a hash value to the provided URL, or you can use GetAssetUrlHash(url) to only return the hash value for the provided URL.
- You must ensure that any static image URLs (for example, in CSS or aspx files) that contain image scaling parameters are updated to include the corresponding hash value. To make it easy to update these type of static URLs, a new /sitecore/admin/MediaHash.html is available, which lets you enter a media URL and, with the click of a button, generate the corresponding hash value.
- Image URLs where resizing parameters are manipulated or added using JavaScript will no longer work because you cannot calculate the hash values from JavaScript. If you need this type of functionality, you will have to find a different approach, such as implementing a service that can calculate the correct hash value.
- This feature is configured in the /App_Config/Include/Sitecore.Media.RequestProtection.config file.
- The new media request protection feature restricts media URLs that contain dynamic image-scaling parameters so that only server-generated requests are processed. This ensures that the server only spends resources and disk space on valid image scaling requests.
Improvements
- A single distribution file for installing the Sitecore Experience Platform (378192)
- In the previous version, DMS was available as a separate download. Starting with Sitecore 7.5, the Analytics SQL Server database and the related include files are now part of the main distribution. This makes it easier to quickly get up and running with the Sitecore Experience Database.
- When you install Sitecore using the setup.exe installation program, the Analytics database is automatically attached and the Analytics include files are enabled. To complete the installation, you must manually configure the MongoDB connection strings, as well as update the relevant settings in the web.config and Sitecore.Analytics.config files, such as MailServer and Analytics.EMailFromAddress (for sending out reports as emails).
- When you install Sitecore from the zip archive, the Analytics database is now available in the /Databases folder, the Analytics include file are enabled by default, and the /App_Config/ConnectionStrings.config file contains sample connection strings for the collection and reporting databases.
- Engagement Analytics
- To minimize interruptions to the reporting functionality, the rebuild reporting database process now works with a dedicated, secondary instance of the reporting database. After the rebuild process has finished, you must replace the primary reporting database with the secondary reporting database. Report rebuilding is performed using the new /sitecore/admin/RebuildReportingDB.html page. This has replaced the Refresh Aggregated Data in Reports wizard.
- In earlier versions, images and other Sitecore media sometimes loaded slowly on the first visited page in a session. This happened because the ASP.NET session was available to all media requests that were part of the first visit, preventing the media requests from being handled in parallel. The logic for auto-detecting whether a visitor is a robot has been reworked so that the MediaRequestSessionModule no longer needs to ensure that the ASP.NET session is available to all media requests for the first visit in a session (unless the media has tracking information assigned). (408587)
- The robot detection logic now handles 'touchstart' events in the browser to better support detection of touch-screen devices. (420817)
- To give better control over when definition data is deployed to the Analytics database, items based on the Traffic Type templates are now placed in the Analytics Workflow.
- The default traffic type and visitor identification definition items are now protected to avoid them being modified or deleted by mistake.
- Segment Builder
- The Segment Builder has been reworked so that it is now based on the new customer segmentation functionality in 7.5 which leverages Sitecore's search and indexing API.
- Sitecore App Center
- The Sitecore Tag Management client library, which was previously available as a separate download, is now distributed as part of the platform. This makes it easier to use App Center apps, such as Click Tracking, without any installation. For more information, see the Sitecore App Center documentation. (406037)
- Sitecore.ContentSearch API
- To optimize performance, Lucene indexes can now be configured to be sharded across multiple disk drives.
- The SwitchOnRebuild index implementation has been rewritten to support sharding Lucene indexes across multiple disk drives.
- Support has been added for using multiple search providers concurrently. This means that, as long as the search indexes use unique names, you can configure some of your search indexes to use Solr while your other search indexes use Lucene. (386841)
- Indexing of null values and empty values is now supported.
- Computed fields now support indexing composite values. This means that you can use computed fields in certain scenarios where previously you would have used a custom field. This is an example of how composite values can be defined:<fields hint="raw:AddComputedIndexField">
<field fieldName="Contact.FullName" type="Sitecore.ContentSearch.ComputedFields.CompositeTextField, Sitecore.ContentSearch" matchField="type" matchValue="contact" separator=" ">
<part>Contact.FirstName</part>
<part>Contact.MiddleName</part>
<part>Contact.Surname</part>
</field>
</fields>
- A new CollapsedIndexField class lets you index object structures into a single document.
- A new ObserverCrawler<T> class lets you crawl IObservable data streams. This class is used as a base class for the crawlers that index experience data, and it also lets you easily implement your own crawlers that index other IObservable data streams.
- A new DynamicExpression class lets you parse string expressions to Linq expressions. This is an example of how the class can be used:var p1 = Expression.Parameter(typeof(IQueryable<TestDocument>), "queryable");
var e = DynamicExpression.ParseLambda(new[] { p1 }, null, "queryable.Where(Name == @0).OrderBy(NameSortable)", "Sitecore");
var searchResults = (e.Compile().DynamicInvoke(queryable) as IQueryable<TestDocument>).ToList(); - The default index configuration has been modified so that it now indexes the __hidden field. This lets you filter search results by this field, which is also used by the SPEAK Select Media dialog. (407229)
- SPEAK Framework
- [PageCode] The SpeakCoreVersion parameter has been added. By default, the PageCode uses the SPEAK Core 1-1, which is the recommended version of the SPEAK core for this release.
- SPEAK Business Component Library
- The LoadOnDemandPanel component has been added. This simple panel does not load contained components by default when Sitecore first loads the parent page – you must add code to call the component’s “load” method to load the contents at run time. For example, to reduce the initial time required to load the page, you can include the component as the top-level panel in a tab in a TabControl, and then load the contents of the tab when a user activates it. (5682)
- Sitecore.ContentSearch Linq layer
- The following Linq operators are now supported: join, group join, and self join.
- Page Editor performance improvements
- To improve performance when using the Page Editor, a new placeholder cache has been implemented. (406267, 409332)
- The XmlPatchUtils.MergeChildren() method has been reworked to improve performance. This change reduces the overhead of merging layout deltas when resolving presentation details for an item. (406264)
- New include files in the /App_Config/Include folder
- Sitecore.Apps.TagInjection.config enables the Sitecore Tag Management client library.
- Sitecore.Media.RequestProtection.config enables and configures the protection of media requests so that only server-generated requests are processed.
- Sitecore.Services.Client.config configures the Sitecore.Services.Client service layer.
- Sitecore.Speak.Applications.config contains logic that supports SPEAK applications (this was previously part of the Sitecore.Speack.config file).
- Sitecore.Analytics.Automation.TimeoutProcessing.config configures the Engagement Automation subsystem to process timeout conditions for engagement automation states.
- Sitecore.Analytics.Model.config defines the model and the entities for contact objects.
- Sitecore.Analytics.MongoDb.config contains configuration related to MongoDB.
- Sitecore.Analytics.Processing.config defines the Task Manager and the API that you use to register processing tasks, regardless of whether this server is configured to perform processing tasks or not. In most cases, you should leave this file enabled.
- Sitecore.Analytics.Processing.Services.config launches the Task Manager and processing services on this server. You can disable this file if the current server does not need to perform processing tasks.
- Sitecore.Analytics.Processing.Aggregation.config configures the server to aggregate data from the collection database before it is stored in the reporting database. You can disable this file if the current server does not need to perform aggregation tasks.
- Sitecore.Analytics.Processing.Aggregation.ProcessingPools.config configures the processing pools that are available to the processing subsystem when it aggregates data from the collection database. The processing pools are shared by the servers that run the aggregation subsystem and the servers that register things for aggregation. In most cases, you should leave this file enabled.
- Sitecore.Analytics.Processing.Aggregation.Services.config launches the background services that perform aggregation tasks. You can disable this file if the current server does not need to perform aggregation tasks.
- Sitecore.Analytics.Reporting.config configures the reporting subsystem of the Sitecore Experience Database and makes the experience data available for use by Sitecore reporting applications.
- Sitecore.Analytics.Reporting.RemoteClient.config.disabled contains configuration settings that let the reporting APIs communicate with a remote reporting server.
- Sitecore.Analytics.Reporting.RemoteServer.config.disabled configures the current server as a remote reporting server that can serve reporting data to remote reporting clients.
- Sitecore.Analytics.Tracking.config configures the tracking subsystem of the Sitecore Experience Database, which is responsible for tracking of online visitors. The system tracks personalization, goals, campaigns, profile values, patterns, multivariate tests, and so on.
- Sitecore.Analytics.Tracking.Aggregation.config configures the tracking subsystem so that it schedules new online visits and automation states for aggregation into the reporting database.
- Sitecore.Analytics.Tracking.Database.config enables the tracking subsystem to write to and read from the collection database. You can disable this file if you want to prevent the tracking subsystem from communicating with the collection database.
- Sitecore.Cloud.Xdb.config.disabled contains configuration settings for connecting to the xDB Cloud Edition.
- Sitecore.ContentSearch.DefaultConfigurations.config contains the configuration that is shared between the Lucene and the Solr provider (which was previously part of the provider-specific configuration files).
- Sitecore.ContentSearch.Analytics.config defines a number of pipelines that are executed when the system indexes experience data.
- Sitecore.ContentSearch.Lucene.Index.Analytics.config defines the Lucene search index that is used to index experience data.
- Sitecore.ContentSearch.Solr.Indexes.Analytics.config defines the Solr search index that is used to index experience data. This file is only present if the solution has been configured to use the Solr provider.
- Sitecore.SegmentBuilder.config contains configuration settings related to the Segment Builder.
- ExperienceProfile\Sitecore.ExperienceProfile.config contains configuration related to the Experience Profile feature.
- ExperienceProfile\Sitecore.ExperienceProfile.Client.config contains configuration related to the Experience Profile application.
- ExperienceProfile\Sitecore.ExperienceProfile.Reporting.config defines a number of pipelines that support the data queries and the views used by the Experience Profile application.
Important changes
- Engagement Analytics
- The Contact session and the Analytics session are now two different abstractions. The Contact session uses public session storage, while the Analytics session continues to use private (ASP.NET session) storage. This change allows the xDB to share the Contact session between multiple devices.
- A sophisticated merge mechanism merges contacts as soon as the system is able to identify that they are the same person. As a result, the system no longer contains multiple Contacts with the same ExternalUser name.
- Storing of Contact and Interaction data is now bound to the ASP.NET SessionEnd event.
- The Analytics session is now bound to the ASP.NET session timeout.
- The /App_Config/Include/Sitecore.Analytics.RobotDetection.config file has been renamed to Sitecore.Analytics.Tracking.RobotDetection.config. (411918)
- The /App_Config/Include/Sitecore.Analytics.config file has been split into multiple config files. This has been done to make it easier to configure your servers to support the different server roles: tracking, processing, and/or reporting.
- The Sitecore.MvcAnalytics.config file is now enabled by default. (417564)
- Engagement Analytics reports
- The dedicated reporting database now contains pre-aggregated data and is detached from the collection database.
- The Visitor Overview report has been renamed to Contact Overview to reflect that the system now tracks the activities of a contact across channels and devices.
- Items based on the ReportQuery template now have a Data Source field that specifies the type of report query and where/how the report query is used. Valid values are "collection", "reporting", and "function". These ReportQuery items are used by the Stimulsoft reports (*.mrt files).
- If you write custom code to access reporting data, you can choose between obtaining the data via reporting datasources, the remote reporting service, queries to the xDB collection database, SQL queries to the reporting database, or custom functions written in C#.
- Sitecore.ContentSearch API
- To support using multiple search providers concurrently, the global ContentSearch.DateFormat setting has been removed and replaced by a provider-specific date format string in the field map. This has been done because Lucene and Solr require different date format strings to work correctly. In addition, this lets you index different DateTime fields with different levels of precision. (401341, 403897, 403899, 406432, 408910, 420610)
- The default format in the Lucene configuration for DateTime fields has been changed to include hours, minutes, seconds, and milliseconds. (401341)
- Database schema changes
- The database schema of the Sitecore databases has been modified to make them Azure cloud compatible. You should therefore no longer see error messages when you export the Sitecore databases to Azure, for example, you should no longer see error messages related to unsupported extended properties or deprecated features. (405226)
- All clustered indexes have been removed from the uniqueidentifier (GUID) columns in the master, web, and core databases. This can improve the performance when creating many items, for example, when installing packages or bulk-importing data. (409707)
- The following Microsoft DLLs are now distributed with Sitecore in the /bin folder: (408972)
- System.Net.Http.Formatting.dll
- System.Web.Cors.dll
- System.Web.Http.Cors.dll
- System.Web.Http.dll
- System.Web.Http.WebHost.dll
- The following third-party DLLs have been updated to a newer version. You might have to update and recompile your code if you are referencing any of these DLLs from your code:
- The Newtonsoft.Json.dll has been updated from 4.5.9 to 6.0.3. (412963, 382822, 343887)
- The Stimulsoft DLLs have been updated to from 2009.3.600 to 2013.1.1600. (349906, 382826)
Breaking changes
- The Sitecore.Analytics API has been completely reworked to support the new features and architecture in Sitecore 7.5.
- As a result, existing code that uses the Analytics API will have to be refactored to use the new API. For example, you now need to refer to Tracker.Current.Interaction instead of Tracker.CurrentVisit and you need to refer to Tracker.Current.CurrentPage instead of Tracker.CurrentPage.
- The namespace for the SPEAK API in JavaScript has changed from Sitecore to Sitecore.Speak.
- As a result, any custom page code that is used on SPEAK pages will have to be changed to use the new API for the page to continue working.
- The Sitecore.Automation.MarketingAutomation assembly has been removed. Most of the classes that were present in the Sitecore.Automation.MarketingAutomation assembly have been moved to the new Sitecore.Analytics.Automation assembly.
- The Sitecore.Client assembly contains a number of breaking changes related to Analytics dialogs and applications that have been removed, renamed, or refactored.
- In Sitecore.Kernel, the performance counter classes have been reworked and improved. Some of the changes are breaking API changes.
- In Sitecore.Kernel, the Link, InternalLink, and Image classes that support the corresponding fields in the Content Editor have been refactored.
- In Sitecore.Buckets, the signature of the BucketLink class has been changed.
- The Sitecore.ContentSearch assemblies contain a number of breaking changes related to the new features and improvements, including changes required by the new experience data search index.
- The custom Sitecore.Providers.LinkProvider class overrode the default LinkProvider. The custom LinkProvider has been removed so that SPEAK pages now use the default LinkProvider. (4880)
Deprecated and removed functionality
- SPEAK Framework
- The Sitecore.Speak.Mvc assembly and include file have been deprecated and will be removed in a future release. Please do not introduce dependencies on this assembly.
- Engagement Analytics
- The "Refresh Aggregated Data in the Reports" wizard, which was available in the Control Panel, has been removed.
- The "Update Visitor Classification" wizard, which was available in the Control Panel, has been removed.
- The Send Notifications session end rule has been removed. Instead, the system now sends out session reports by directly subscribing to the session end event of the session state provider.
- The Analytics.DisableDatabase setting has been deprecated. Instead of using this setting, you can now prevent the system from communicating with the collection database by disabling the Sitecore.Analytics.Tracking.Database.config file.
- In Sitecore.Kernel, the GetVisitorEmailAddress pipeline has been removed.
- The SC_ANALYTICS_SESSION_COOKIE is deprecated. The system no longer reads or sets this cookie.
- Analytics reports
- The reports that are rendered using the Stimulsoft third-party library have been deprecated. This includes all reports in the Engagement Analytics application, as well as the item-specific reports available from the Analyze tab in the Content Editor. The reports are still available in 7.5, but will be replaced with new reports based on a different technology in a later release.
- The Sitecore reporting API that is used as a wrapper around the Stimulsoft third-party library has been deprecated. The API is still available in 7.5, but will be removed in a later release.
- Sitecore.ContentSearch API
- The custom field feature has been removed in favor of using computed fields.
- Developer Center
- The Developer Center application (which was deprecated in CMS 7.1 in favor of using Sitecore Rocks) has now been removed from the Sitecore Start menu. The associated items and files will be removed in a later release. (407832)
- Segment Builder
- The following Segment Builder conditions have been deprecated and should no longer be used:
- Business Name
- Campaign was Triggered
- External Keywords
- Goal was Triggered
- Goals were Triggered
- Is in Engagement Plan
- Is in Engagement Plans
- Is in Specific State
- Local Keywords
- Matches Pattern
- Referring Site
- Region
- Traffic Type
- The following Segment Builder conditions have been deprecated and should no longer be used:
Resolved issues
- Engagement Analytics
- The Analytics.Enabled did not disable Analytics completely. For example, the setting did not disable the <initialize> pipeline and scheduled agents. This has been fixed. (367206, 367219)
- If Sitecore did not have a connection to the Analytics database, a website visitor was sometimes presented with an error page. For example, this could happen if the visitor accessed a media URL, or if the visitor tried to visit a page that did not exist. This has been fixed. (376143, 376418, 384565)
- If a visitor visited a URL that contained a campaign ID in the query string and no campaign existed with that campaign ID, the page could take a long time to load. This has been fixed. (408577)
- If a visitor visited a media URL that contained a campaign ID in the query string, the campaign was not triggered. This was also a problem if the query string contained the ID of a goal or a page event. This has been fixed so that campaigns, goals, and page events are triggered correctly in these situations. (371607)
- New traffic type definition items, as well as changes to the default traffic types, were not deployed to the Analytics database. This has been fixed by placing the Traffic Type template in the Analytics Workflow. (380098, 380513)
- The "Sticky" strategy for Page Level multivariate tests did not work correctly. This has been fixed.
- If you configured the system to the SQLServer session state mode, SessionEnd events were not raised correctly. This has been fixed by introducing a new Sitecore session state provider for SQL Server that can invoke the SessionEnd event. (377445)
- If you disabled Analytics for a media item, the system unnecessarily provided requests for this media with access to the ASP.NET session. This has been fixed. (412083)
- The IsFailure checkbox was not selected by default on the page event definition for the Error event. This has been fixed.
- The Details view that you can open from the Analyze tab displayed the headings twice when listing the attributes that are associated with a page. The headings were also displayed twice in the Tracking field on the item. This has been fixed. (407739)
- Engagement Analytics reports
- In the reports under the Sales folder, the visits were not grouped by organization. This has been fixed. (389552, 416259)
- In the Business Overview report, the visits were not sorted by recency and the value of the visit. This has been fixed. (370085)
- Engagement Automation
- In the Supervisor, an error message appeared if you clicked the Cancel button in the Move Visitors dialog. This has been fixed. (350249)
- The Supervisor failed to import users from a CSV file to an automation state if the selected state contained an anonymous user. This has been fixed. (379974)
- In the Supervisor, if you added a user to an engagement plan state for which a timeout was configured, the system ignored the timeout and evaluated the conditions immediately. This has been fixed. (379995)
- When the "Move Visitor to Another State" action moved a visitor to a state for which a timeout was configured, the system ignored the timeout and evaluated the conditions immediately. This has been fixed. (406487)
- When the "Remove Visitor from this Plan" action was executed in an engagement plan, it failed with a DeletedRowInaccessibleException error. This has been fixed. (393738, 386028)
- Sitecore.ContentSearch API
- It was not possible to store DateTime values in different formats using computed fields. This has been fixed by allowing you to specify a format attribute for Date fields and DateTime fields in the field map. (401341)
- When the system tried to resolve the appropriate search index for an item, the ContentSearchManager.GetIndex() method could fail with an ArgumentNullException error and the following message: "Value cannot be null." This typically happened if you had configured your search indexes to not include the item in any search indexes, but it was hard to troubleshoot. This has been fixed by writing a more descriptive error message to the log file. (408906)
- Speak UI dialog boxes
- The InsertLinkDialog could throw the “Content database ‘{1}’ not found.” exception when switching to List view. This has been fixed.
- Sitecore Update Installation wizard
- When you installed a Sitecore update package, the update package installation log file was sometimes missing after the installation. This has been fixed. (414185)
- Setup.exe installation program
- When you installed Sitecore, the installation program created a number of performance counters that were not in use. This has been fixed so that the installation program does not create the obsolete counters. However, the obsolete counters still appear in the Windows Performance Monitor application if you have previously installed earlier Sitecore versions, or if you install earlier Sitecore versions after you install Sitecore 7.5. (328924, 408567, 414380)
- Miscellaneous
- When the Sitecore.Web.UI.HtmlControls.PageScriptManager inserted <script> tags on a page, they were inserted at the beginning of the <head> block. This caused <meta> tags used to select the correct browser rendering engine (e.g. IE10 or IE11) to be ignored. This has been fixed by changing the logic so that the PageScriptManager now inserts the script tags after any meta tags that appear at the top of the head block. This issue affected the ECM module. (410961)
- A concurrency issue in the CoreProcessor.GetMethod() method has been fixed. This problem only appeared when multiple threads executed the same pipeline in parallel, and only if the pipeline had not yet been fully initialized. (414597)
- When you opened the layout details dialog, long placeholder names wrapped to two lines. This has been fixed so that long placeholder names are truncated instead. (412476)
- Speak UI dialog boxes
- The SelectMediaDialog could become unresponsive after a search yielded no results. This has been fixed.
- The dialog associated with the General Link field did not display values provided in some of the fields when reopening the dialog. This has been fixed.
- SPEAK UI Framework
- The Sitecore.Names.Texts class (in the Sitecore.Speak.Client assembly) was not marked by the LocalizationTexts attribute. This has been fixed. (408451)
- When converting an item to the ItemBackbone model, the language and version properties were not properly set as model attributes. This has been fixed.
- SPEAK Business Component Library
- [FilterControl] The facets were listed in the opposite order to the order listed in the Content Editor. This has been fixed.
- [FilterControl] When the search text used with the FilterControl was left blank, the global filters defined in the FilterControl were not applied. This has been fixed.
- [ListControl] The ListControl did not reflect the checked items collection provided during initialization. This has been fixed.
- [ListControl] The checked items collection did not change when the application code updated the bound collection at run time. This has been fixed.
- [ListControl] The ListControl did not always format dates appropriately. This has been fixed. (415155)
- [ListControl] The ListControl sometimes displayed empty icons in lists if the item contained image URL information with an unexpected format. This has been fixed.
- [RadioButton] If you set a radio button value programmatically, this did not work. This has been fixed.
- [SearchDataSource] The $formattedFields property was not added when several formatters were set. This has been fixed.
- [SearchDataSource] The result set included broken link text when a user did not have read access to a referenced item. This has been fixed so that now the result set includes text that indicates whether the item does not exist or is protected.