Refactoring 404 handler to use SQL store

The 404 handler used DDS as storage for redirects. While DDS has a simple API and is easy to use, it doesn't perform well. So I decided to refactor the 404 handler to support different stores and implemented a SQL store.

Configuring your Episerver libraries .NET Core way

Quite often when you develop a library, you need to run some initialization code or allow a library user to configure your it. Usually, developers add initializable modules in their libraries and use settings from Web.config to configure their libraries. However, these approaches have some drawbacks.

Dangerous scheduled jobs

For several months we have noticed many exceptions during the product import in one of our projects. It is a custom import which is running in a scheduled job, and we didn't think that it could be the cause for those exceptions.

Finding content type conflict reasons

Episerver Developer Tools are useful for finding issues in your project/website. There is a tab - "Content Type Analyzer" which displays the details of your content types. In some projects you may notice that some types have issues with synchronization - SynchronizationStatus has value "Conflict," but it does not provide any hint about the reason for the conflict.

EpiEvents for Commerce

Recently I have created an EpiEvents support for main Commerce events - InventoryUpdated and PriceUpdated.

EpiEvents library support for approval events

Last year I created a library EpiEvents for pub/sub like Episerver event handling. It supported all content related events, but after my package release, Episerver has released content approvals. The content approvals feature also raises events. Now I have added support also for those.

FeaturesViewEngine with caching

Last December I have published a library - FeaturesViewEngine which enables feature folder support. It had one drawback - it did not use caching. Now I have released a new version with caching enabled.

New version of 404 handler

We just released a new version of 404 handler which includes several bug fixes. This release also includes refactoring of routing and we added unit tests for the main functionality.

ServiceConfiguration attribute considered harmful

When working with Episerver, there are several ways how to register your classes in an IoC container. You can choose between StructureMap's configuration API, Episerver's configuration API or use Episerver's ServiceConfiguration attribute on your class.

Setting up Hangfire in Episerver

Hangfire is a great tool for running tasks in the background. When working on the Episerver CMS and Commerce projects, you have to send emails or run another background task quite often, and Hangfire helps to achieve this reliably.