<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Geert van Horrik</title><link>https://www.geertvanhorrik.com/</link><description>Recent content on Geert van Horrik</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 28 Dec 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://www.geertvanhorrik.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Catel 7 Development Update</title><link>https://www.geertvanhorrik.com/2025/12/28/catel-7-development-update/</link><pubDate>Sun, 28 Dec 2025 00:00:00 +0000</pubDate><guid>https://www.geertvanhorrik.com/2025/12/28/catel-7-development-update/</guid><description>&lt;h1 id="-catel-7-development-update"&gt;🚀 Catel 7 Development Update&lt;/h1&gt;
&lt;p&gt;Welcome to the Catel 7 development update! After nearly 15 years, Catel continues to evolve as a robust MVVM framework. While technologies like Silverlight, Windows Phone, and UWP have faded, Catel remains a powerful foundation for WPF applications, supported by a vibrant team and over 60 open-source components.&lt;/p&gt;
&lt;h2 id="-code-base-modernization"&gt;🛠️ Code Base Modernization&lt;/h2&gt;
&lt;p&gt;With .NET Core now the industry standard, it&amp;rsquo;s time to reimagine Catel&amp;rsquo;s future. Our goals:&lt;/p&gt;</description></item><item><title>Managed code signing</title><link>https://www.geertvanhorrik.com/2024/11/23/managed-code-signing/</link><pubDate>Sat, 23 Nov 2024 00:00:00 +0000</pubDate><guid>https://www.geertvanhorrik.com/2024/11/23/managed-code-signing/</guid><description>&lt;p&gt;Long story short: this blog post describes how to use a fully managed HSM (Azure Key Vault) with a purchased code signing certificate using the most affortable way I could find (approx. $ 500 / year). If you purchase a multi-year certificate, you can save some additional money (the certificate becomes cheaper). I didn&amp;rsquo;t purchase a multi-year certificate this time to minimize the cost of failure (just in case).&lt;/p&gt;
&lt;h1 id="introduction"&gt;Introduction&lt;/h1&gt;
&lt;p&gt;Christmas came early this year. I had to renew the code signing certificate and I had the joy of figuring out what had changed since the last time I purchased a code signing certificate. Before I was able to purchase a certificate and install it locally, but nowadays this is no longer accepted by industry standards.&lt;/p&gt;</description></item><item><title>Privacy and security</title><link>https://www.geertvanhorrik.com/2021/08/13/privacy-and-security/</link><pubDate>Fri, 13 Aug 2021 00:00:00 +0000</pubDate><guid>https://www.geertvanhorrik.com/2021/08/13/privacy-and-security/</guid><description>&lt;p&gt;In the times we live in, it becomes more and more important to think about online presence, privacy and security. Where we used to apply the same username and password for every service 10 years ago, we now (should) know better and use a decent password management tool.&lt;/p&gt;
&lt;p&gt;Recently I noticed a &lt;a href="https://twitter.com/tomverhoeff/status/1425751051316117504?s=20"&gt;tweet&lt;/a&gt; by &lt;a href="https://twitter.com/tomverhoeff"&gt;Tom Verhoeff&lt;/a&gt; about the apps that have access to your online (social media) accounts. This was a great reminder for me to contact my direct family members and mention a few privacy and security &amp;ldquo;best practices&amp;rdquo;. They are very generic so I decided to post them online, maybe for myself as a good reminder in 2 years from now.&lt;/p&gt;</description></item><item><title>WPF using .NET Core &amp; Orc.Theming</title><link>https://www.geertvanhorrik.com/2020/07/15/wpf-using-net-core-and-orc-theming/</link><pubDate>Wed, 15 Jul 2020 00:00:00 +0000</pubDate><guid>https://www.geertvanhorrik.com/2020/07/15/wpf-using-net-core-and-orc-theming/</guid><description>&lt;p&gt;For the last few months, we at &lt;a href="https://github.com/wildgums"&gt;WildGums&lt;/a&gt; been working hard on preparing our migration for all our WPF apps from &lt;code&gt;.NET 4.6.2&lt;/code&gt; to &lt;code&gt;.NET Core 3.1&lt;/code&gt;. This required lots of planning and testing, since the following parts needed to be taken into account:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/catel/catel"&gt;Catel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Our &lt;a href="https://github.com/WildGums?q=orc&amp;amp;type=&amp;amp;language="&gt;40+ open source components&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Our 10+ internal components&lt;/li&gt;
&lt;li&gt;Our 2+ open source apps&lt;/li&gt;
&lt;li&gt;Our 10+ internal apps&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But today is the day we believe we are ready and we will start releasing all open source components as stable.&lt;/p&gt;</description></item><item><title>New blog</title><link>https://www.geertvanhorrik.com/2020/05/19/new-blog/</link><pubDate>Tue, 19 May 2020 00:00:00 +0000</pubDate><guid>https://www.geertvanhorrik.com/2020/05/19/new-blog/</guid><description>&lt;p&gt;Wow, did you notice that new look and feel, that comes with great speed and performance for free? It&amp;rsquo;s because this blog has moved from Wordpress to a
static site generator called &lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Whenever I push new code to the GitHub repository keeping track of this blog, a GitHub action will auto-generate the website and publish it
automatically.&lt;/p&gt;
&lt;p&gt;I am still getting used to this, but I think I am in love with this new way of doing websites. I will try to migrate all older blog posts one by one
(but only the ones I think are interesting enough to be archived).&lt;/p&gt;</description></item><item><title/><link>https://www.geertvanhorrik.com/archives/</link><pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate><guid>https://www.geertvanhorrik.com/archives/</guid><description/></item><item><title>About</title><link>https://www.geertvanhorrik.com/about/</link><pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate><guid>https://www.geertvanhorrik.com/about/</guid><description>&lt;p&gt;Geert is a freelance software developer who started developing Catel in 2011. He was very enthusiastic about the WPF and MVVM frameworks. However, he was missing the actual functionality in the common MVVM frameworks and decided to write his own which eventually emerged into Catel.&lt;/p&gt;
&lt;h1 id="twitter"&gt;Twitter&lt;/h1&gt;
&lt;p&gt;Follow me on twitter via &lt;a href="https://twitter.com/geertvanhorrik"&gt;@GeertvanHorrik&lt;/a&gt;.&lt;/p&gt;
&lt;h1 id="awards"&gt;Awards&lt;/h1&gt;
&lt;p&gt;Of all the awards I have won, I have listed the most important ones to me below.&lt;/p&gt;










