Blog

Simple Event Aggregator in C#

In this post, I’ll go through the inner workings of Event Aggregators, what it is, how to make one, and how to use it. Consider this another brain-dump of past knowledge to assist you in learning something new, or enhancing what you’ve previously known. This article focus on a single application; in another article, we’ll cover IPC (inter-process communication) in a similar fashion. In C#, an Event Aggregator is a design pattern that facilitates loosely coupled communication between different parts of an application, particularly between components that do not have direct references to each other. It acts as a central hub…

VB P-Code (Preserved Article)

This post is for preservation from the internet archives. Like some of us older developers (Xenials and older) may have worked with VB3-6, a language which uses Pseudo Code rather than compiled data. Content like this is difficult to find around the internet, even Google’s Gemini provides disinformation regarding the subject. The following content below was ported over from web.archive.org of the woodmann.com’s post VB P-Code (circa 2003). VB P-code Information by Mr Silver Brief Introduction to P-code The term P-code is neither new nor a Microsoft invention, P-code is simply code interpreted during execution time. So we understand each…

Win11 Classic Context Menu

Windows 11 gives us a lot of “pretty” features, such as the newly redesigned right-click Context Menu. This attempt to minimize distractions and focus users can have its setbacks. For instance, it hides key features, can be slower to load (noticeable on older machines), and most of all, causes you to perform an extra click! The Fix Open a terminal command prompt and execute the following command. Boom, done, fixed! Now we can get back that big-beautiful fully loaded context menu. No more, Shift+Click, Shift+F10, or selecting “Show more options“. Come to think of it, there could be fewer items…

Win11 Fix Recycling Bin Pin to Quick Access

If you’re tired of repeatedly clicking, “Pin to Quick Access” when trying to empty the trash bin, you’re not alone. This non-intuitive design choice has tripped up many of users who are quickly trying to just clear the recycling bin and move on. Enough talking, lets fix it! Steps to Fix You can create your own “remove-recyclebin-pin.reg“, paste in the code below and double-click the file to execute. BOOM! Fixed, done. Please note, the following will only apply the key for the current user. After running, your Registry Editor will have an entry like so Behind the Code Simply, this…

Prism.Avalonia

Prism.Avalonia is a library that extends the Prism framework’s capabilities to Avalonia UI applications. Avalonia UI is a cross-platform .NET UI framework that enables the development of desktop applications for Windows, Linux, and macOS, and also supports mobile and web targets. Prism is a framework designed to help build loosely coupled, maintainable, and testable XAML applications by implementing design patterns such as MVVM (Model-View-ViewModel), dependency injection, commands, and an EventAggregator for messaging. Prism.Avalonia specifically adapts these core Prism functionalities to the Avalonia UI platform, allowing developers to leverage Prism’s structured approach for: To use Prism.Avalonia, both the Prism.Avalonia core package and an associated…

C# Async/Await Under the Hood

Many of us use the async await operation in C# frequently, but how often do you peek under the hood? There’s a secret sauce that a lot of developers are unaware of that occurs. We’re going to take into the inner workings and find out where those extra clock-cycles go. The extra knowledge may help you write more efficient code. Sample Code Generated IL

Prometheus .NET Serialization

If you’ve ever used Prometheus or Prometheus-Net, you may have noticed that its Gauges use a JSON’ish implementation. And by “-ish” we mean that you cannot simply apply, System.Text.Json to deserialize the line. Here I’ll show you how to work with Prometheus to assist with your unit tests (aka automated tests, integration tests, etc). In this example, we’re going to extract the “Button Click” metrics sent by the app. Prometheus is an open-source systems monitoring solution to help collect metrics and alerts in your application. https://prometheus.io/docs/introduction/overview/ Below is an exert from the packet. Notice the key areas, “button_event_gauge“, the body…

.NET and Linux Bluetooth

Ever needed to perform some Bluetooth LE operations on your Linux device, whether it’s Raspberry PI, Ubuntu, or some other distribution? Yes, me too! In this article, we’ll dive right into using the Plugin.BlueZ NuGet package and show you how to get started using it. Feel free to contribute to the open source project over at the Suess Labs GitHub page, https://github.com/SuessLabs/Plugin.BlueZ. UPDATE! We are migrating towards the next generation package, Linux.Bluetooth NuGet package!The GA functionality is the same and future enhancements are coming soon, such as Battery monitoring. In this article, we’ll perform a simple Scanning for Devices based…

Visual Studio Linux Debugger

The VS Linux Debugger is an open-source tool created to assist with remotely deploying and debugging your Linux applications from Visual Studio 2022. Check it out on the Microsoft Marketplace or GitHub. To get started using it today it’s as easy as 1-2-3.. or perhaps, 2-3 Overview Before getting started, it is recommended to ensure your system has the latest updates. These steps have been tested against Ubuntu 20.04 LTE and 22.04 LTE. Though this project supports everywhere that .NET (Core) is supported, this section outlines steps for Ubuntu 22.04 LTE. It’s recommended to use the official Microsoft Install .NET…