Eventos
17 de mar., 23 - 21 de mar., 23
Junte-se à série de encontros para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registrar agoraNão há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
Aplicativos nativos de nuvem geralmente exigem vários tipos de soluções de cache escalonáveis para melhorar o desempenho. .NET Aspire integrações simplificam o processo de conexão a serviços de cache populares, como Redis. Neste artigo, você aprenderá a:
Este artigo explora como usar dois tipos diferentes de cache de ASP.NET Core usando .NET Aspire e Redis:
Para trabalhar com .NET.NET Aspire, você precisa do seguinte instalado localmente:
Para obter mais informações, consulte .NET.NET Aspirede instalação e ferramentas e .NET.NET Aspiredo SDK.
Visual Studio cria uma nova solução .NET Aspire que consiste nos seguintes projetos:
Adicione o pacote NuGet 📦Aspire.Hosting.Redis no projeto AspireRedis.AppHost
:
dotnet add package Aspire.Hosting.Redis
Para obter mais informações, consulte dotnet add package ou Gerenciar dependências de pacotes em .NET aplicações.
Atualize o arquivo Program.cs do projeto AspireRedis.AppHost
para corresponder ao seguinte código:
var builder = DistributedApplication.CreateBuilder(args);
var redis = builder.AddRedis("cache");
var apiservice = builder.AddProject<Projects.AspireRedis_ApiService>("apiservice")
.WithReference(redis);
builder.AddProject<Projects.AspireRedis_Web>("webfrontend")
.WithExternalHttpEndpoints()
.WithReference(apiservice)
.WithReference(redis);
builder.Build().Run();
O código anterior cria uma instância de contêiner local Redis e configura o UI e a API para usar a instância automaticamente tanto para a saída quanto para o cache distribuído. O código também configura a comunicação entre a interface do usuário de front-end e a API de back-end usando a descoberta de serviço. Com a descoberta implícita de serviços do .NET.NET Aspire, a configuração e o gerenciamento de conexões de serviço são simplificados para a produtividade do desenvolvedor. No contexto deste tutorial, o recurso simplifica como você se conecta ao Redis.
Tradicionalmente, você especificaria manualmente a cadeia de conexão Redis no arquivo appsettings.json de cada projeto:
{
"ConnectionStrings": {
"cache": "localhost:6379"
}
}
Configurar a cadeia de conexão com esse método, embora funcional, requer a duplicação da cadeia de conexão em vários projetos, o que pode ser complicado e propenso a erros.
Adicione o cache de saída do .NET Aspire Stack Exchange Redis pacotes de integração ao seu aplicativo AspireRedis.Web
:
dotnet add package Aspire.StackExchange.Redis.OutputCaching
No arquivo Program.cs do projeto AspireRedis.Web
Blazor, imediatamente após a linha var builder = WebApplication.CreateBuilder(args);
, adicione uma chamada ao método de extensão AddRedisOutputCache.
builder.AddRedisOutputCache("cache");
Esse método realiza as seguintes tarefas:
Substitua o conteúdo do arquivo Home.razor do projeto AspireRedis.Web
Blazor pelo seguinte:
@page "/"
@attribute [OutputCache(Duration = 10)]
<PageTitle>Home</PageTitle>
<h1>Hello, world!</h1>
Welcome to your new app on @DateTime.Now
A integração inclui o atributo [OutputCache]
, que armazena em cache toda a resposta renderizada. A página também inclui uma chamada para @DateTime.Now
para ajudar a verificar se a resposta está armazenada em cache.
Adicione os pacotes de integração de cache distribuído do Stack Exchange às suas aplicações .NET AspireRedisAspireRedis.ApiService
.
dotnet add package Aspire.StackExchange.Redis.DistributedCaching
Na parte superior do arquivo Program.cs, adicione uma chamada para AddRedisDistributedCache:
builder.AddRedisDistributedCache("cache");
No arquivo Program.cs, adicione as seguintes instruções using
:
using System.Text;
using System.Text.Json;
using Microsoft.Extensions.Caching.Distributed;
No arquivo Program.cs, substitua o código de ponto de extremidade /weatherforecast
existente pelo seguinte:
app.MapGet("/weatherforecast", async (IDistributedCache cache) =>
{
var cachedForecast = await cache.GetAsync("forecast");
if (cachedForecast is null)
{
var summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" };
var forecast = Enumerable.Range(1, 5).Select(index =>
new WeatherForecast
(
DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
Random.Shared.Next(-20, 55),
summaries[Random.Shared.Next(summaries.Length)]
))
.ToArray();
await cache.SetAsync("forecast", Encoding.UTF8.GetBytes(JsonSerializer.Serialize(forecast)), new ()
{
AbsoluteExpiration = DateTime.Now.AddSeconds(10)
});
return forecast;
}
return JsonSerializer.Deserialize<IEnumerable<WeatherForecast>>(cachedForecast);
})
.WithName("GetWeatherForecast");
Teste o comportamento de cache do seu aplicativo usando as seguintes etapas:
Teste o cache de saída:
Teste o cache distribuído:
Parabéns! Você configurou um aplicativo ASP.NET Core para usar o cache distribuído e de saída com .NET Aspire.
Comentários do .NET Aspire
O .NET Aspire é um projeto código aberto. Selecione um link para fornecer comentários:
Eventos
17 de mar., 23 - 21 de mar., 23
Junte-se à série de encontros para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registrar agoraTreinamento
Módulo
Melhorar o desempenho em um projeto do .NET Aspire com um cache - Training
Neste módulo, você aprenderá sobre caches em um aplicativo nativo de nuvem do .NET Aspire e como usá-los para otimizar o desempenho de seus microserviços.
Certificação
Microsoft Certified: Azure Developer Associate - Certifications
Crie soluções de ponta a ponta no Microsoft Azure para criar Funções do Azure, implementar e gerenciar aplicativos Web, desenvolver soluções utilizando o Armazenamento do Microsoft Azure e muito mais.
Documentação
integração .NET AspireRedis - .NET Aspire
Saiba como usar a integração de .NET AspireRedis, que inclui integrações de hospedagem e cliente.
.NET Aspire Redis integração de cache de saída - .NET Aspire
Saiba como usar a integração de cache de saída .NET AspireRedis para registrar um provedor de cache de saída ASP.NET Core apoiado por um servidor Redis.
.NET Aspire Redis integração de cache distribuído - .NET Aspire
Saiba como usar a integração de cache distribuída .NET AspireRedis, que inclui integrações de hospedagem e cliente.