﻿<?xml version="1.0" encoding="utf-8"?><rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0"><channel><title>CodeArt - .NET Posts</title><link>https://www.codeart.dk/expertise/.net/rss/</link><description /><language>en</language><generator>CodeArt.dk</generator><item><guid isPermaLink="true">https://www.codeart.dk/blog/2026/5/announcing-piwikpro-optimizely-connector/</guid><link>https://www.codeart.dk/blog/2026/5/announcing-piwikpro-optimizely-connector/</link><category>Integrations</category><category>Web Content Management</category><category>Optimizely (Episerver)</category><category>Behavior Analytics</category><category>Addon Development</category><category>.NET Development</category><title>Piwik PRO Connector for Optimizely CMS — Now on NuGet (and Yes, It Speaks Both 12 and 13)</title><description>Analytics has spent the last decade living in another tab — and what's in that tab usually isn't the full story. Between consent requirements, browser restrictions, and the gap between "what marketing wants to know" and "what the tracking script actually captures", most analytics setups end up describing about half the picture. The new Piwik PRO Connector for Optimizely CMS is now live on NuGet, dual-targeted for both CMS 12 (.NET 8) and CMS 13 (.NET 10) from the exact same package — and one of its quieter superpowers is making it dramatically easier to get rich Optimizely context (content type, language, audience membership, block impressions, plus whichever custom dimensions matter for your site) into Piwik PRO, so the dashboards finally know what they're looking at. Editors get analytics next to their content. Developers get a tracking API that doesn't require writing JavaScript by hand. And the privacy-first part comes for free, courtesy of Piwik PRO.</description><pubDate>Mon, 04 May 2026 20:09:31 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2026/3/announcing-piwik-pro-.net-sdk</guid><link>https://www.codeart.dk/blog/2026/3/announcing-piwik-pro-.net-sdk</link><category>.NET Development</category><category>Behavior Analytics</category><category>Web Content Management</category><category>Integrations</category><category>Website Improvements</category><title>Announcing Piwik PRO .NET SDK</title><description>For years, developers have treated analytics as something external — a tool marketers use while developers stay focused on applications. But what if analytics data could become a first-class citizen in your .NET applications? That’s the idea behind the new Piwik PRO .NET SDK — a developer-friendly way to track events, query analytics using LINQ-style syntax, and integrate privacy-first analytics directly into modern .NET apps. At CodeArt we helped build the SDK and are now launching open source sample code, including a fully working Blazor sample, as well as good SDK documentation.</description><pubDate>Mon, 16 Mar 2026 11:31:07 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2026/3/ai-generated-optimizely-developer-newsletter/</guid><link>https://www.codeart.dk/blog/2026/3/ai-generated-optimizely-developer-newsletter/</link><category>Optimizely (Episerver)</category><category>Artificial Intelligence</category><category>.NET Development</category><title>AI Generated Optimizely Developer Newsletter</title><description>Updates in the Optimizely ecosystem are everywhere: blog posts, forums, release notes, NuGet packages, and documentation changes. This newsletter brings the important ones together in one place.</description><pubDate>Tue, 10 Mar 2026 19:51:35 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2026/2/using-headlesskit-to-build-a-head-for-an-optimizely-saas-cms-in-.net-10</guid><link>https://www.codeart.dk/blog/2026/2/using-headlesskit-to-build-a-head-for-an-optimizely-saas-cms-in-.net-10</link><category>C#</category><category>Vision Demos &amp; Prototypes</category><category>.NET Development</category><category>Web Content Management</category><category>Frontend Development</category><category>Optimizely (Episerver)</category><title>Using HeadlessKit to build a head for an Optimizely SaaS CMS in .NET 10</title><description>Headless has a tendency to promise freedom and deliver alignment meetings. Two codebases. Two sets of models. Two teams trying very hard not to drift apart. With Optimizely SaaS CMS, headless is mandatory. So instead of fighting it, I decided to flip it. What happens if we build the head first — properly, in .NET — and let the CMS adapt to that reality? That experiment became CodeArt.Optimizely.HeadlessKit - now available as open source.</description><pubDate>Thu, 19 Feb 2026 20:41:36 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2025/11/optimizely-package-explorer-now-with-extra-superpowers/</guid><link>https://www.codeart.dk/blog/2025/11/optimizely-package-explorer-now-with-extra-superpowers/</link><category>.NET Development</category><category>Web Content Management</category><category>Optimizely (Episerver)</category><category>Tips and Tricks</category><title>Optimizely Package Explorer: Now With Extra Superpowers</title><description>If you’ve ever opened a .episerverdata file and asked “What is in here?” (guilty as charged) — then this is your moment. We’ve given our open-source tool CodeArt.Optimizely.PackageExplorer a fresh update with new features and polish, so you can slice, dice and explore those content packages with ease. Grab some coffee (or your beverage of choice) and let’s dive in.</description><pubDate>Thu, 20 Nov 2025 20:27:49 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2025/8/opalytics-under-the-hood-pt.-2--from-piwik-pro-to-opal-and-why-i-rolled-my-own-tools-sdk</guid><link>https://www.codeart.dk/blog/2025/8/opalytics-under-the-hood-pt.-2--from-piwik-pro-to-opal-and-why-i-rolled-my-own-tools-sdk</link><category>.NET Development</category><category>Artificial Intelligence</category><category>Behavior Analytics</category><category>Optimizely (Episerver)</category><category>C#</category><category>Vision Demos &amp; Prototypes</category><title>Opalytics Under the Hood – How I wired Piwik PRO into Opal with .NET and JSON</title><description>In the previous post , I showed how Opalytics lets you ask human questions and get analytics answers. This time we’re going full dev-mode: OAuth tokens, discovery docs, tool calling—and a small detour where I didn’t use the official SDK and built my own attribute-based version instead.</description><pubDate>Thu, 28 Aug 2025 11:43:31 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2025/8/opalytics-turning-analytics-into-actionable-insights-with-opal--piwik-pro/</guid><link>https://www.codeart.dk/blog/2025/8/opalytics-turning-analytics-into-actionable-insights-with-opal--piwik-pro/</link><category>Optimizely (Episerver)</category><category>Behavior Analytics</category><category>Web Content Management</category><category>Artificial Intelligence</category><category>.NET Development</category><category>Vision Demos &amp; Prototypes</category><title>Opalytics: Talking to Your Analytics (So You Don’t Have to Look at Yet Another Dashboard)</title><description>My hackathon project for Optimizely OMVPs: plugging Piwik PRO into Opal, so you can just ask questions instead of fiddling with filters.</description><pubDate>Mon, 25 Aug 2025 15:04:03 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2025/5/adding-granular-editor-access-control-to-built-in-parts-of-optimizely-cms-12/</guid><link>https://www.codeart.dk/blog/2025/5/adding-granular-editor-access-control-to-built-in-parts-of-optimizely-cms-12/</link><category>Optimizely (Episerver)</category><category>.NET Development</category><category>Web Content Management</category><category>Tips and Tricks</category><category>C#</category><title>Adding granular editor access control to built-in parts of Optimizely CMS 12</title><description>A classic challenge in Optimizely CMS (well, really in any system I guess), is to ensure that the right people have the right access - and that potentially dangerous actions can't be accidentally done by unqualified users.</description><pubDate>Fri, 30 May 2025 11:31:25 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2025/5/scan-file-uploads-for-malware-in-episerveroptimizely-cms-11---episerver-forms/</guid><link>https://www.codeart.dk/blog/2025/5/scan-file-uploads-for-malware-in-episerveroptimizely-cms-11---episerver-forms/</link><category>.NET Development</category><category>Optimizely (Episerver)</category><category>C#</category><category>Tips and Tricks</category><title>Scan file uploads for Malware in EPiServer/Optimizely CMS 11 - EPiServer Forms</title><description>Do you have forms on your website where visitors can upload files? Perhaps CV's for job applications or documentation for claims, or other kind of applications or images? And have you thought about the risk of these files potentially containing malware right on your production webserver? A client of mine has this concern on an EPiServer (now Optimizely)  CMS 11 using the EPiServer Forms extension and I investigated and found an approach to handle it.</description><pubDate>Fri, 09 May 2025 14:08:19 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2024/8/series-headless-site-on-optimizely-graph-exploring-interesting-ways-we-can-query-the-content/</guid><link>https://www.codeart.dk/blog/2024/8/series-headless-site-on-optimizely-graph-exploring-interesting-ways-we-can-query-the-content/</link><category>.NET Development</category><category>Web Content Management</category><category>Optimizely (Episerver)</category><category>Information Retrieval</category><category>API Building</category><title>[Series: Headless Site on Optimizely Graph] Exploring interesting ways we can query the content</title><description>Look up in the sky! It's a bird! No, wait - it's Optimizely Graph! This is part 2 in the blog post series where we explore how a fully functioning headless site can be build in .NET core using Optimizely Graph, and in this post we'll see how Optimizely Graph is both a powerful search &amp; query engine (on par with good old Episerver Find) - but also how it can fully replace the content delivery API.</description><pubDate>Sat, 24 Aug 2024 12:44:54 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2024/6/new-series-building-a-.net-core-headless-site-on-optimizely-graph-and-saas-cms</guid><link>https://www.codeart.dk/blog/2024/6/new-series-building-a-.net-core-headless-site-on-optimizely-graph-and-saas-cms</link><category>Web Content Management</category><category>.NET Development</category><category>Optimizely (Episerver)</category><title>New Series: Building a .NET Core headless site on Optimizely Graph and SaaS CMS</title><description>Welcome to this new multi-post series where you can follow along as I indulge in yet another crazy experiment: Can we make our beloved Alloy site run as a headless site on top of Optimizely Graph (and SaaS CMS) using a mix of both MVC, Razor Pages and Blazor components - and can we make both the developer and editor experience as we are used to in classic Optimizely/Episerver sites? Let's find out!</description><pubDate>Fri, 14 Jun 2024 14:59:16 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/12/christmas-countdown-3-nihs---not-invented-here-syndrome-in-real-life/</guid><link>https://www.codeart.dk/blog/2023/12/christmas-countdown-3-nihs---not-invented-here-syndrome-in-real-life/</link><category>.NET Development</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><category>Website Improvements</category><category>Tips and Tricks</category><category>Tech Talk</category><title>Christmas Countdown: #3 NIHS - Not Invented Here Syndrome in real life</title><description>One of the most common and dreaded diseases in web site development often go undiagnosed and untreated for a long time. But it really should be, cause the effects are scary. Yes, I'm talking about the Not-Invented-Here Syndrome</description><pubDate>Thu, 21 Dec 2023 06:00:31 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/12/christmas-countdown-5-sure-our-servers-are-locked-up-tight-in-the-basement/</guid><link>https://www.codeart.dk/blog/2023/12/christmas-countdown-5-sure-our-servers-are-locked-up-tight-in-the-basement/</link><category>.NET Development</category><category>Web Content Management</category><category>Optimizely (Episerver)</category><title>Christmas Countdown: #5 Sure, our servers are locked up tight in the basement!</title><description>Securing your website is as important a topic as it is large and complex. In this post I will not go into too many details, but highlight a few problems I often see in Optimizely/EPiServer CMS implementations.</description><pubDate>Tue, 19 Dec 2023 06:00:31 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/12/christmas-countdown-7-ddos-whats-that-what-do-you-mean-prepared/</guid><link>https://www.codeart.dk/blog/2023/12/christmas-countdown-7-ddos-whats-that-what-do-you-mean-prepared/</link><category>.NET Development</category><category>Web Content Management</category><category>Optimizely (Episerver)</category><category>Website Improvements</category><category>Tips and Tricks</category><category>Tech Talk</category><title>Christmas Countdown: #7 DDoS? What's that? What do you mean 'prepared'?</title><description>Is your website ready to handle intense usage scenarios like DDoS attacks or black friday? Many people think that testing performance is the same as testing for load - but it's not and sometimes it might even work against each other.</description><pubDate>Sun, 17 Dec 2023 06:00:32 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/12/christmas-countdown-8-code-maintenance-is-90-of-the-work/</guid><link>https://www.codeart.dk/blog/2023/12/christmas-countdown-8-code-maintenance-is-90-of-the-work/</link><category>.NET Development</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><category>Website Improvements</category><category>Tips and Tricks</category><category>Tech Talk</category><title>Christmas Countdown: #8 Code maintenance is 90% of the work</title><description>Greenfield development is by far the most fun for everybody. So it's easy to forget that most development work is actually maintenance. And every new line of code you write means more code to maintain. Almost all codebases I review have significant technical debt. And the debt starts to accumulate from the moment you start coding.</description><pubDate>Sat, 16 Dec 2023 06:00:31 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/12/christmas-countdown-9-what-viewmodels-nah-we-dont-need-those/</guid><link>https://www.codeart.dk/blog/2023/12/christmas-countdown-9-what-viewmodels-nah-we-dont-need-those/</link><category>Tech Talk</category><category>C#</category><category>Tips and Tricks</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><category>.NET Development</category><title>Christmas Countdown: #9 What? ViewModels? Nah, we don't need those</title><description>This is another classic - with a big impact! Since recycling is great, why don't we just reuse the content model as a view model? We can just enrich it in the controller, right?</description><pubDate>Fri, 15 Dec 2023 06:00:30 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/12/christmas-countdown-11-dependency-injection-is-not-as-easy-as-it-seems/</guid><link>https://www.codeart.dk/blog/2023/12/christmas-countdown-11-dependency-injection-is-not-as-easy-as-it-seems/</link><category>Tech Talk</category><category>Tips and Tricks</category><category>.NET Development</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><title>Christmas Countdown: #11 Dependency Injection is not as easy as it seems</title><description>Dependency Injection is an extremely useful pattern. It has been used with EPiServer CMS for years - and with .NET Core it has truly become the go-to method of coupling your business logic together. However, once you start having services depend on other services their lifetimes can give some unexpected difficulties.</description><pubDate>Wed, 13 Dec 2023 06:00:30 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/6/optimizely-search--navigation---get-autocomplete-suggestions-in-right-language/</guid><link>https://www.codeart.dk/blog/2023/6/optimizely-search--navigation---get-autocomplete-suggestions-in-right-language/</link><category>.NET Development</category><category>Optimizely (Episerver)</category><category>Tips and Tricks</category><category>C#</category><title>Optimizely Search &amp; Navigation - Get autocomplete suggestions in right language</title><description>When you are using Optimizely Search &amp; Navigation (Find) to help you generate autocomplete suggestions server side in a multi-language scenario it can be tricky (and poorly documented) to figure out how to get the suggestions in the correct language.</description><pubDate>Mon, 05 Jun 2023 09:50:20 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/3/using-system.text.json-to-do-polymorphic-json-conversion-in-.net-6</guid><link>https://www.codeart.dk/blog/2023/3/using-system.text.json-to-do-polymorphic-json-conversion-in-.net-6</link><category>.NET Development</category><category>C#</category><title>Using System.Text.Json to do polymorphic Json conversion in .NET 6</title><description>When using System.Text.Json to serialize complex objects you sometimes need to go a bit beyond how the default serialization works. Here are a few helpful converters - for example for doing polymorphic conversion.</description><pubDate>Thu, 30 Mar 2023 10:03:01 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/1/new-open-source-package-codeart.matomotracking</guid><link>https://www.codeart.dk/blog/2023/1/new-open-source-package-codeart.matomotracking</link><category>Behavior Analytics</category><category>Vision Demos &amp; Prototypes</category><category>Integrations</category><category>Web Content Management</category><category>.NET Development</category><title>New Open Source Package: CodeArt.MatomoTracking</title><description>As Google Analytics have gotten harder and harder to use due to GDPR, legal and privacy concerns I have turned more and more to Matomo. I recently completed v.1 of a new open source tracking integration.</description><pubDate>Mon, 30 Jan 2023 19:11:31 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/1/when-best-practice-isnt-the-best---dependency-injection-and-optimizely-cms/</guid><link>https://www.codeart.dk/blog/2023/1/when-best-practice-isnt-the-best---dependency-injection-and-optimizely-cms/</link><category>Life as a Coder</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><category>.NET Development</category><title>When best practice isn't the best - Dependency Injection and Optimizely CMS</title><description>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...</description><pubDate>Sun, 29 Jan 2023 19:51:32 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2022/12/running-optimizely-cms-12-episerver-on-a-raspberry-pi/</guid><link>https://www.codeart.dk/blog/2022/12/running-optimizely-cms-12-episerver-on-a-raspberry-pi/</link><category>Life as a Coder</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><category>.NET Development</category><title>Running Optimizely CMS 12 (Episerver) on a Raspberry Pi</title><description>.NET Core is cross platform. But can you really run Optimizely CMS 12 and everything needed on a tiny ARM based Raspberry PI? Yes you can, and it's not that hard.</description><pubDate>Sun, 18 Dec 2022 20:18:38 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2022/6/optimizely-developer-meetup-copenhagen---june/</guid><link>https://www.codeart.dk/blog/2022/6/optimizely-developer-meetup-copenhagen---june/</link><category>.NET Development</category><category>Web Content Management</category><category>Optimizely (Episerver)</category><category>Vision Demos &amp; Prototypes</category><category>Tech Talk</category><title>Optimizely Developer Meetup Copenhagen - June</title><description>Calling all Optimizely (Episerver) Developers in Copenhagen and surrounding area. It's once again time for a real-life meetup!</description><pubDate>Thu, 02 Jun 2022 17:45:10 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2022/6/optimizely-cms-list-content-recursively-on-a-page---and-list-the-visitor-groups-used/</guid><link>https://www.codeart.dk/blog/2022/6/optimizely-cms-list-content-recursively-on-a-page---and-list-the-visitor-groups-used/</link><category>Optimizely (Episerver)</category><category>C#</category><category>.NET Development</category><category>Tips and Tricks</category><title>Optimizely CMS: List content recursively on a page - and list the visitor groups used</title><description>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.</description><pubDate>Wed, 01 Jun 2022 19:55:39 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2021/11/listing-all-endpoints-in-optimizely-cms-12--.net-5</guid><link>https://www.codeart.dk/blog/2021/11/listing-all-endpoints-in-optimizely-cms-12--.net-5</link><category>.NET Development</category><category>Addon Development</category><category>Optimizely (Episerver)</category><title>Listing all endpoints in Optimizely CMS 12 / .NET 5</title><description>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.</description><pubDate>Wed, 24 Nov 2021 21:13:08 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2021/10/anti-pattern-dont-modify--optimizely-cms-episerver--content-objects-in-the-controller/</guid><link>https://www.codeart.dk/blog/2021/10/anti-pattern-dont-modify--optimizely-cms-episerver--content-objects-in-the-controller/</link><category>C#</category><category>Tips and Tricks</category><category>Web Content Management</category><category>.NET Development</category><category>Optimizely (Episerver)</category><title>Anti-Pattern: Don't modify  Optimizely CMS (Episerver)  content objects in the Controller</title><description>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.</description><pubDate>Thu, 28 Oct 2021 12:14:00 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2021/10/optimizely-episerver-split-folder-structure-for-blocks-and-media/</guid><link>https://www.codeart.dk/blog/2021/10/optimizely-episerver-split-folder-structure-for-blocks-and-media/</link><category>Tips and Tricks</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><category>.NET Development</category><title>Optimizely (Episerver): Split folder structure for blocks and media</title><description>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.</description><pubDate>Wed, 06 Oct 2021 06:00:45 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2021/9/optimizely-gridview-customizations/</guid><link>https://www.codeart.dk/blog/2021/9/optimizely-gridview-customizations/</link><category>Tips and Tricks</category><category>.NET Development</category><category>Optimizely (Episerver)</category><title>Optimizely Gridview Customizations</title><description>One of my favorite add-ons these days is the GridView. It's pretty customizable, but some of the customizations aren't the most well documented. Here's a couple of tricks I've found handy when using it.</description><pubDate>Thu, 23 Sep 2021 05:30:24 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2020/6/experimenting-with-wikipedia-topics-for-content/</guid><link>https://www.codeart.dk/blog/2020/6/experimenting-with-wikipedia-topics-for-content/</link><category>Vision Demos &amp; Prototypes</category><category>Web Content Management</category><category>Information Retrieval</category><category>Big Data</category><category> Elastic Search</category><category>.NET Development</category><title>Experimenting with Wikipedia topics for Content</title><description>Automatically tagging your content with topics from a known, well described topic base like Wikipedia can have many cool uses. You can organize your content, suggesting keywords and outbound links, not to mention that you can build up interest profiles of your visitors. These interest profiles can the be used to suggest appropriate content and keep your visitors engaged. Inspired by Episerver Content Intelligence and a couple of earlier projects I've done in the past, I decided to perform an experiment to see how far I could get with a DIY approach as opposed to the traditional cloud-based NLP/AI.</description><pubDate>Wed, 03 Jun 2020 13:52:14 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2020/5/reading-very-large-gzipped-json-files-in-c/</guid><link>https://www.codeart.dk/blog/2020/5/reading-very-large-gzipped-json-files-in-c/</link><category>.NET Development</category><category>C#</category><title>Reading very large gzipped json files in c#</title><description>This is a little code snippet that I often find quite handy. It's a piece of c# code that opens a gzipped json file and iterates through the items in it. Since it takes it piece by piece (as opposed to loading everything in memory) it's can pretty much handle files of any size.</description><pubDate>Sun, 31 May 2020 08:55:04 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2020/3/free-online-course---c-and-.net-core-introduction</guid><link>https://www.codeart.dk/blog/2020/3/free-online-course---c-and-.net-core-introduction</link><category>.NET Development</category><category>C#</category><category>Life as a Coder</category><category>Tech Talk</category><title>Free online course - C# and .NET Core introduction</title><description>The best way to learn coding - and in particular c# and .NET Core - is to code. CodeArt is proud to make all the teaching materials to a newly created course online and freely available for self-study.</description><pubDate>Fri, 20 Mar 2020 14:19:06 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2020/3/packages-restored-but-your-project-is-still-missing-references/</guid><link>https://www.codeart.dk/blog/2020/3/packages-restored-but-your-project-is-still-missing-references/</link><category>.NET Development</category><category>Addon Development</category><category>C#</category><title>Packages restored, but your project is still missing references?</title><description>Here is a classic error that happens to me a lot. It's extremely simple, yet sometimes I find myself spending too much time trying to remember what it is that goes wrong.</description><pubDate>Mon, 09 Mar 2020 10:26:02 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2019/2/annotate-the-web/</guid><link>https://www.codeart.dk/blog/2019/2/annotate-the-web/</link><category>Web Content Management</category><category>Vision Demos &amp; Prototypes</category><category>.NET Development</category><title>Annotate The Web - Collaborate with comments about websites</title><description>As a little experiment I just launched a basic annotation service, that let's you put comments on screenshots of a web page in order to collaborate during creation.</description><pubDate>Tue, 26 Feb 2019 21:42:34 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/10/fb2pdf---how-abandonware-gets-distributed/</guid><link>https://www.codeart.dk/blog/2018/10/fb2pdf---how-abandonware-gets-distributed/</link><category>.NET Development</category><title>FB2PDF - How Abandonware Gets Distributed</title><description>A long time ago I did a small weekend project to fix a problem my wife was having with her e-reader. I shared it on my blog and then forgot all about it. Until now, that is.</description><pubDate>Sat, 27 Oct 2018 09:53:22 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/10/admin-mode-plugin-to-manage-content-type-suggestions/</guid><link>https://www.codeart.dk/blog/2018/10/admin-mode-plugin-to-manage-content-type-suggestions/</link><category>Tips and Tricks</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><category>Addon Development</category><category>.NET Development</category><title>Admin Mode Plugin to Manage Content Type Suggestions</title><description>If you have a site with a lot of different content types, it can be a good idea to help Episervers Automatic Content Type suggestion feature along. Here is a basic Admin mode tool - in good old webforms (yes, I washed my hands after I made it) that will let administrators / and super-editors configure exactly which content types to suggest when.</description><pubDate>Fri, 12 Oct 2018 05:00:20 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/10/auto-tagging-using-search/</guid><link>https://www.codeart.dk/blog/2018/10/auto-tagging-using-search/</link><category>Web Content Management</category><category>Vision Demos &amp; Prototypes</category><category>Tips and Tricks</category><category>Information Retrieval</category><category> Elastic Search</category><category>Artificial Intelligence</category><category>.NET Development</category><title>Auto Tagging Using Search</title><description>You don't always have to go the full AI route to get AI like results. In this blog post I'll describe an approach I've used several times (and for multiple purposes) with pretty decent results. Instead of classification algorithms, deep learning or neural networks I'll just simply query my favorite search engine.</description><pubDate>Sun, 07 Oct 2018 09:47:24 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/10/storage-performance-aftermath---elasticsearch-joins-the-fight/</guid><link>https://www.codeart.dk/blog/2018/10/storage-performance-aftermath---elasticsearch-joins-the-fight/</link><category>Azure</category><category>C#</category><category> Elastic Search</category><category>.NET Development</category><title>Storage Performance Aftermath - ElasticSearch Joins the Fight</title><description>In 3 previous blog posts I compared various azure storage technologies with regards to performance and scalability in typical web usage scenarios. I was actually done with the series, but with all that interesting data, I decided to throw my current favorite search/storage/no-sql technology into the mix to get an idea about how it all compares. So - ElasticSearch enters the competition!</description><pubDate>Tue, 02 Oct 2018 15:45:07 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/9/azure-storage-performance-showdown-post-3/</guid><link>https://www.codeart.dk/blog/2018/9/azure-storage-performance-showdown-post-3/</link><category>Tips and Tricks</category><category>Azure</category><category>.NET Development</category><title>Azure Storage Performance Showdown (Post 3)</title><description>This is the 3rd post in my Azure Storage Performance comparison. So far we've examined the typical scenario of storing/retrieving data that most dynamic websites of today deal with. In this post, we'll take a closer look at Update and Delete - and finally review the financial aspects.</description><pubDate>Wed, 26 Sep 2018 18:32:05 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/9/azure-storage-performance-showdown-post-2/</guid><link>https://www.codeart.dk/blog/2018/9/azure-storage-performance-showdown-post-2/</link><category>.NET Development</category><category>Azure</category><category>Tips and Tricks</category><title>Azure Storage Performance Showdown (Post 2)</title><description>In this second post of my performance series looking at Azure storage we're going to take a good look at Read speeds for the various storage types.</description><pubDate>Mon, 24 Sep 2018 05:00:33 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/9/azure-storage-performance-showdown/</guid><link>https://www.codeart.dk/blog/2018/9/azure-storage-performance-showdown/</link><category>Tips and Tricks</category><category>.NET Development</category><category>Azure</category><title>Azure Storage Performance Showdown (Post 1)</title><description>Almost every project has some data you want to persist, then read, search through, update and eventually delete. With Azure there are loads of great possibilities - for example Blob Storage, Table Storage, CosmosDb, SQL Azure. I've decided to do some simple and fairly naive tests to compare these for some typical usage scenarios and see how they perform.</description><pubDate>Fri, 21 Sep 2018 06:02:24 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/9/vs2017-debugger-timeout/</guid><link>https://www.codeart.dk/blog/2018/9/vs2017-debugger-timeout/</link><category>.NET Development</category><category>Tips and Tricks</category><category>Optimizely (Episerver)</category><title>VS2017 Debugger Timeout</title><description>A really annoying problem has been bothering me for a while with VS2017. When debugging most web apps, I often encounter time-outs. For some reason it happens nearly every time I do it with Episerver projects. Here is the solution.</description><pubDate>Mon, 10 Sep 2018 05:45:00 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/9/gist-content-provider/</guid><link>https://www.codeart.dk/blog/2018/9/gist-content-provider/</link><category>Integrations</category><category>Addon Development</category><category>.NET Development</category><category>Web Content Management</category><category>Optimizely (Episerver)</category><title>Gist Content Provider</title><description>Always preferring coding over 'real work' I figured that it would be pretty neat if I could just drag and drop my gists on GitHub directly into my blog posts here in Episerver in order to embed them. Naturally, a content provider seemed like the right choice...</description><pubDate>Mon, 10 Sep 2018 05:00:20 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/9/error-no-parameterless-constructor-defined-for-this-object/</guid><link>https://www.codeart.dk/blog/2018/9/error-no-parameterless-constructor-defined-for-this-object/</link><category>Tips and Tricks</category><category>.NET Development</category><category>C#</category><category>Optimizely (Episerver)</category><title>Error: No parameterless constructor defined for this object</title><description>Ever started a site from scratch rather than the reference site and run into this classic error? Here's a hint for you.</description><pubDate>Wed, 05 Sep 2018 05:00:21 Z</pubDate></item></channel></rss>