Dette er CodeArts blog. Vi deler thought-leadership og tekniske tips og tricks - men som regel på engelsk.
When best practice isn't the best - Dependency Injection and Optimizely CMS
Some people live and breath 'best practice' development. I am not one of them. Risk is, in-experienced developers (or sometimes experienced) might use them just cause they are 'best practice' and not think more about it. Even when it turns out they are not. Here is little example...
AI Assisted Content Creation - in Optimizely CMS & Commerce (AI Series - Part 2)
AI assisted content creation is an exciting new approach driven by algorithms and models like GPT-3, DALL-E, Stable Diffusion and more. At CodeArt we've been experimenting how to use these technologies to enhance the editorial process. In this second part of the blog series on the topic I'll share a video of a prototype integration to Optimizely (Episerver) CMS of content creation using AI for both images and text.
Content Report Generator v.2.
When you are about to migrate a site from CMS 11 to CMS 12, it's not unusual to want to do some rewriting and re-implementation to clean up the architecture as part of the project. When you do that (and in many other cases) it can be incredibly helpful to have a handy overview of your content, it's usage and your visitor groups and their usage. Here is an easy way to get that.
Optimizely CMS: List content recursively on a page - and list the visitor groups used
Quite often a lot of the content on pages in Optimizely Content cloud (aka Episerver CMS) is structured in blocks placed in content areas. And often even blocks in blocks. Sometimes it's needed to quickly get a list of all the content items on a page - and sometimes you might also be interested in which visitor groups are used. Here is a couple of extension methods to help you with that.
Listing all endpoints in Optimizely CMS 12 / .NET 5
Routing has significantly changed in .NET 5 - and that affects many parts of Optimizely (Episerver) CMS 12. For example we have to get used to endpoints a middleware. As I am working on upgrading a few different add-ons I found it could be useful to see which routes are registered out of the box.
Anti-Pattern: Don't modify Optimizely CMS (Episerver) content objects in the Controller
Using your content object (CurrentPage / CurrentBlock) as a makeshift viewmodel where you change settings or extend it with user data in the controller before passing it to the view, is unfortunately (and to my surprise) a pretty wide-spread practice among developers implementing Optimizely (Episerver) web sites. But it really needs to stop.
Optimizely (Episerver): Split folder structure for blocks and media
Since version 7 or 8 of Episerver (now Optimizely CMS), the shared Blocks and Media have been sharing the same folder structure. Some people see a benefit with the shared structure, and some absolutely hate it. Personally, I have gotten used to it - but I was recently asked if it's possible to split it up. Here's the hack I came up with.