This content originally appeared on HackerNoon and was authored by Sukhpinder Singh
Step-by-step guide on how to use the .Net Aspire Redis Cache component in Visual Studio.
Introduction
.Net Aspire framework is used to develop cloud and production-ready distributed applications. It consists of components to handle cloud-native concerns, such as Redis, Postgres, etc.
Prerequisites
- Install .Net 8
- Install Visual Studio 2022 version 17 or higher
- .Net Aspire Workload
- Container runtime such as Docker Desktop 10 Day .Net Aspire Challenge
Objectives
Learn how to create a starter project using .Net Aspire with the Redis Cache.
Github Sample: The solution structure is divided into the following projects
- DotnetAspireChallenge.ApiService
- DotnetAspireChallenge.AppHost
- DotnetAspireChallenge.ServiceDefaults
- DotnetAspireChallenge.Web
Getting Started
Step 1: Install the following NuGet package
Install the following Nuget package into the subsequent project “DotnetAspireChallenge.AppHost”
dotnet add package Aspire.Hosting.Oracle
In the above project, register a server database and consume the Oracle connection using the following code.
```csharp
var cache = builder.AddRedis("cache");
builder.AddProject<Projects.DotnetAspireChallenge_Web>("webfrontend")
.WithExternalHttpEndpoints()
.WithReference(cache);
### Step 2: Install another NuGet package
Install the following Nuget package into the subsequent project “**DotnetAspireChallenge.ApiService**”
dotnet add package Aspire.StackExchange.Redis.DistributedCache
then register the context into the Program.cs file as follows
csharp builder.AddRedisDistributedCache("cache");
To add additional connection string properties using the JSON syntax
json { "Aspire": { "StackExchange": { "Redis": { "ConfigurationOptions": { "ConnectTimeout": 5000, "ConnectRetry": 3 } } } } }
Congratulations..!! You’ve successfully integrated the Redis Cache component into the .Net Aspire project.
### Output Cache
The HTML or any static content can be cached as well in a web app or a Blazer app.
csharp // Add the output cache builder.AddRedisOutputCache();
// Build the app
var app = builder.Build();
// Add the middleware
app.UseOutputCache();
To cache a razor page, use the “OutputCache” attribute as follows
csharp @page "/" @attribute [OutputCache(Duration = 10)]
If your project requires to cache the response of APIs, you can use the same “OutputCache” attribute as follows
csharp app.MapGet("/products/{ProdId}", (int ProdId) => $"The product ID is {ProdId}.").CacheOutput(); app.MapGet("/products/{ProdId}", [OutputCache] (int ProdId) => $"The product ID is {ProdId}."); ```
Github Project
GitHub - ssukhpinder/DotnetAspireChallenge: 10 Day .Net Aspire Challenge
More Cheatsheets
C# Programming🚀
Thank you for being a part of the C# community! Before you leave:
Follow us: Youtube | X | LinkedIn | Dev.to Visit our other platforms: GitHub More content at C# Programming
This content originally appeared on HackerNoon and was authored by Sukhpinder Singh

Sukhpinder Singh | Sciencx (2024-09-03T16:32:13+00:00) The 10-Day .Net Aspire Challenge – Day 6: Redis Cache. Retrieved from https://www.scien.cx/2024/09/03/the-10-day-net-aspire-challenge-day-6-redis-cache/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.