ToB企服应用市场:ToB评测及商务社交产业平台

标题: 构建你的.NET Aspire解决方案 [打印本页]

作者: 汕尾海湾    时间: 2024-12-5 14:52
标题: 构建你的.NET Aspire解决方案

.NET Aspire 是一组功能强盛的工具、模板和包,用于构建可观察的生产就绪应用步伐。.NET Aspire 通过处理特定云原生问题的 NuGet 包集合提供。云原生应用步伐通常由小型互连部分或微服务组成,而不是单个整体式代码库。云原生应用步伐通常会消耗大量的服务,例如数据库、消息收发和缓存。
.NET Aspire 旨在改善构建 .NET 云原生应用步伐的体验。它提供了一组同等的、有主见的工具和模式,可资助您构建和运行分布式应用步伐。NET Aspire 旨在资助您:
前提条件

安装.NET Aspire 模板

如果尚未安装 .NET Aspire 模板,请运行以下命令:
  1. dotnet new install Aspire.ProjectTemplates
复制代码
完成安装后,执行一下命令可看到aspire项目模板:
  1. dotnet new list aspire
  2. 模板名                        短名称                  语言  标记
  3. ----------------------------  ----------------------  ----  -------------------------------------------------------
  4. .NET Aspire 入门应用          aspire-starter          [C#]  Common/.NET Aspire/Blazor/Web/Web API/API/Service/Cloud
  5. .NET Aspire 应用主机          aspire-apphost          [C#]  Common/.NET Aspire/Cloud
  6. .NET Aspire 服务默认值        aspire-servicedefaults  [C#]  Common/.NET Aspire/Cloud/Web/Web API/API/Service
  7. .NET Aspire 测试项目(MSTest)  aspire-mstest           [C#]  Common/.NET Aspire/Cloud/Web/Web API/API/Service/Test
  8. .NET Aspire 测试项目(NUnit)   aspire-nunit            [C#]  Common/.NET Aspire/Cloud/Web/Web API/API/Service/Test
  9. .NET Aspire 测试项目(xUnit)   aspire-xunit            [C#]  Common/.NET Aspire/Cloud/Web/Web API/API/Service/Test
  10. .NET Aspire 空应用            aspire                  [C#]  Common/.NET Aspire/Cloud/Web/Web API/API/Service
复制代码
从模板创建 .NET Aspire 空应用,请运行以下命令:
  1. dotnet new aspire -o Stargazer
复制代码
创建的应用是一个最小的 .NET Aspire 项目,包括以下内容:
集成服务

加入适用于常用服务(如 Redis 或 Postgres)的 NuGet 包Aspire.Hosting.PostgreSQL、Aspire.Hosting.Redis、Aspire.Hosting.MongoDB,然后在代码中创建docker容器:
  1. using System.Runtime.InteropServices;
  2. var builder = DistributedApplication.CreateBuilder(args);
  3. string redisImage = "hub.atomgit.com/amd64/redis";
  4. string postgresqlImage = "hub.atomgit.com/amd64/postgres";
  5. string mongodbImage = "hub.atomgit.com/amd64/mongo";
  6. Architecture architecture = RuntimeInformation.ProcessArchitecture;
  7. if(architecture == Architecture.Arm
  8.    || architecture == Architecture.Arm64)
  9. {
  10.     redisImage = "hub.atomgit.com/arm64v8/redis";
  11.     postgresqlImage = "hub.atomgit.com/arm64v8/postgres";
  12.     mongodbImage = "hub.atomgit.com/arm64v8/mongo";
  13. }
  14.    
  15. var redis = builder.AddRedis("redis", 6379)
  16.     .WithContainerName("redis")
  17.     .WithImage(redisImage, "7-alpine")
  18.     .WithDataVolume("redis")
  19.     .WithRedisCommander(null, "redis-commander");
  20. var username = builder.AddParameter("postgres-uid", "postgres");
  21. var password = builder.AddParameter("postgres-pwd", "123456");
  22. var postgres = builder.AddPostgres("postgres", username, password, 5432)
  23.     .WithContainerName("postgres")
  24.     .WithImage(postgresqlImage, "15-alpine")
  25.     .WithDataVolume("postgres");
  26. var postgresql = postgres.AddDatabase("postgresql");
  27. var mongoUser = builder.AddParameter("mongo-user", "root");
  28. var mongoPwd = builder.AddParameter("mongo-pwd", "123456");
  29. var mongo = builder.AddMongoDB("mongo", 27017, mongoUser, mongoPwd)
  30.     .WithContainerName("mongo")
  31.     .WithImage(mongodbImage, "7-jammy")
  32.     .WithDataVolume("mongo");
  33. var mongodb = mongo.AddDatabase("mongodb");
  34. IResourceBuilder<ProjectResource> apiService = builder.AddProject<Projects.Stargazer_Abp_Template_Host>("api-service");
  35. builder.AddProject<Projects.Stargazer_Abp_Template_Web>("frontend")
  36.     .WithExternalHttpEndpoints()
  37.     .WithReference(redis)
  38.     .WithReference(postgresql)
  39.     .WithReference(mongodb)
  40.     .WaitFor(redis)
  41.     .WaitFor(postgres)
  42.     .WaitFor(mongodb)
  43.     .WithReference(apiService);
  44. builder.Build().Run();
复制代码
启动应用步伐

运行以下命令启动应用步伐:
  1. dotnet run --project Stargazer.AppHost
复制代码

访问https://localhost:17125/login?t=337c3ec0bfdadd302fcdb467d76453ad,就可以使用.NET Aspire 仪表板。

访问仪表板上的链接http://localhost:5136/,就可以访问应用步伐。

首发网站:https://stargazer.tech/2024/12/05/build-your-dotnet-aspire-solution/
相干链接

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4