&lt;div style="text-align: ;"&gt;
 &lt;figure style="padding: 0.25rem; margin: auto; display: inline-block"&gt;
 &lt;img style="max-width: 100%; width: auto; height: auto; margin: auto; display: block;" src="https://www.geertvanhorrik.com/about/awards-pvp-geert_hu_c05568591f47cba.png" width="200" height="200"&gt;
 &lt;figcaption style="text-align: left; display: block"&gt;
 &lt;small&gt;
 
 
 PVP award
 
 
 &lt;/small&gt;
 &lt;/figcaption&gt;
 &lt;/figure&gt;
&lt;/div&gt;</description></item><item><title>Working from home and staying healthy</title><link>https://www.geertvanhorrik.com/2020/04/03/working-from-home-and-staying-healthy/</link><pubDate>Fri, 03 Apr 2020 12:46:26 +0000</pubDate><guid>https://www.geertvanhorrik.com/2020/04/03/working-from-home-and-staying-healthy/</guid><description>&lt;p&gt;For about 8 years, I’ve been primarily working from home. Over the years I made the transition from sitting 14 hours a day to being active while working. With the COVID-19 situation, more and more people are now forced to work from home. Whenever I mention the setup I have at home, people become interested and ask me all about the hardware I purchased over the years.&lt;/p&gt;










