Latest Posts
Updating Sitecore XP Roles to rotate logs based on file size
UBy default, logging within Sitecore XP roles uses a 1GB size limit per file and retains limits logs to 7 entries, logs are rolled per date. What this means, **is if you hit the 1GB file size limit, logging will be stopped for that day and will resume the next**...
Filtering Sitecore tree type fields by the inheritance chain
FWhen working with the Helix design patterns, a typical situation comes up where the project will include templates in the Feature or Foundation layer that contain TreeList, TreeListEx or DropTree fields that will need to enforce selections based on a template in that module. However, due to limitations from the...
Sitecore Horizon Overview
S![Sitecore Horizon with Habitat](/assets/images/Sitecore-Horizon-with-Habitat.png) Sitecore Horizon is the next-generation editor for the Sitecore Experience Platform. Horizon includes the following features: - **Page Editor** - used to create and edit pages - **Simulator Mode** - used to preview web pages across devices, including a timeline view to preview web pages by dates - **Insights View** -...
Pattern for implementing a custom HtmlCacheClearer
PWhile there are many blog posts detailing how to implement a custom HtmlCacheClearer, some of these blog posts omit the fact that the out of the box HtmlCacheClearer can be used with multiple type of _EventArgs._ The reason for multiple types of _EventArgs_ is due to the separation of how...
A faster IsDerived Extension Method
AIf you have been around Sitecore development long enough, you have undoubtedly run into the extension method 'IsDerived'. This extension method allows developers to easily determine whether an item inherits from a specific base template; the template can be anywhere in the inheritance chain. This opens up a lot of...
A tale of improving the Sitecore 8.2 experience editor performance
AIn recent months, our Content Authors for an eCommerce site built with **Sitecore 8.2** running on Azure (IaaS) were complaining about the painstaking process of editing and building pages with Sitecore's Experience Editor. While not unheard for Content Authors to complain that the Experience Editor is a bit sluggish (as...
Sitecore MVP 2019 - Technology
SYep, it happened! I am happy to announce that I have been awarded a Sitecore Most Valuable Professional (MVP) Award for 2019 in Technology. The Sitecore MVP Award is awarded to the most active Sitecore community members from around the world who provide valuable online and offline expertise that enriches...
Creating a custom command with Sitecore PowerShell Extensions
CEver wondered how to extend [Sitecore PowerShell Extensions](https://marketplace.sitecore.net/Modules/Sitecore_PowerShell_console.aspx) (SPE) and add custom commands to streamline your development? In this post, i'll review what you need to do to quickly start development. > The Sitecore PowerShell Extensions (SPE) module is a Sitecore development accelerator which can drastically increase your productivity and curtail...
Failed to synchronize segments. Message: Value cannot be null
FProbably once or twice a week, I take a few moments to review the Sitecore Logs looking for errors that may have been introduced that could be affecting our environments. While not a new message, I finally had a few moments to investigate what appears to be a common error...
Reaching the max pages viewed threshold for an xDb Session
RIn my current project, I came across an odd issue for a component that was developed using interactions captured by xDb where xDb would completely stop tracking after what appeared to be at arbitrary intervals. To some testers, xDb would stop tracking after 9 page views, others it was 10-12...
Mapping integers values to boolean values within Solr with the ContentSearch API
MIf you work with Sitecore and search driven experiences enough, you will undoubtedly run into a scenario where you need to map a complex type from your codebase to a single entry into your index. Luckily for us, Sitecore has already built the abstractions and the implementation into the Content Search...
Targets dropdown not populating within the Link Dialog
TAre you missing your link targets within the Speak UI link selection dialog, InsertLinkViaTreeDialog? If you have searched the internet and still haven't come across an answer that worked, you have come to the right place. ### Missing Targets Dropdown Solution When the dialog first loads, it pulls the _TargetsSearchPanelConfig_ provided within...
Configuring Sitecore's SolrProvider to use SolrPostConnection
CBy default, Sitecore's ContentSearch Solr implementation is configured to send all requests to Solr using a HTTP **GET**. For most implementations, this is fine and shouldn't need to be changed. However, if you are doing very complex queries you'll quickly run into IIS's web server query string and URL length...
Overriding the Sitecore Item Resolver? Watch out for the mvc.getPageItem pipeline!
OSomething that has been a bit annoying to me when developing custom _ItemResolver's_ for Sitecore MVC is that you cannot simply add logic into the _httpRequestBegin_ pipeline to add your custom logic. No, that would be too simple right? If you are using Sitecore MVC than not only must you do your...
Sitecore Page Mode Switcher
SEvery now and again I find myself looking for a way to easily switch the Sitecore PageMode for a code block for either testing what happens when in specific modes or render renderings a specific way. The easiest solution is to use _**SetDisplayMode**_ on the Context Site: ```c# Sitecore.Context.Site?.SetDisplayMode(DisplayMode.Normal, DisplayModeDuration.Temporary); ``` While this is very clean...
Handling Unhandled Exceptions within Sitecore Renderings
HEven the best developers cannot stop the inevitable from happening. Whether it be a mistyped variable name within a view, an invalid content type set, or the dreaded _null reference exception;_ errors like these and others creep up from time to time that can in some cases, bring down your Sitecore...
Results from upgrading to Project Dilithium and Unicorn 4
RIf you haven't been following along with the community, the serialization framework that has quickly become the standard for Sitecore received an upgrade this past week. I don't think the timing of this release could have come at a better time, as i've been experiencing really poor performance with synching...
Unit-testing devices and layouts with Sitecore.FakeDb
UAfter writing a few extension methods that checked whether a Sitecore Item had a layout for the default device or any device, I wondered if I could use the Sitecore.FakeDb library to unit-test these extension methods and provide some much needed code coverage for a project i'm working on. As...
Deliver faster with the Fluent ContentSearch Library
DWith the Sitecore 7 release, Sitecore introduced the ContentSearch API to improve developer's lives by providing a familiar LINQ abstraction on top of Lucene and SOLR. This allowed developers to develop against a single API that could work with any search provider, all while using LINQ's very, very likable API. While the...
Sitecore Cache Extensions
SMonths ago, I wrote a helix-based module for caching within Sitecore that allowed developers to add configuration-based caches to their projects in a unit-testable way. Without a proper introduction, the module didn't receive much fanfare... bummer. So, here goes... ##### Introducing the Sitecore Cache Extensions The Sitecore Cache Extensions is a helix-based module that...