.NET Aspire 是微软推出的云原生开发框架让构建分布式应用变得简单版本定位适用版本.NET 8 | Aspire预览版 前置知识.NET 8 基础、依赖注入概念背景构建云原生应用通常需要处理很多复杂的问题服务发现如何找到其他服务配置管理如何统一管理配置可观测性如何监控应用状态依赖管理如何启动 Redis、数据库等依赖.NET Aspire 就是为了解决这些问题而生的。什么是 .NET Aspire一句话**.NET Aspire 是一个云原生开发框架提供服务发现、组件集成、可观测性等功能让构建分布式应用变得简单。**核心组件┌─────────────────────────────────────────────┐ │ .NET Aspire App │ ├─────────────────────────────────────────────┤ │ Service Discovery │ Observability │ │ ───────────────── │ ────────────── │ │ 自动发现服务 │ Dashboard │ │ 健康检查 │ 日志/指标/追踪 │ ├─────────────────────────────────────────────┤ │ Components │ │ ────────────────────────────────────────── │ │ Redis │ PostgreSQL │ RabbitMQ │ ... │ └─────────────────────────────────────────────┘Aspire 能做什么服务发现自动发现和连接服务组件集成Redis、PostgreSQL、RabbitMQ 等开箱即用Dashboard实时监控应用状态本地开发一键启动所有依赖云部署轻松部署到 Azure、AWS、Kubernetes快速上手1. 安装 Aspire 模板dotnet new install Aspire.ProjectTemplates2. 创建 Aspire 项目# 创建 Aspire 应用宿主 dotnet new aspire-apphost -n MyApp # 创建 Web API 服务 dotnet new aspire-servicedefaults -n MyApp.Api # 创建 Web 前端 dotnet new aspire-razor -n MyApp.Web3. 项目结构MyApp/ ├── MyApp.AppHost/ # 应用宿主入口点 │ ├── Program.cs │ └── MyApp.AppHost.csproj ├── MyApp.Api/ # Web API 服务 │ ├── Controllers/ │ ├── Program.cs │ └── MyApp.Api.csproj ├── MyApp.Web/ # Web 前端 │ ├── Pages/ │ ├── Program.cs │ └── MyApp.Web.csproj └── MyApp.ServiceDefaults/ # 服务默认配置 ├── Extensions.cs └── MyApp.ServiceDefaults.csproj4. 应用宿主配置// MyApp.AppHost/Program.cs var builder DistributedApplication.CreateBuilder(args); // 添加 Redis var cache builder.AddRedis(cache); // 添加 PostgreSQL var db builder.AddPostgreSQL(db) .AddDatabase(mydb); // 添加 API 服务 var api builder.AddProjectProjects.MyApp.Api(api) .WithReference(db); // 添加 Web 前端 builder.AddProjectProjects.MyApp.Web(web) .WithReference(api); builder.Build().Run();5. 服务配置// MyApp.Api/Program.cs var builder WebApplication.CreateBuilder(args); // 添加 Aspire 服务 builder.AddServiceDefaults(); // 添加数据库 builder.AddNpgsqlDbContextMyDbContext(db); // 添加 Redis builder.AddRedis(cache); var app builder.Build(); app.MapControllers(); app.Run();核心功能详解1. 服务发现// 自动发现并连接其他服务 builder.Services.AddHttpClient(api, client { // Aspire 自动注入服务地址 client.BaseAddress new Uri(httpshttp://api); });2. 组件集成// Redis 缓存 builder.AddRedis(cache); // PostgreSQL 数据库 builder.AddPostgreSQL(db) .AddDatabase(mydb); // RabbitMQ 消息队列 builder.AddRabbitMQ(messaging); // Azure 服务 builder.AddAzureRedis(cache); builder.AddAzurePostgreSQL(db);3. Dashboard运行 Aspire 应用后会自动启动一个 Dashboard┌─────────────────────────────────────────────┐ │ .NET Aspire Dashboard │ ├─────────────────────────────────────────────┤ │ Resources │ Console │ Logs │ Traces │ Metrics │ ├─────────────────────────────────────────────┤ │ api │ Running │ 127.0.0.1:5000 │ │ web │ Running │ 127.0.0.1:5001 │ │ cache │ Running │ 127.0.0.1:6379 │ │ db │ Running │ 127.0.0.1:5432 │ └─────────────────────────────────────────────┘4. 可观测性// 自动收集日志、指标、追踪 builder.AddServiceDefaults(); // 自定义指标 var meter new Meter(MyApp, 1.0); var counter meter.CreateCounterint(requests.total); app.MapGet(/, () { counter.Add(1); return Hello Aspire!; });实战场景适合 Aspire 的场景微服务架构多个服务需要协同工作本地开发需要 Redis、数据库等依赖云原生部署计划部署到 Kubernetes可观测性需求需要监控应用状态不适合 Aspire 的场景单体应用只有一个项目无依赖应用不需要 Redis、数据库等简单项目不需要复杂的服务发现迁移建议从现有项目迁移# 1. 安装 Aspire 模板 dotnet new install Aspire.ProjectTemplates # 2. 创建 Aspire 应用宿主 dotnet new aspire-apphost -n MyApp.AppHost # 3. 将现有项目添加到宿主 # 编辑 MyApp.AppHost/Program.cs var builder DistributedApplication.CreateBuilder(args); var api builder.AddProjectProjects.ExistingApi(api);注意事项预览版Aspire 仍在预览API 可能变化学习曲线需要理解 Aspire 的概念依赖管理需要安装 Docker 等依赖一句话总结.NET Aspire 让云原生开发变得简单它把服务发现、组件集成、可观测性打包在一起让你专注于业务逻辑。官方文档.NET Aspire 概述.NET Aspire 入门.NET Aspire 组件Whats new in .NET Aspire示例代码.NET 新特性巡礼全系列配套示例代码含 dotnet 8/9/10GitHubhttps://github.com/LadyKiller1025/dotnet-feature-tour-demosGiteehttps://gitee.com/qakjhzx/dotnet-feature-tour-demos 欢迎点赞、收藏、转发你的支持是我持续创作的动力
【.NET新特性·第4篇】.NET Aspire 入门:云原生开发新姿势
发布时间:2026/6/3 23:16:02
.NET Aspire 是微软推出的云原生开发框架让构建分布式应用变得简单版本定位适用版本.NET 8 | Aspire预览版 前置知识.NET 8 基础、依赖注入概念背景构建云原生应用通常需要处理很多复杂的问题服务发现如何找到其他服务配置管理如何统一管理配置可观测性如何监控应用状态依赖管理如何启动 Redis、数据库等依赖.NET Aspire 就是为了解决这些问题而生的。什么是 .NET Aspire一句话**.NET Aspire 是一个云原生开发框架提供服务发现、组件集成、可观测性等功能让构建分布式应用变得简单。**核心组件┌─────────────────────────────────────────────┐ │ .NET Aspire App │ ├─────────────────────────────────────────────┤ │ Service Discovery │ Observability │ │ ───────────────── │ ────────────── │ │ 自动发现服务 │ Dashboard │ │ 健康检查 │ 日志/指标/追踪 │ ├─────────────────────────────────────────────┤ │ Components │ │ ────────────────────────────────────────── │ │ Redis │ PostgreSQL │ RabbitMQ │ ... │ └─────────────────────────────────────────────┘Aspire 能做什么服务发现自动发现和连接服务组件集成Redis、PostgreSQL、RabbitMQ 等开箱即用Dashboard实时监控应用状态本地开发一键启动所有依赖云部署轻松部署到 Azure、AWS、Kubernetes快速上手1. 安装 Aspire 模板dotnet new install Aspire.ProjectTemplates2. 创建 Aspire 项目# 创建 Aspire 应用宿主 dotnet new aspire-apphost -n MyApp # 创建 Web API 服务 dotnet new aspire-servicedefaults -n MyApp.Api # 创建 Web 前端 dotnet new aspire-razor -n MyApp.Web3. 项目结构MyApp/ ├── MyApp.AppHost/ # 应用宿主入口点 │ ├── Program.cs │ └── MyApp.AppHost.csproj ├── MyApp.Api/ # Web API 服务 │ ├── Controllers/ │ ├── Program.cs │ └── MyApp.Api.csproj ├── MyApp.Web/ # Web 前端 │ ├── Pages/ │ ├── Program.cs │ └── MyApp.Web.csproj └── MyApp.ServiceDefaults/ # 服务默认配置 ├── Extensions.cs └── MyApp.ServiceDefaults.csproj4. 应用宿主配置// MyApp.AppHost/Program.cs var builder DistributedApplication.CreateBuilder(args); // 添加 Redis var cache builder.AddRedis(cache); // 添加 PostgreSQL var db builder.AddPostgreSQL(db) .AddDatabase(mydb); // 添加 API 服务 var api builder.AddProjectProjects.MyApp.Api(api) .WithReference(db); // 添加 Web 前端 builder.AddProjectProjects.MyApp.Web(web) .WithReference(api); builder.Build().Run();5. 服务配置// MyApp.Api/Program.cs var builder WebApplication.CreateBuilder(args); // 添加 Aspire 服务 builder.AddServiceDefaults(); // 添加数据库 builder.AddNpgsqlDbContextMyDbContext(db); // 添加 Redis builder.AddRedis(cache); var app builder.Build(); app.MapControllers(); app.Run();核心功能详解1. 服务发现// 自动发现并连接其他服务 builder.Services.AddHttpClient(api, client { // Aspire 自动注入服务地址 client.BaseAddress new Uri(httpshttp://api); });2. 组件集成// Redis 缓存 builder.AddRedis(cache); // PostgreSQL 数据库 builder.AddPostgreSQL(db) .AddDatabase(mydb); // RabbitMQ 消息队列 builder.AddRabbitMQ(messaging); // Azure 服务 builder.AddAzureRedis(cache); builder.AddAzurePostgreSQL(db);3. Dashboard运行 Aspire 应用后会自动启动一个 Dashboard┌─────────────────────────────────────────────┐ │ .NET Aspire Dashboard │ ├─────────────────────────────────────────────┤ │ Resources │ Console │ Logs │ Traces │ Metrics │ ├─────────────────────────────────────────────┤ │ api │ Running │ 127.0.0.1:5000 │ │ web │ Running │ 127.0.0.1:5001 │ │ cache │ Running │ 127.0.0.1:6379 │ │ db │ Running │ 127.0.0.1:5432 │ └─────────────────────────────────────────────┘4. 可观测性// 自动收集日志、指标、追踪 builder.AddServiceDefaults(); // 自定义指标 var meter new Meter(MyApp, 1.0); var counter meter.CreateCounterint(requests.total); app.MapGet(/, () { counter.Add(1); return Hello Aspire!; });实战场景适合 Aspire 的场景微服务架构多个服务需要协同工作本地开发需要 Redis、数据库等依赖云原生部署计划部署到 Kubernetes可观测性需求需要监控应用状态不适合 Aspire 的场景单体应用只有一个项目无依赖应用不需要 Redis、数据库等简单项目不需要复杂的服务发现迁移建议从现有项目迁移# 1. 安装 Aspire 模板 dotnet new install Aspire.ProjectTemplates # 2. 创建 Aspire 应用宿主 dotnet new aspire-apphost -n MyApp.AppHost # 3. 将现有项目添加到宿主 # 编辑 MyApp.AppHost/Program.cs var builder DistributedApplication.CreateBuilder(args); var api builder.AddProjectProjects.ExistingApi(api);注意事项预览版Aspire 仍在预览API 可能变化学习曲线需要理解 Aspire 的概念依赖管理需要安装 Docker 等依赖一句话总结.NET Aspire 让云原生开发变得简单它把服务发现、组件集成、可观测性打包在一起让你专注于业务逻辑。官方文档.NET Aspire 概述.NET Aspire 入门.NET Aspire 组件Whats new in .NET Aspire示例代码.NET 新特性巡礼全系列配套示例代码含 dotnet 8/9/10GitHubhttps://github.com/LadyKiller1025/dotnet-feature-tour-demosGiteehttps://gitee.com/qakjhzx/dotnet-feature-tour-demos 欢迎点赞、收藏、转发你的支持是我持续创作的动力