&lt;div style="text-align: center;"&gt;
 &lt;figure style="padding: 0.25rem; margin: auto; display: inline-block"&gt;
 &lt;img style="max-width: 100%; width: auto; height: auto; margin: auto; display: block;" src="https://www.geertvanhorrik.com/2020/04/03/working-from-home-and-staying-healthy/office_hu_8fe5b3c79d3d809c.png" width="300" height="400"&gt;
 &lt;figcaption style="text-align: left; display: block"&gt;
 &lt;small&gt;
 
 
 My Office
 
 
 &lt;/small&gt;
 &lt;/figcaption&gt;
 &lt;/figure&gt;
&lt;/div&gt;
&lt;h1 id="in-the-beginning"&gt;In the beginning&amp;hellip;&lt;/h1&gt;
&lt;p&gt;&amp;hellip;there was a young man, super eager to be a great developer. I worked 12 hours a day and &lt;!-- raw HTML omitted --&gt;enjoyed&lt;!-- raw HTML omitted --&gt; &lt;em&gt;loved&lt;/em&gt; it. Besides the consultancy day jobs I had, I was working at least 4 hours a day on open source technology such as &lt;!-- raw HTML omitted --&gt;Catel&lt;!-- raw HTML omitted --&gt;. I didn’t have kids back then and I still had enough time to spend with my wife on fun stuff. Back then, I was convinced that it was important to use great hardware because I was aware that I was sitting most part of the day. This resulted in spending a lot of money on monitors, a desk and, at that time most importantly, a great chair (more on that later).&lt;/p&gt;</description></item><item><title>Automate UWP submissions using Cake</title><link>https://www.geertvanhorrik.com/2018/04/11/automate-uwp-submissions-using-cake/</link><pubDate>Wed, 11 Apr 2018 17:20:31 +0000</pubDate><guid>https://www.geertvanhorrik.com/2018/04/11/automate-uwp-submissions-using-cake/</guid><description>&lt;p&gt;Finally we can automate UWP submissions using Cake!&lt;/p&gt;
&lt;p&gt;This blog post has been in the makings for about a year now. But due to some technical store issues, it was delayed for a while. But no fear, the time has finally come here!&lt;/p&gt;
&lt;p&gt;While working on several UWP apps for the Microsoft store, I found the deployment part very tedious. Especially building the 3 (x86, x64 and ARM) packages with the native toolchain were taking a long time (about 20 minutes).&lt;/p&gt;</description></item><item><title>Multi-targeting .NET 4.6, .NET 4.7, UAP 10.0 with a single project</title><link>https://www.geertvanhorrik.com/2018/03/14/multi-targeting-net-4-6-net-4-7-uap-10-0-with-a-single-project/</link><pubDate>Wed, 14 Mar 2018 16:10:25 +0000</pubDate><guid>https://www.geertvanhorrik.com/2018/03/14/multi-targeting-net-4-6-net-4-7-uap-10-0-with-a-single-project/</guid><description>&lt;p&gt;After waiting for the project.json storm to lay down, it was time for me to check whether the new .NET SDK project system was worth checking out. Oh dear, it was! In this post I will try to explain our reasoning to migrate to the new project system and how we overcame some of the issues we encountered during the transition.&lt;/p&gt;
&lt;h1 id="requirements"&gt;Requirements&lt;/h1&gt;
&lt;p&gt;One of the companies I work for use a large amount of (open source) libraries target .NET 4.5, .NET 4.6 and .NET 4.7. The reason we supported 3 different target frameworks per library is that it allowed us to switch the runtime of the (WPF) apps at any time and the libraries would be ready for it. However, a big downside of this is that loading the solution takes a long time, and everything is duplicated as you can see in the picture below:&lt;/p&gt;</description></item><item><title>Debugging Cake add-ins using Visual Studio</title><link>https://www.geertvanhorrik.com/2017/08/01/debugging-cake-add-ins-using-visual-studio/</link><pubDate>Tue, 01 Aug 2017 11:35:56 +0000</pubDate><guid>https://www.geertvanhorrik.com/2017/08/01/debugging-cake-add-ins-using-visual-studio/</guid><description>&lt;p&gt;Recently I wanted to (finally) automate builds &amp;amp; submissions for all my UWP apps. Deploying a UWP app manually is a long process since it always creates a full .NET native build. This is only required for the certification kit and the store only uses the MSIL package. Before we dive into automating builds for UWP apps, let’s stay focused on debugging Cake extensions first.&lt;/p&gt;
&lt;p&gt;The Cake extension I was working on is &lt;!-- raw HTML omitted --&gt;Cake.WindowsAppStore&lt;!-- raw HTML omitted --&gt;. It can be used to automatically create submissions for Windows Store apps. Debugging Cake add-ins is a bit of a thing, and there are several ways to do it. In this post I’ll describe what I think is the easiest way to debug Cake add-ins.&lt;/p&gt;</description></item><item><title>Discovering open source WPF components - Orc.Snapshots</title><link>https://www.geertvanhorrik.com/2016/12/08/discovering-open-source-wpf-components-orc-snapshots/</link><pubDate>Thu, 08 Dec 2016 16:09:56 +0000</pubDate><guid>https://www.geertvanhorrik.com/2016/12/08/discovering-open-source-wpf-components-orc-snapshots/</guid><description>&lt;p&gt;In the &lt;a href="https://www.geertvanhorrik.com/tags/discovering-open-source-wpf-components/"&gt;discovering open source WPF components series&lt;/a&gt;, I will look into useful open source components that can be used to create WPF apps. This weeks component is &lt;!-- raw HTML omitted --&gt;Orc.Snapshots&lt;!-- raw HTML omitted --&gt;.&lt;/p&gt;
&lt;p&gt;Snapshots are like save games. They represent a set of data and/or values from a specific moment in time in an application. Using snapshots allows an application (and thus eventually the end-user) to store data (in memory, in a file or any in other persistence tech) which can later be retrieved. The advantage of using this library is that it will zip all the data into a single snapshot package&lt;/p&gt;</description></item><item><title>Improving performance of .NET code</title><link>https://www.geertvanhorrik.com/2016/11/15/improving-performance-of-net-code/</link><pubDate>Tue, 15 Nov 2016 15:06:52 +0000</pubDate><guid>https://www.geertvanhorrik.com/2016/11/15/improving-performance-of-net-code/</guid><description>&lt;p&gt;Recently I’ve been on vacation. As most developers, I think vacation is a great time to take a step back from what I have been doing and evaluate some things in life. One of the things I’ve always intended to do was to learn about high-performant applications and how I could apply this to the software I am writing. To accomplish this, I’ve been reading the excellent book “&lt;!-- raw HTML omitted --&gt;Writing High Performance .NET code&lt;!-- raw HTML omitted --&gt;” by Ben Watson. In this blog post I will mention the most important things I’ve learned, but I really recommend you buy this book if you want to improve the performance of your .NET code.&lt;/p&gt;</description></item><item><title>Hyper-V: improve your I/O performance</title><link>https://www.geertvanhorrik.com/2015/12/22/hyper-v-improve-io-performance/</link><pubDate>Tue, 22 Dec 2015 18:38:04 +0000</pubDate><guid>https://www.geertvanhorrik.com/2015/12/22/hyper-v-improve-io-performance/</guid><description>&lt;p&gt;Since a few weeks I am running Hyper-V instead of ESXi for my virtualization stuff. I have a very fast “server” running a decent CPU and a RAID 0 array consisting of 4 Samsung 840 Pro SSD disks with an Intel raid controller.&lt;/p&gt;
&lt;p&gt;This should all be super fast, but still I wasn’t happy about the I/O performance. After doing lots of research, I performance the following tasks. As you can see, I was able to gain a 200 % performance improvement (for the build server + build agents):&lt;/p&gt;</description></item><item><title>Discovering open source WPF components - Orc.Wizard</title><link>https://www.geertvanhorrik.com/2015/11/26/discovering-open-source-wpf-components-orc-wizard/</link><pubDate>Thu, 26 Nov 2015 15:00:02 +0000</pubDate><guid>https://www.geertvanhorrik.com/2015/11/26/discovering-open-source-wpf-components-orc-wizard/</guid><description>&lt;p&gt;In the &lt;a href="https://www.geertvanhorrik.com/tags/discovering-open-source-wpf-components/"&gt;discovering open source WPF components series&lt;/a&gt;, I will look into useful open source components that can be used to create WPF apps. This weeks component is &lt;a href="https://github.com/wildgums/orc.wizard"&gt;Orc.Wizard&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A wizard is a great way to guide users through a process. Every wizard should behave the same, but there is no great out-of-the-box experience in WPF. The wizard included in this library has a few nice features:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Automatic page management (with everything you expect from next / previous / finish, etc)&lt;/li&gt;
&lt;li&gt;Automatic (but optional) summary page that gathers all the information from each page to summarize what has been selected inside the wizard&lt;/li&gt;
&lt;li&gt;Optional pages that allow users to skip to a next page. It is also possible to enforce validation on a wizard page.&lt;/li&gt;
&lt;li&gt;Nice looking wizard header that is generated automatically based on the accent color&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In summary, this library allows you to focus on the actual wizard content (the pages), not the wizard itself which is fully taken care of for you.&lt;/p&gt;</description></item><item><title>Discovering open source WPF components - Orc.WorkspaceManagement</title><link>https://www.geertvanhorrik.com/2015/11/19/discovering-open-source-wpf-components-orc-workspacemanagement/</link><pubDate>Thu, 19 Nov 2015 15:00:21 +0000</pubDate><guid>https://www.geertvanhorrik.com/2015/11/19/discovering-open-source-wpf-components-orc-workspacemanagement/</guid><description>&lt;p&gt;In the &lt;a href="https://www.geertvanhorrik.com/tags/discovering-open-source-wpf-components/"&gt;discovering open source WPF components series&lt;/a&gt;, I will look into useful open source components that can be used to create WPF apps. This weeks component is &lt;a href="https://github.com/wildgums/orc.workspacemanagement"&gt;Orc.WorkspaceManagement&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Workspaces are a great way to empower your end-users to customize the layout of the screen to their own good. There are a lot of different components that can be customized inside an application (some views need settings to be stored, others should be ignored, etc). Orc.WorkspaceManagement provides a nice wrapper around this so whenever the user wants to store a workspace, each component can be stored separately using providers.&lt;/p&gt;</description></item><item><title>Discovering open source WPF components - Orc.Search</title><link>https://www.geertvanhorrik.com/2015/11/12/discovering-open-source-wpf-components-orc-search/</link><pubDate>Thu, 12 Nov 2015 15:00:26 +0000</pubDate><guid>https://www.geertvanhorrik.com/2015/11/12/discovering-open-source-wpf-components-orc-search/</guid><description>&lt;p&gt;In the &lt;a href="https://www.geertvanhorrik.com/tags/discovering-open-source-wpf-components/"&gt;discovering open source WPF components series&lt;/a&gt;, I will look into useful open source components that can be used to create WPF apps. This weeks component is &lt;a href="https://github.com/wildgums/orc.search"&gt;Orc.Search&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Most applications sooner or later need a search functionality. Since most .net applications work with models (objects containing the actual information users want to search for), it might be hard to implement such functionality.&lt;/p&gt;
&lt;p&gt;A great open-source search engine for indexing and searching is &lt;!-- raw HTML omitted --&gt;Lucene.net&lt;!-- raw HTML omitted --&gt;, but it requires quite some work to implement it from scratch in an application. Orc.Search provides a great wrapper around Lucene.net in 3 simple steps. Of course it also comes with xaml controls to easily add search boxes with status indicators to your applications.&lt;/p&gt;</description></item><item><title>get in touch</title><link>https://www.geertvanhorrik.com/contact/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.geertvanhorrik.com/contact/</guid><description/></item></channel></rss>