10-дневный .Net Aspire Challenge — День 6: Redis Cache

10-дневный .Net Aspire Challenge — День 6: Redis Cache

3 сентября 2024 г.

Пошаговое руководство по использованию компонента .Net Aspire Redis Cache в Visual Studio.

Введение

.Net Aspire Framework используется для разработки облачных и готовых к производству распределенных приложений. Он состоит из компонентов для обработки облачных задач, таких как Redis, Postgres и т. д.

Предпосылки

  • Установить.Net 8
  • УстановитьVisual Studio 2022версия 17 или выше
  • Рабочая нагрузка .Net Aspire
  • Среда выполнения контейнера, напримерРабочий стол Docker10-дневный челлендж .Net Aspire

Цели

Узнайте, как создать начальный проект с использованием .Net Aspire с Redis Cache.

Образец Github: Структура решения разделена на следующие проекты

  • DotnetAspireChallenge.ApiService
  • DotnetAspireChallenge.AppHost
  • DotnetAspireChallenge.ServiceDefaults
  • DotnetAspireChallenge.Web

Начиная

Шаг 1: Установите следующий пакет NuGet

Установите следующий пакет Nuget в последующий проект «DotnetAspireChallenge.AppHost

dotnet add package Aspire.Hosting.Oracle

В приведенном выше проекте зарегистрируйте базу данных сервера и используйте соединение Oracle, используя следующий код.

    var cache = builder.AddRedis("cache");
    
    builder.AddProject<Projects.DotnetAspireChallenge_Web>("webfrontend")
        .WithExternalHttpEndpoints()
        .WithReference(cache);

Шаг 2: Установите еще один пакет NuGet

Установите следующий пакет Nuget в последующий проект «DotnetAspireChallenge.ApiService

dotnet add package Aspire.StackExchange.Redis.DistributedCache

затем зарегистрируйте контекст в файле Program.cs следующим образом

    builder.AddRedisDistributedCache("cache");

Чтобы добавить дополнительные свойства строки подключения с использованием синтаксиса JSON

    {
      "Aspire": {
        "StackExchange": {
          "Redis": {
            "ConfigurationOptions": {
              "ConnectTimeout": 5000,
              "ConnectRetry": 3
            }
          }
        }
      }
    }

Поздравляем!..!! Вы успешно интегрировали компонент Redis Cache в проект .Net Aspire.

Кэш вывода

HTML или любой статический контент можно также кэшировать в веб-приложении или приложении Blazer.

    // Add the output cache
    builder.AddRedisOutputCache();
    
    // Build the app
    var app = builder.Build();
    
    // Add the middleware
    app.UseOutputCache();

Чтобы кэшировать страницу Razor, используйте атрибут «OutputCache» следующим образом

    @page "/"
    @attribute [OutputCache(Duration = 10)]

Если вашему проекту требуется кэшировать ответ API, вы можете использовать тот же атрибут «OutputCache» следующим образом:

    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

GitHub — ssukhpinder/DotnetAspireChallenge: 10-дневный вызов .Net Aspire Challenge

Еще шпаргалок

Шпаргалки — .Net

Программирование на C#🚀

Спасибо, что вы являетесь частью сообщества C#! Прежде чем вы уйдете:

Подписывайтесь на нас:Ютуб | Х | LinkedIn | Dev.toПосетите наши другие платформы:GitHubБольше контента наПрограммирование на C#


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE