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…
Welcome!
Welcome to my new blog. The older one, in which I have posted since 2007, blogs.msmvps.com, has gone out of service and I’ve moved to my own domain, revolution.com.br. I’d like to…
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…
Deleting large emails in GMail with the GMail API
Introduction I am a long time user of Gmail, and I usually don’t delete any email, I just archive the emails after reading and processing them, to keep my inbox clean. Last…
Enumerating Displays in WPF with High DPI
Sometimes, we need to get our display disposition to position windows on them in specific places. The usual way to do it in .NET is to use the Screen class, with a…
Decoupling ViewModels in MVVM with the MVVM Toolkit Messenger
When you are using the MVVM pattern, at some time, you have to send data between ViewModels. For example, a detail ViewModel must tell the collection ViewModel that the current item should…
Troubles with converters and x:Bind in UWP
I was working with the WPF project, converted to UWP in this article, in order to check usage of the new MVVM toolkit, explained in my last article and use the bindings…