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
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
Building your own audio player with .NET – part 3
This is the third and final part of the tutorial on building a platform-independent audio app on .NET. In the first part of this tutorial, we talked about setting up the general project structure and enabling audio playback capabilities on Windows. The second part of the tutorial spoke about adding the ability to play Continue Reading
Building your own audio player with .NET – part 2
This is the second part of our series of tutorials on building audio capabilities into .NET, which the platform doesn’t have out of the box. In the first tutorial of this series, we set up a basic project structure and added a class that enabled us to play audio on Windows. However, Continue Reading
Building your own audio player with .NET – part 1
As great as .NET is for writing software for multiple platforms, it lacks some important capabilities. This applies to those functionalities that would work radically differently on different CPUs and operating systems. One of these is the ability to play sound. With its predecessor, the .NET Framework, you could play Continue Reading
Coordinating IoT cluster with SignalR
Clustering is an important functionality in the Internet of Things (IoT). It allows multiple devices to act as one and coordinate the work between themselves. For example, you may have IoT devices that are making real-time audio announcements at the departure gates of an airport. If the gates are in Continue Reading