<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">Blog posts by Dejan Caric</title><link href="http://world.optimizely.com" /><updated>2022-01-21T15:58:09.0000000Z</updated><id>https://world.optimizely.com/blogs/Dejan-Caric/</id> <generator uri="http://world.optimizely.com" version="2.0">Optimizely World</generator> <entry><title>How to set PrincipalInfo.CurrentPrincipal in Optimizely CMS 12</title><link href="https://dejan.blog/how-to-set-principalinfo-currentprincipal-in-optimizely-cms-12/" /><id>Back in the days, we could use PrincipalInfo.CurrentPrincipal = PrincipalInfo.CreatePrincipal(...). In CMS 12, PrincipalInfo.CurrentPrincipal has become read-only.</id><updated>2022-01-21T15:58:09.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Optimizely Forms - How to generate Submitted From Page Links instead of IDs</title><link href="https://dejan.blog/optimizely-forms-how-to-generate-submitted-from-page-links-instead-of-ids/" /><id>When exporting Optimizely Form submissions in XLSX format, Optimizely will export page IDs instead of proper page links. This blog post will show you how to extend the XLSXDataExporter and export page links instead of just IDs.</id><updated>2021-11-08T06:53:00.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Optimizely - Singleton Pages</title><link href="https://dejan.blog/optimizely-singleton-pages/" /><id>When developing Optimizely websites, we usually have to create single-instance page types like Settings Page, Checkout Page, etc. There are many ways to implement this, so let&#39;s see the most popular ones.</id><updated>2021-08-22T13:56:03.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Optimizely World Community Stats 2021</title><link href="https://dejan.blog/optimizely-world-community-stats-2021/" /><id>Which companies have the most CMS and Commerce certified developers? Who are the top 100 contributors? Check out the latest Optimizely World Community Stats for 2021!</id><updated>2021-08-08T13:08:43.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>How to delete expired prices in Optimizely Commerce</title><link href="https://dejan.blog/how-to-delete-expired-prices-in-optimizely-commerce/" /><id>Episerver (now Optimizely) doesn&#39;t have any built-in scheduled jobs for deleting expired prices. So even though expired prices are not returned when using IPriceService, the PriceDetails table can become pretty big over time, and you might be asked to do some clean-up anyway</id><updated>2021-08-08T10:07:09.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Optimizely - managing users from the code</title><link href="https://dejan.blog/optimizely-managing-users-from-the-code/" /><id>A list of useful code snippets for unlocking and creating user accounts from the code.</id><updated>2021-08-03T16:29:07.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Testing your Content Types for the missing AllowedTypes attribute</title><link href="https://www.dcaric.com/blog/testing-your-content-types-for-the-missing-allowedtypes-attribute" /><id>When defining new content types, we usually decorate all page types with the AvailableContentTypes attribute and all ContentAreas with the AllowedTypes attribute. Here&#39;s how you can unit-test your content types for the missing AllowedTypes and AvailableContentTypes attributes.</id><updated>2019-10-02T16:49:59.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Testing your Content Types for the missing AllowedTypes attribute</title><link href="https://www.dcaric.com/blog/testing-your-content-types-for-the-missing-allowedtypes-attribute" /><id>When defining new content types, we usually decorate all page types with the AvailableContentTypes attribute and all ContentAreas with the AllowedTypes attribute. Here&#39;s how you can unit-test your content types for the missing AllowedTypes and AvailableContentTypes attributes.</id><updated>2019-10-02T14:49:59.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Episerver World Community Stats 2019</title><link href="https://www.dcaric.com/blog/episerver-world-community-stats-2019" /><id>A list of top community members by CRP points, based on publicly available data from Episerver World.</id><updated>2019-03-11T18:18:15.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Creating Episerver Forms programmatically</title><link href="https://www.dcaric.com/blog/creating-episerver-forms-programmatically" /><id>I recently had to automate the process of creating Episerver Forms. In this blog post, I will show you how to create Episerver Forms from the code.</id><updated>2019-03-06T13:21:40.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Scheduled Jobs Cleaner for Episerver</title><link href="https://www.dcaric.com/blog/scheduled-jobs-cleaner-for-episerver" /><id>Cleaning up the tblScheduledItemLog and tblScheduledItem tables is a boring task, and sometimes we don&#39;t have direct access to the production database. For that reason, I’ve created an add-on that automatically removes ghost scheduled jobs from an Episerver database.</id><updated>2018-11-10T08:18:37.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Application Logging in Episerver DXC</title><link href="https://www.dcaric.com/blog/application-logging-in-episerver-dxc" /><id>In standard DXC Service setup, application logs are stored in BLOB storage with 90 days retention. They can be inspected in the PaaS portal using custom Log Stream or downloaded in CSV format for offline analysis. DXC Service comes with an Application Insights account, which can be used as a nice alternative to standard application logging.</id><updated>2018-10-21T21:12:34.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Property Name Overlay in On-Page Editing mode</title><link href="https://www.dcaric.com/blog/property-name-overlay-in-on-page-editing-mode" /><id>In On-Page Editing mode, Episerver will create a blue border around all editable properties. This feature is very useful. However, if you have a lot of properties on the page, it may be challenging to locate the correct property, and editors may be using All Properties mode more often than On-Page Editing.</id><updated>2018-08-20T12:45:48.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Testing Your Visual Studio Solutions for Files That Are Missing or Not Included</title><link href="https://www.dcaric.com/blog/testing-your-visual-studio-solutions-for-files-that-are-missing-or-not-included" /><id>When some files are missing in a git repository, or they don&#39;t have the correct Build Action in the project, a build server may deploy a bad artifact to the production environment. One way to detect this and stop bad deploys is to set up unit tests.</id><updated>2018-04-11T22:43:21.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Hiding properties in EPiServer edit mode based on the language branch</title><link href="https://www.dcaric.com/blog/hiding-properties-in-episerver-edit-mode-based-on-the-language-branch" /><id>Building a multi-language website is always challenging. Among other things, we need to think about date formats, language analyzers, and full-text search. However, we must also not forget the site editors and provide them the best possible editing experience.</id><updated>2018-02-12T21:51:35.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Creating EPiServer Page Types using ReSharper File Templates</title><link href="https://www.dcaric.com/blog/creating-episerver-page-types-using-resharper-file-templates" /><id>When creating new page types, developers mostly use the EPiServer CMS Visual Studio Extension or copy and paste the code from existing files. In this blog post, I’ll show you how to create EPiServer page types using ReSharper file templates. Once you learn all the shortcuts, it becomes much faster to generate code using ReSharper, rather than copy and pasting.</id><updated>2018-01-02T15:57:29.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Retrieving Available Content Types in EPiServer</title><link href="https://www.dcaric.com/blog/retrieving-available-content-types-in-episerver" /><id>After a few development iterations it can be difficult to keep an overview of all content types and their properties. We can always look in Visual Studio or click through different menus in edit and admin mode, but that’s just too time-consuming. It would be nice to have all that information in one place, in a user-friendly format, and be able to filter and export the data to a PDF file.</id><updated>2017-12-12T17:14:24.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Retrieving file URL from edit mode</title><link href="https://www.dcaric.com/blog/retrieving-file-url-from-edit-mode" /><id>Many people wonder how to retrieve the file URL from edit mode. I’ve created an add-on which provides a quick and easy way to do that.</id><updated>2017-10-29T19:34:53.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Logging to Console using Log4Net</title><link href="https://www.dcaric.com/blog/logging-to-console-using-log4net" /><id>Logging can be very useful when debugging C# code. ColoredConsoleAppender logs all messages to the console and highlights error, info, and debug messages with different colors, which makes the debugging experience a bit more pleasant.</id><updated>2017-09-12T09:56:45.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Removing extra DIVs from EPiServer Content Areas</title><link href="https://www.dcaric.com/blog/removing-extra-divs-from-episerver-content-areas" /><id>The default ContentAreaRenderer implementation renders div elements around the content area and every content area item. It is possible to control the rendering of wrapping elements, but not to disable them completely.</id><updated>2017-08-02T17:32:24.0000000Z</updated><summary type="html">Blog post</summary></entry></feed>