Microsoft MVP. Software architect and polyglot developer. Mobile apps. Development process optimization. Climbing and hiking with my dog in spare time.
In the company I work for, we're not using Teams internally and our users don't have a license for it. But some of our customers do use Teams and pay for it. They also add users from our Entra ID...
I needed a simple way to disable all endpoints in a Quarkus application based on a configuration property. A request filter was the right tool for the job, but some care had to be taken to not also...
IntelliJ IDEA does a great at managing multiple different JDK versions and using the right one for each project. However, a different solution is needed for the command line. I tried vfox, but I...
I recently played around with having some version-controlled files on a remote Linux server with SSH access. I still wanted to edit them locally in Visual Studio Code, so the Remote - SSH extension...
My work consists of writing code for multiple clients and for some of them I need to use a different email in my git commits. I recently learned that there is a better approach for handling this than...
As I'm adding more services to my home lab server, I reached a point at which I want to expose some of them to the internet but keep others available only in the internal network. To securely do so...
I often have several tabs open in my Windows Terminal. And I like how I can easily identify the right one by its title if it's a tab for WSL or an SSH connection. Fortunately, PowerShell can also...
With Windows 10 support officially ending, I decided to install Linux Mint on one of my older machines which isn't supported by Windows 11. The transition was really smooth for the most part with the...
When the support for trusted publishing on NuGet was announced, I decided to try switching to it for my side project as soon as possible. The process ended up being very smooth.
I mostly work remotely and to gain access to many work resources, I need a VPN connection to my office. When you connect, all of your network traffic is routed through the VPN connection by default....
Since a new version of .NET is being released every autumn, C# has also adopted the same cadence. So, this November C# 14 is going to be released alongside with .NET 10. In this talk, we will take a...
Operator overloading has been a part of C# since its very first version. The functionality has remained the same until the introduction of generic math in C# 11 when some changes were made to shift...
In my previous two blog posts, I wrote about extension members in general and generic extension members. But there's one more topic related to extension members I'd like to cover: how ambiguous...
I already wrote about extension members in C# 14 in my previous blog post, but I only covered the non-generic members. Since generics were fully supported in extension methods, they are of course...
Extension members are the largest new feature of C# 14. We have been hearing about it for quite a while, also under the name of extension everything and extension types. It was expected to be...
After getting a bug report that an ASP.NET Core Web API endpoint is returning 204 (No content) instead of 201 (Created), it turned out that the bug wasn't in the application code but in .NET.
The next C# 14 feature I took a closer look at was the field keyword. Similarly to the null-conditional assignment, it can reduce some of the boilerplate code you need to write. But it's not just...
As the release of C# 14 is coming closer and most of the features are already available in preview, I decided to try them out myself. I started with null-conditional assignment, a syntactic sugar...
When JetBrains announced the availability of an OpenTelemetry plugin for Rider, I decided to give it a try. I've examined the options for OpenTelemetry collection during development in the past and...
When an ASP.NET Core Web API REST service endpoint makes further calls to upstream REST services or interacts with other potentially slow resources, its response time strongly depends on the response...