After primarily working with SDL Tridion for the past 5 years (along with Contentful) and prior to that Umbraco. I have recently started working with Episerver, and I wanted to give my initial thoughts on it.
After starting the training/certification I noticed some really nice features of Episerver which I think will get used on commercial projects I work on.
On-page editing is a key feature of Episerver, to the point it is considered the default approach, with the 'All properties' view being a second option. I think as a developer I will probably continue to use the 'All properties' view, but I will certainly need to consider the 'On-page editing' view and ensure the live editing all works as expected.
Code driven content schema being the first big difference, this for me is a real bonus, the other CMS there is always a disjoint between the content schemas and domain models, but this gets around it, there is still the option for admins to make limited changes the schema in the admin system, including adding properties, but I will be looking for a way to disable some of this functionality.
Episerver has a custom implementation for initialising internal Episerver modules when the application is started. In addition to the internal modules it will also run up any third-party and custom modules.
If you want to create a custom module, you need to add the
[InitializableModule] attribute or
[ModuleDependency(...)] attribute to your class, and the class also needs to inherit the
I can see a number of purposes for this, and combined with Hangfire it will be very powerful.
Scripted Test Content My first idea, and something I will be implementing on my first build will be 'scripted' test content for developer testing/QA teams/UAT testing. This will simply create an instance of every page type/block type if they don't already exist and publish them out. Knowing that the developers/qa/uat all have the same base line test content to work with will be a big win in my opinion.
Cache Warming Another use I can see for this would be cache warming, using in hangfire the init module could make a several concurrent 'fire and forget' tasks that do web requests to complex/key/high traffic pages to create any caches associated with the requests.
Another great feature of the Episerver platform is the ability to have scheduled jobs. It comes with several scheduled jobs out of the box, such as emptying the recycle bin. You can also create additional scheduled jobs which can be used for a various purposes, such as regular imports of content/data, producing reports, etc.
Built straight into Episerver are something called Visitor Groups, and these can be used for personalising content on a page. There are several built in Visitor Groups for Cookies, Date/Time, etc. But if they don't work for you, you can create your in, again in code, which makes them very flexible and customisable.
There are many more areas I still need to touch on and find out more about, including Episerver Digital Experience Platform, Episerver Find and Commerce Cloud. As I find out more I will keep creating new posts.