Architecting self-coordinating IoT systems for reliability and resilience with .NET and SignalR
In the previous article, I described how I used SignalR to coordinate clusters of Internet of Things (IoT) devices so that only one device in the cluster could do a specific task at a time. The example was based on a real-life project where IoT devices acted as public announcement systems Continue Reading
Using SignalR for real-time IoT device coordination
If you are a software developer who has worked with .NET, you may have heard of SignalR, a library that allows applications to communicate with each other in real-time over the network. However, not everyone is aware of aware of all the interesting things SignalR is capable of. Many developers Continue Reading
Using a Distributed Redis Cache in .NET Aspire
When you work with distributed applications, you will almost certainly encounter the need to use distributed caching and locking at some point. In this article, you will learn how to apply both of these mechanisms in .NET Aspire. The content of this article is taken from my book, .NET Aspire Made Continue Reading
Integrating .NET Aspire With Azure Storage
Today, we will talk about integrating our Aspire apps with Azure Storage. We will start by looking at Azure Table Storage and then move on to Blob Storage. A sample of a complete Azure Table Storage application can be found via the following link: https://github.com/fiodarsazanavets/dotnet-aspire-examples/tree/main/AspireStarterProjectWithTableStorage/AspireApp If you are new to Continue Reading
Hosting MongoDB in .NET Aspire
Today, you will learn how to integrate your distributed .NET Aspire application with MongoDB by using Aspire Components. We will walk through an example application that populates a MongoDB instance with some data and retrieves the data inside one of the hosted services. But before we talk about it, I’ll need Continue Reading
Using SQL Database Components in .NET Aspire
We previously looked at Aspire components, special libraries used by .NET Aspire to wrap commonly used applications and infrastructure components. These libraries consist of containers, but it’s simpler to use them instead of using containers directly. After all, Aspie components were specifically designed to work in Aspire. Today, we will look Continue Reading
Hosting a Keycloak Container in .NET Aspire
In the previous article, we discussed enabling single sign-on authentication in .NET Aspire. Today, you will learn how to do it using a Keycloak container. The material presented in this article serves two purposes: The sample solution we will be talking about is available here. In order to be able to follow Continue Reading
A Guide To Securing .NET Aspire Apps
If you publish a web application and make it publicly accessible, you will want to make sure only authorized users can access it, unless, of course, your application is just a trivial website. Applications orchestrated by .NET Aspire are no exception. Because .NET Aspire is a platform for building complex Continue Reading
Integration-testing .NET Aspire Apps
Having automated test coverage for our software apps is very important. Although manual tests sometimes have their place, automated tests allow us to verify the validity of our application logic much more efficiently than any manual tests would. Automated tests also allow us to check if a change in one Continue Reading
Why .NET Aspire Components Are Powerful
As well as being able to orchestrate .NET projects, Aspire can also orchestrate the so-called Aspire components. These components are special libraries that add popular packages to our distributed application, which include the following: Today, we will talk about Aspire components, why they are useful, and how to add them to Continue Reading
How .NET Aspire Does Health Checks And Why It Matters
When we look at the Resources tab of the .NET Aspire dashboard, we find the State column in the table displayed there. This column shows the current status of each service managed by the .NET Aspire. Ideally, we want each of these services to be shown as Running with the green tick next to it, as Continue Reading
Monitoring Apps Inside .NET Aspire
Today, we will talk about the process of monitoring applications orchestrated by .NET Aspire. But before we do it, let’s remind ourselves why monitoring is something we absolutely must have in our applications. Monitoring applications is crucial for several reasons: Let’s now look at the different types of monitoring available Continue Reading
The Anatomy of .NET Aspire Application
.NET Aspire is an orchestration technology introduced in November 2022 alongside the .NET 8 release. And since it was released, it took the .NET community by storm. This technology allows developers to easily build and debug distributed applications locally, which was traditionally hard to do. With .NET Aspire, you don’t Continue Reading
Building an audio player app with the .NET Uno Platform
Previously, in a tutorial presented as a series of articles, we looked at how to use .NET to build an audio player that can run on Windows, Mac, and Linux. This tutorial explains how the open-source NetCoreAudio NuGet package was built. Today, we will go through an example of how Continue Reading
The most important skill for 21st century
We are living in the information age. Many traditional industries and jobs associated with them are on the way out. Internet and smart technologies have radically changed how we live and work. Although technology has improved our lives overall, it also made certain things much more challenging. One of the Continue Reading
Contradictions in TDD and why it’s merely a guidance and not the gospel
Test-driven development (TDD) is a highly popular and highly misunderstood subject. And there is no surprise as to why it’s so misunderstood. If you look at any single guide on what the canonical TDD rules are supposed to be, it would be vague and incomplete. Today, I will demonstrate to Continue Reading
Getting audio working on Ubuntu VM on Hyper-V
As the author of NetCoreAudio, a .NET library that is designed to play audio on Windows, Mac OS, and Linux, I need to have all three operating systems available for testing. The simplest and cheapest way to set up multiple operating systems is to use virtual machines (VMs). My main Continue Reading
6 ways to annoy a software developer
Being a software developer makes you see the world in a particular way. Because of this, software developers usually share similar opinions on certain things. This is why there are things that are almost guaranteed to annoy any software developer. It’s good to know these things, so you aren’t hated Continue Reading