首页 > 编程语言 >构建你的.NET Aspire解决方案

构建你的.NET Aspire解决方案

时间:2024-12-05 12:20:59浏览次数:5  
标签:Web postgres 解决方案 aspire API Aspire NET

.NET Aspire 是一组功能强大的工具、模板和包,用于构建可观察的生产就绪应用程序。.NET Aspire 通过处理特定云原生问题的 NuGet 包集合提供。云原生应用程序通常由小型互连部分或微服务组成,而不是单个整体式代码库。云原生应用程序通常会消耗大量的服务,例如数据库、消息收发和缓存。

.NET Aspire 旨在改善构建 .NET 云原生应用程序的体验。它提供了一组一致的、有主见的工具和模式,可帮助您构建和运行分布式应用程序。NET Aspire 旨在帮助您:

  • 编排:.NET Aspire 为本地开发环境提供了运行和连接多项目应用程序及其依赖项的功能。
  • 集成:.NET Aspire 集成是适用于常用服务(如 Redis 或 Postgres)的 NuGet 包,具有标准化接口,可确保它们与您的应用程序一致且无缝地连接。
  • 工具:.NET Aspire 附带适用于 Visual Studio、Visual Studio Code 和 .NET CLI 的项目模板和工具体验,可帮助你创建 .NET Aspire 项目并与之交互。

前提条件

安装.NET Aspire 模板

如果尚未安装 .NET Aspire 模板,请运行以下命令:

dotnet new install Aspire.ProjectTemplates

完成安装后,执行一下命令可看到aspire项目模板:

dotnet new list aspire

