首页 > 编程语言 >微服务新体验之Aspire初体验

微服务新体验之Aspire初体验

时间:2024-05-30 13:22:54浏览次数:15  
标签:Web AspireApp1 初体验 新体验 app var Aspire true builder

安装aspire

查看vs版本

我这的版本是17.9.7,不支持aspire,所以需要升级

更新VS

点击 帮助->检查更新

点击更新

静等安装升级

创建aspire项目

项目创建成功,如下图

运行Aspire项目

在AspireApp1.AppHost的launchSettings.json文件中加 "ASPIRE_ALLOW_UNSECURED_TRANSPORT": "true"

{
  "$schema": "https://json.schemastore.org/launchsettings.json",
  "profiles": {
    "http": {
      "commandName": "Project",
      "dotnetRunMessages": true,
      "launchBrowser": true,
      "applicationUrl": "http://localhost:15177",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "DOTNET_ENVIRONMENT": "Development",
        "DOTNET_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:19239",
        "DOTNET_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:20241",
        "ASPIRE_ALLOW_UNSECURED_TRANSPORT": "true"
      }
    }
  }
}

运行AspireApp1.AppHost项目

访问AspireApp1.Web项目

这里只要运行AspireApp1.AppHost项目就可以了

分析

看AspireApp1.AppHost项目的Program.cs文件,这里运行了两个项目

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddRedis("cache");

var apiService = builder.AddProject<Projects.AspireApp1_ApiService>("apiservice"); //这里是后端项目

builder.AddProject<Projects.AspireApp1_Web>("webfrontend")//这里是前端项目
    .WithExternalHttpEndpoints()
    .WithReference(cache)
    .WithReference(apiService);

builder.Build().Run();

AspireApp1.Web这里注入了对apiservice的访问

using AspireApp1.Web;
using AspireApp1.Web.Components;

var builder = WebApplication.CreateBuilder(args);

// Add service defaults & Aspire components.
builder.AddServiceDefaults();
builder.AddRedisOutputCache("cache");

// Add services to the container.
builder.Services.AddRazorComponents()
    .AddInteractiveServerComponents();

builder.Services.AddHttpClient<WeatherApiClient>(client => client.BaseAddress = new("http://apiservice")); //这里注入后端项目的API服务

var app = builder.Build();

if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Error", createScopeForErrors: true);
}

app.UseStaticFiles();
app.UseAntiforgery();

app.UseOutputCache();

app.MapRazorComponents<App>()
    .AddInteractiveServerRenderMode();

app.MapDefaultEndpoints();

app.Run();

看WeatherApiClient.cs文件

namespace AspireApp1.Web;

public class WeatherApiClient(HttpClient httpClient)
{
    public async Task<WeatherForecast[]> GetWeatherAsync(int maxItems = 10, CancellationToken cancellationToken = default)
    {
        List<WeatherForecast>? forecasts = null;

        await foreach (var forecast in httpClient.GetFromJsonAsAsyncEnumerable<WeatherForecast>("/weatherforecast", cancellationToken))//调用后端API获取天气预报数据
        {
            if (forecasts?.Count >= maxItems)
            {
                break;
            }
            if (forecast is not null)
            {
                forecasts ??= [];
                forecasts.Add(forecast);
            }
        }

        return forecasts?.ToArray() ?? [];
    }
}

public record WeatherForecast(DateOnly Date, int TemperatureC, string? Summary)
{
    public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
}

作者

吴晓阳 微信号:shiningrise

标签:Web,AspireApp1,初体验,新体验,app,var,Aspire,true,builder
From: https://www.cnblogs.com/shiningrise/p/18222147

