With the release of Sitecore 9, a underappreciated DLL was removed: Sitecore.ExperienceExplorer.Business.dll
.
I’ve honestly never paid much attention to that DLL. The one thing I used it for, however, was determining if the current context was Experience Explorer. Synthesis made use of this:
public class SitecoreRenderingContext : IRenderingContext
{
...
public bool IsExperienceExplorer => Sitecore.ExperienceExplorer.Business.Managers.ModuleManager.IsExpViewModeActive;
...
}
The new way of handling this is via the IsExplorerMode method in the ExplorerContext class. This isn’t a static method, however. In order to maintain the static context, the above line was changed to:
public bool IsExperienceExplorer => DependencyResolver.Current.GetService<IExplorerContext>().IsExplorerMode();
I’m typically not a the #1 fan of DependencyResolver, but I wanted to ensure backwards compatibility.
You’ll need to include the following DLLs:
Sitecore.ExperienceExplorer
— this is for the ExplorerContext
class
Sitecore.ExperienceExplorer.Core
— this is for the IExplorerContext
interface
The new version of Synthesis compiled against Sitecore 9 will be up on NuGet next week.