模板名                        短名称                  语言  标记
----------------------------  ----------------------  ----  -------------------------------------------------------
.NET Aspire 入门应用          aspire-starter          [C#]  Common/.NET Aspire/Blazor/Web/Web API/API/Service/Cloud
.NET Aspire 应用主机          aspire-apphost          [C#]  Common/.NET Aspire/Cloud
.NET Aspire 服务默认值        aspire-servicedefaults  [C#]  Common/.NET Aspire/Cloud/Web/Web API/API/Service
.NET Aspire 测试项目(MSTest)  aspire-mstest           [C#]  Common/.NET Aspire/Cloud/Web/Web API/API/Service/Test
.NET Aspire 测试项目(NUnit)   aspire-nunit            [C#]  Common/.NET Aspire/Cloud/Web/Web API/API/Service/Test
.NET Aspire 测试项目(xUnit)   aspire-xunit            [C#]  Common/.NET Aspire/Cloud/Web/Web API/API/Service/Test
.NET Aspire 空应用            aspire                  [C#]  Common/.NET Aspire/Cloud/Web/Web API/API/Service

从模板创建 .NET Aspire 空应用,请运行以下命令:

dotnet new aspire -o Stargazer

创建的应用是一个最小的 .NET Aspire 项目,包括以下内容:

集成服务

加入适用于常用服务(如 Redis 或 Postgres)的 NuGet 包Aspire.Hosting.PostgreSQLAspire.Hosting.RedisAspire.Hosting.MongoDB,然后在代码中创建docker容器:

using System.Runtime.InteropServices;

var builder = DistributedApplication.CreateBuilder(args);

string redisImage = "hub.atomgit.com/amd64/redis";
string postgresqlImage = "hub.atomgit.com/amd64/postgres";
string mongodbImage = "hub.atomgit.com/amd64/mongo";
Architecture architecture = RuntimeInformation.ProcessArchitecture;
if(architecture == Architecture.Arm
   || architecture == Architecture.Arm64)
{
    redisImage = "hub.atomgit.com/arm64v8/redis";
    postgresqlImage = "hub.atomgit.com/arm64v8/postgres";
    mongodbImage = "hub.atomgit.com/arm64v8/mongo";
}
    
var redis = builder.AddRedis("redis", 6379)
    .WithContainerName("redis")
    .WithImage(redisImage, "7-alpine")
    .WithDataVolume("redis")
    .WithRedisCommander(null, "redis-commander");

var username = builder.AddParameter("postgres-uid", "postgres");
var password = builder.AddParameter("postgres-pwd", "123456");
var postgres = builder.AddPostgres("postgres", username, password, 5432)
    .WithContainerName("postgres")
    .WithImage(postgresqlImage, "15-alpine")
    .WithDataVolume("postgres");
var postgresql = postgres.AddDatabase("postgresql");

var mongoUser = builder.AddParameter("mongo-user", "root");
var mongoPwd = builder.AddParameter("mongo-pwd", "123456");
var mongo = builder.AddMongoDB("mongo", 27017, mongoUser, mongoPwd)
    .WithContainerName("mongo")
    .WithImage(mongodbImage, "7-jammy")
    .WithDataVolume("mongo");
var mongodb = mongo.AddDatabase("mongodb");

IResourceBuilder<ProjectResource> apiService = builder.AddProject<Projects.Stargazer_Abp_Template_Host>("api-service");

builder.AddProject<Projects.Stargazer_Abp_Template_Web>("frontend")
    .WithExternalHttpEndpoints()
    .WithReference(redis)
    .WithReference(postgresql)
    .WithReference(mongodb)
    .WaitFor(redis)
    .WaitFor(postgres)
    .WaitFor(mongodb)
    .WithReference(apiService);

builder.Build().Run();

启动应用程序

运行以下命令启动应用程序:

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/
相关链接

标签:Web,postgres,解决方案,aspire,API,Aspire,NET
From: https://www.cnblogs.com/huangmingji/p/18588251/build-your-dotnet-aspire-solution

相关文章

  • 链接MySQL报错2059 -Authentication plugin ‘caching sha2 password‘ cannot be loa
    1.报错内容: 2059-Authenticationplugin'cachingsha2password'cannotbeloaded2.报错截图:3.原因分析:如上图的报错提示可知,报错原因是caching_sha2_password不能加载。在MySQL8.0及以上版本中,默认的用户密码认证插件是'caching_sha2_password',而在MySQL5.7及以下......
  • Asp.net Mvc在VSCore中如何将增删改查的增改添加数据传输到页面(需配合上一篇Mvc的增
    Linq集成查询(关联Lambda)FirstFirstOrDefault找到第一个符合条件的元素First(x=>x.Id==id)返回第一个Id等于id的元素,如果都没有符合的,报错FirstOrDefault(x=>x.Id==id)返回第一个Id等于id的元素,如果都没有符合的,返回NullSingleSingleOrDefaultSingle()返回第一......
  • Linux: Centos7 Cannot find a valid baseurl for repo: base/7/x86_64 解决方案
    问题背景执行yumupdate出现如下报错排查虚拟机是否联网ping-c4www.baidu.com可以看到网络链接没有问题解决方案原因是国外的镜像源有问题,换成国内的即可。备份原有的镜像源sudomv/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.backup......
  • D27 D26 kubernetes 通过Service实现蓝绿发布
    1.蓝绿发布的基本原理 蓝绿发布(Blue-Green-Deployment)是一种应用升级发布方式,这种方式可以瞬间切换到新版本,也可以瞬间回退到老版本。可以做到服务不中断的回滚,提升用户的使用体验。下面以在kubernetes中升级为例来说明蓝绿发布的过程为了在k8s中支持蓝绿发布,需要给应用p......
  • 解释ResNet代码,而且一步一步教你怎么跑通!提供完整数据集和代码
    ResNet网络用到了残差块,可以看一下上篇简单了解。上一篇简单了解一下ResNet。        如果重新训练模型的话会很慢,我选择直接用官网训练好的模型参数进行微调就行(就是直接加载参数,然后训练批次小一点,效果就很好),官网的这个网络是做图像分类的。步骤一:下载预训练模型......
  • 分类算法中的样本不平衡问题及其解决方案
    一、样本不平衡问题概述在机器学习的分类任务中,样本不平衡是指不同类别训练样本数量存在显著差异的现象。这一差异会给模型训练和性能评估带来挑战,尤其在处理少数类样本时,模型可能难以有效学习其特征。以二分类为例,理想情况下正负样本数量应相对平衡,如各1000个样本时,模......
  • 3D点云-Pointnet++模型解读(附源码+论文)
    3D点云-Pointnet++模型代码链接:pointnet2-pytorch-study(关键部分代码注释详细,参考Pointnet_Pointnet2_pytorch)论文链接:PointNet++:DeepHierarchicalFeatureLearningonPointSetsinaMetricSpace官方链接:pointnet2(源码基于TensorFlow)公开3D点云数据集:modelnet4......
  • nacos开启鉴权后,默认账号密码无法登录问题,解决方案
    Linux系统下,检查使用版本java-version,如果是openJDK1.8版本,那么可能存在openJDK本身缺少加密软件包。检查登录界面,控制台会出现,报错样式,如下图所示此时就可以判断,由于jdk版本的问题,导致默认账号密码无法登录。解决方法:升级JDK版本到openJDK17或改用oracleJDK1.8......
  • 安装MongoDB报错或者使用net start MongoDB 报错解决
    报错信息:Service‘MongoDBServer(MongoDB)’(MongoDB)failedtostart.Verifythatyouhavesufficientprivilegestostartsystemservices.解决方案:可以先删除MongoDB服务scdeleteMongoDB然后在MongoDB下载地址里的Data目录创建db文件在log目录下创建MongoDB......
  • AEC论文解读 -- ACOUSTIC ECHO CANCELLATION WITH THE DUAL-SIGNAL TRANSFORMATION LS
    程序地址预训练模型一、技术解读1.1信号处理1.1.1数据集来源合成数据集:包含10,000个示例,涵盖单工、双工、近端噪声、远端噪声和非线性失真情况。真实录音数据集:包含不同环境中的录音,确保多样性。前500个示例用于工具评估,称为“双工测试集”。训练时仅使用远端信......