
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
InstallVisual Studio 2022 version 17 or higher
.Net Aspire Workload
Container runtime such asDocker 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.
varcache=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
builder.AddRedisDistributedCache("cache");
To add additional connection string properties using the JSON syntax
{"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.
// Add the output cachebuilder.AddRedisOutputCache();// Build the appvarapp=builder.Build();// Add the middlewareapp.UseOutputCache();
To cache a razor page use the “OutputCache” attribute as follows
@page"/"@attribute[OutputCache(Duration=10)]
If your project requires to cache the response of APIs, you can use the same “OutputCache” attribute as follows
app.MapGet("/products/{ProdId}",(intProdId)=>$"The product ID is{ProdId}.").CacheOutput();app.MapGet("/products/{ProdId}",[OutputCache](intProdId)=>$"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 atC# Programming
Top comments(0)
For further actions, you may consider blocking this person and/orreporting abuse