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. 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 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 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 @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}", (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 Cheat Sheets — .Net 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 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 Install .Net 8 .Net 8 Install Visual Studio 2022 version 17 or higher Visual Studio 2022 .Net Aspire Workload Container runtime such as Docker Desktop 10 Day .Net Aspire Challenge 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 Github Sample DotnetAspireChallenge.ApiService DotnetAspireChallenge.AppHost DotnetAspireChallenge.ServiceDefaults DotnetAspireChallenge.Web DotnetAspireChallenge.ApiService DotnetAspireChallenge.AppHost DotnetAspireChallenge.ServiceDefaults DotnetAspireChallenge.Web DotnetAspireChallenge.Web Getting Started Step 1: Install the following NuGet package Install the following Nuget package into the subsequent project “ DotnetAspireChallenge.AppHost ” DotnetAspireChallenge.AppHost dotnet add package Aspire.Hosting.Oracle dotnet add package Aspire.Hosting.Oracle In the above project, register a server database and consume the Oracle connection using the following code. var cache = builder.AddRedis("cache"); builder.AddProject<Projects.DotnetAspireChallenge_Web>("webfrontend") .WithExternalHttpEndpoints() .WithReference(cache); 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 ” DotnetAspireChallenge.ApiService dotnet add package Aspire.StackExchange.Redis.DistributedCache dotnet add package Aspire.StackExchange.Redis.DistributedCache then register the context into the Program.cs file as follows builder.AddRedisDistributedCache("cache"); builder.AddRedisDistributedCache("cache"); To add additional connection string properties using the JSON syntax { "Aspire": { "StackExchange": { "Redis": { "ConfigurationOptions": { "ConnectTimeout": 5000, "ConnectRetry": 3 } } } } } { "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 cache builder.AddRedisOutputCache(); // Build the app var app = builder.Build(); // Add the middleware app.UseOutputCache(); // 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 @page "/" @attribute [OutputCache(Duration = 10)] @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}", (int ProdId) => $"The product ID is {ProdId}.").CacheOutput(); app.MapGet("/products/{ProdId}", [OutputCache] (int ProdId) => $"The product ID is {ProdId}."); 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 GitHub - ssukhpinder/DotnetAspireChallenge: 10 Day .Net Aspire Challenge More Cheatsheets Cheat Sheets — .Net Cheat Sheets — .Net 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 Youtube X LinkedIn Dev.to GitHub C# Programming