相关文章

  • Aspire初体验
    安装aspire查看vs版本我这的版本是17.9.7,不支持aspire,所以需要升级更新VS点击帮助->检查更新点击更新静等安装升级创建aspire项目项目创建成功,如下图运行Aspire项目在AspireApp1.AppHost的launchSettings.json文件中加"ASPIRE_ALLOW_UNSECURED_TRANSPORT":"tr......
  • Langchain初体验-GLM4使用
    GLM4智谱AI推出新一代基座模型GLM-4LangchainLangChain是一个由大型语言模型(LLMs)驱动的应用开发框架。依赖pipinstalllangchainlangchain_communityhttpxhttpx_ssePyJWTDemoimportosfromlangchain_community.chat_modelsimportChatZhipuAIfromlangchain......
  • 【译】使用 .NET Aspire 和 Visual Studio 开发云原生应用
    我们很高兴地向大家介绍.NETAspire,它旨在简化.NET云原生应用程序的构建和管理方式。.NETAspire为像您这样的开发人员提供了一个改进的、有主见的框架,用于构建分布式应用程序,确保无缝和一致的开发体验。这个新的技术栈汇集了一系列工具、模式和特殊的NuGet包,这些......
  • 香橙派AIpro开发板初体验
    香橙派AIpro开发板初体验一、引言在当前的AI发展浪潮中,边缘计算逐渐成为了研究的热点。香橙派AIpro开发板作为一款基于昇腾AI技术的开发板,凭借其强大的算力和丰富的接口,为AI边缘计算提供了强大的支持。最近,我也是拿到了官方送来的香橙派AIpro开发板,收到后发现包装里不仅有......
  • AI绘图之Midjourney初体验
    Midjourney(MJ)使用笔记最近尝试了Midjourney绘图,简单记录下使用流程。注册及登陆首先是账号注册和登陆,基本上就是一路下一步,唯一需要注意的是加入MJ频道,具体流程为:打开Discord,点击右上角Login进入登陆界面点击登陆页面下方的Register,进入注册页面输入用于注册的相关信......
  • Aspire 框架预览版
    .NETAspire正式发布:简化.NET云原生开发 合集-.NETAspire(7) 1.Aspire框架预览版发布,使云原生开发和运维更加简单2023-11-162..NETAspirePreview4发布!03-153..NETAspire预览5版本发布04-114..NETASPIRE预览版7发布05-165..NETAspire预览版6发布04-......
  • AI数字人客服系统:智能服务新体验,提升客户满意度
    随着科技的飞速发展,人工智能(AI)已经逐渐渗透到我们生活的各个领域,其中AI数字人客服系统便是其杰出代表。这一创新性的智能服务系统,不仅为客户带来了全新的体验,更在提升客户满意度方面发挥了重要作用。AI数字人客服系统以其高度的智能化和个性化服务赢得了广大客户的青睐。传统......
  • 夏日采摘季,视频智能监控管理方案助力智慧果园管理新体验
    5月正值我国各地西瓜、杨梅、大樱桃、油桃等水果丰收的季节,许多地方都举办了采摘旅游活动,吸引了众多游客前来体验采摘乐趣。随着采摘的人流量增多,果园的管理工作也面临压力。为了提升水果园采摘活动的管理效果,减少人工巡查成本,TSINGSEE青犀视频推出了一套水果园采摘活动视频智能监......
  • Dapr 与 .NET Aspire
    Dapr与.NETAspire Dapr与.NETAspire结合使用获得无与伦比的本地开发体验 Dapr 提供了一组构建块,用于抽象分布式系统中常用的概念。这包括服务、缓存、工作流、复原能力、机密管理等之间的安全同步和异步通信。不必自己实现这些功能,可以消除样板,降低复杂性,并允许您......
  • Dapr 与 .NET Aspire 结合使用获得无与伦比的本地开发体验
    Dapr提供了一组构建块,用于抽象分布式系统中常用的概念。这包括服务、缓存、工作流、复原能力、机密管理等之间的安全同步和异步通信。不必自己实现这些功能,可以消除样板,降低复杂性,并允许您专注于开发业务功能。在您的时间有限并且您只想进行实验的情况下,在Dapr初始设置上花费大量......