Author: damian

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…

C# 9.0 Null Checking

C# 9.0 added a lot of new features and enhanced others. Here we’re covering Pattern Matching, more specifically is null and is not null.  Beginning with C# 7.0, the “is” operator was added to match an expression against a pattern, and with C# 9.0 the negation pattern was added to do a non-null check. Overview So why not just use “==” or “!=” operators? When you override the operators, your traditional null checks can behave differently. This is why it can be safer for you to use the newer pattern matching. The addition of null checking using, “is null“, though…

Helpful Hotkeys

Ever forget a hotkey or wanted to discover ones you didn’t know about, well here you go. Windows 10 On Windows 10, it brought plenty of new features, some of which enthusiasts like myself had to create such as the Linux-inspired Virtual Desktop. But never mind all of that, let’s get to the cheat sheet! Please note, that some applications you’ve installed may override the base functionality listed below. For more hotkeys, check out the official docs. Shortcut Functionality WinKey + CTRL + D Create a new Virtual Desktop WinKey + CTRL + RIGHT Switch to the Virtual Desktop on…

Xamarin.Forms Floating Action Button

This article is a review of the Xamarin.Forms NuGet package, Floating Action Button (FAB). Here, we’ll be discussing what the library is, and how to use MVVM binding with Prism.Forms’ Navigation Service, and then finish up with some of the pros/cons of the library. For the full project, check out my GitHub page, Learn.FloatingActionButton, which this article references. I stumbled upon the Floating Action Button while responding to an inquiry made on the Xamarin Slack in regards to the forums thread, “Can I maintain a single static navigation service from Prism.Forms“. If you’re wondering, I’m, “User29117“. What is it? The…

Picking a microSD Card

Updated: 2021-06-19 Like some of you, I don’t buy a new SD (secure digital) card every other week. So, when it comes to purchasing time how do you know you’re getting the right tool for the job? There are tons of wordy articles out there, so we’ll get to the point! Please note, this article is a quick assist guide on microSD cards and not the other SD card variants. For more in depth, check out the official documentation. Choose the Right Tool For the Job When picking a card always do it with a purpose in mind. The average…