You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为采用整洁架构的后端API添加.NET Aspire

为整洁架构后端API集成.NET Aspire的步骤

整洁架构核心遵循内层不依赖外层、依赖抽象的规则,集成.NET Aspire时需严格维护分层边界,将Aspire的服务管理、配置、监控能力注入到对应层级中,具体操作如下:

1. 创建.NET Aspire宿主项目(AppHost)

如果还没有Aspire宿主,通过命令行创建:

dotnet new aspire-app -n MyAspireHost

将现有整洁架构API项目添加到该解决方案中。

2. 为API项目安装Aspire客户端组件

根据API的依赖场景,安装对应的Aspire NuGet包,示例:

  • 若使用EF Core + Postgres:dotnet add package Aspire.Npgsql.EntityFrameworkCore
  • 若需要HTTP客户端管理:dotnet add package Aspire.Http.Client
  • 基础监控与配置支持:dotnet add package Aspire.Hosting

3. 维护整洁架构的分层边界

Domain层

  • 禁止引用任何Aspire相关包,保持纯业务实体、领域逻辑的独立性,不依赖外部框架。

Application层

  • 仅通过抽象接口定义业务依赖(如IDatabaseContext、IMessageSender),不直接关联Aspire的具体实现。
  • 利用依赖注入获取抽象服务,业务逻辑无需关心底层是否由Aspire托管。

Infrastructure层

  • 这是集成Aspire的核心层级,实现Application层的抽象接口时,通过Aspire管理外部资源:
    • 通过IConfiguration读取Aspire提供的连接字符串(如config.GetConnectionString("CleanDb"))
    • 配置EF Core上下文时,使用Aspire扩展方法简化资源绑定:
      services.AddNpgsqlDbContext<AppDbContext>(config => config.UseConnectionString("CleanDb"));
      

Presentation(API)层

  • 在Program.cs中注册Aspire服务,同时保持与内层的依赖倒置:
    var builder = WebApplication.CreateBuilder(args);
    
    // 注册Aspire HTTP客户端服务
    builder.Services.AddAspireHttpClient<IExternalServiceClient>("external-service");
    
    // 引入Infrastructure层的服务注册逻辑
    builder.Services.AddInfrastructureServices(builder.Configuration);
    
    var app = builder.Build();
    // ... 中间件配置
    app.Run();
    

4. 配置Aspire宿主管理API与依赖资源

在AppHost的Program.cs中,定义API服务及其关联的外部资源:

var builder = DistributedApplication.CreateBuilder(args);

// 添加整洁架构API服务
var cleanApi = builder.AddProject<Projects.MyCleanArchitectureApi>("clean-arch-api");

// 添加Postgres数据库并关联到API
var postgres = builder.AddPostgres("postgres-db").AddDatabase("CleanDb");
cleanApi.WithReference(postgres);

// 添加Redis缓存并关联到API
var redis = builder.AddRedis("cache");
cleanApi.WithReference(redis);

builder.Build().Run();

5. 验证集成效果

  • 运行Aspire宿主项目,打开默认的Aspire Dashboard(http://localhost:18888)
  • 检查API服务是否正常启动,依赖的数据库、缓存等资源是否连接成功
  • 验证API业务逻辑正常执行的同时,Aspire的监控、配置管理功能生效

内容的提问来源于stack exchange,提问作者user3552264

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 15:22:15