The release of ChatGPT in November 2022 introduced a revolution in the way we do things: from that date, we had an assistant that could help us in many tasks, like proofing…
Dynamic control loading in WinAppSDK apps
You are developing a new application and want it to be scalable: instead of having a single application with all the interactions, you want to develop it in a modular way, adding…
Customize the title bar of your WinUI3 app
WinUI3 allows you to customize your title bar. You can make simple customizations, like changing the color, title or icon or you can fully customize it, adding controls and having full control…
Modernizing your WPF application with the Fluent theme
You have an old WPF application that you would like to modernize, making its UI more up-to-date and in-line with Windows 11 theming. There are some ways to do it, and the…
Markdown Monster
Introduction I’ve been writing blogs for a long time. My blogs are pretty simple; there isn’t much formatting and the images I include are usually screenshots. There is some code, which I…
OpenFolderDialog in WPF
One feature that was missing in WPF was the OpenFolderDialog. To circumvent the lack of something to select a folder, there were some methods, but none of them were optimal: Use Windows…
Implementing Authentication in Minimal API endpoints
Some time ago, I wrote this article about creating a Minimal API CRUD using Entity Framework. That project worked fine, but something was missing: Authentication and Authorization. When dealing with an API…
Using C# source generation for enhanced logging
In the last article, I wrote about logging in C# and how to use log formatters to suit your needs. Once you start adding logs to your applications, you start to notice…
Log Formatters in C#
Introduction Logging is an essential aspect of software development that enables us to track and understand the behavior of our applications. In fact, there are many logging frameworks to help with this…
C# Source Code Generators
C# 9 introduced a new feature that allows you to inspect user code as it is being compiled and generate new C# source files that are added to the compilation. This enables…