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…
Category: Development
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…
Creating RESTful APIs with Minimal APIs and Entity Framework Core in ASP.NET
Introduction Some time ago, I wrote this article about FeatherHTTP. Things have evolved since then and, in .NET 6, Microsoft introduced a new approach called "Minimal APIs" which simplifies the process of…
Creating OpenXml files with the OpenXml SDK
Some time ago I wrote a blog post on Creating OpenXml files with Delphi. It showed how to open and create Word files using Delphi by using only a Zip and an…
Making your WPF app cross platform with Avalonia UI
One advantage of the new .NET Core (now .NET) apps is that they are cross platform. Once you create an app, the same code will run on Windows, Mac or Linux with…
Aspect Oriented Programming with DispatchProxy
Sometime ago, I wrote this article for the MSDN Magazine, about Aspect Oriented Programming and how it could solve cross-cutting concerns in your application, like: Authentication Logging Data audit Data validation Data…
Storing values in the Secret Manager tool
When you are developing a new project and need to store settings for it, the first thing that comes to mind is to use the Appsettings.json file. With this file, you can…