2024年4月11日发布了.NET Aspire预览5版本,这个版本引入了对AWS的支持,并对Azure功能进行了改进。重点内容包括拆分Aspire.Hosting和Aspire.Hosting.Azure包,改进了应用程序模型,支持自定义资源在仪表板中更新状态,增强了与Visual Studio的集成,以及改进了安全性。
.NET Aspire预览5引入了许多新功能和改进,最大的更新之一是需要添加对 Aspire.Hosting.AppHost NuGet 包的引用。以下是其中一些新功能的具体实现方式:
- 扩展方法重命名:通过重命名扩展方法来支持更多的云服务,这些更改将使我们能够更灵活地提供服务,并确保在 .NET Aspire 的核心抽象和应用程序可能需要的各种云原生依赖项之间保持适当的边界。例如下表映射了您目前在 AppHost 中可能使用的 Aspire 扩展方法和包之间的映射 它们现在包含在其中:
这样可以更明确地指明正在向WebApplicationBuilder或HostApplicationBuilder中添加一个"客户端"对象。Azure上的各种服务资源也拆到单独的包里:
- 应用程序模型变更,包括支持非安全传输、自定义资源等
- 支持非安全传输:允许应用程序URL配置为使用非安全传输,通过设置环境变量ASPIRE_ALLOW_UNSECURED_TRANSPORT来实现。
- 仪表板中的自定义资源:允许自定义资源在仪表板中更新其状态并记录控制台输出,通过DI容器中的ResourceNotificationService和ResourceLoggerService实现。
- 改进持久化:改进了为许多基于容器的 .NET Aspire 资源配置容器重启之间的持久性的便利性。现在可以通过使用扩展方法在许多容器上启用持久性。通过新的扩展方法,如使用VolumeMount()和DataVolume(),可以在容器重启之间实现持久化。
- 自动生成密码:在 Aspire 的早期预览版中,当资源添加到应用模型时,每个资源都会创建一个随机密码,如果需要,则采用可选的密码参数。在预览版 5 中,我们修改了 API 以采用用户名和密码的参数。如果省略这些参数,则会自动将具有默认随机值的参数注入到应用程序模型中。新增的IResourceBuilder参数用于指定用户名和密码,如果不提供这些参数,将自动注入一个带有默认随机值的参数。
- Docker构建参数:通过PublishAsDockerfile()方法接受IEnumerable参数,以在构建时传递参数。
- 安全性增强:通过TLS/SSL加密通信,并使用客户端证书或API密钥进行身份验证。
- 性能改进:通过虚拟化技术优化大量数据渲染。
Azure资源改进:
- Azure事件中心:通过AddAzureEventHubs()方法添加Azure事件中心。
- NATS:通过AddNats()方法添加NATS消息队列。
- Seq:通过AddSeq()方法添加Seq日志记录系统。
新组件:
- Azure SignalR:通过AddAzureSignalR()方法添加Azure SignalR服务。
- Azure AI Search:通过AddAzureSearch()方法添加Azure AI搜索文档。
- Azure Application Insights:用于.NET Aspire遥测。
数据库管理工具
- phpMyAdmin:用于管理MySQL数据库。
- mongo-express:用于管理MongoDB数据库。
- Redis Commander:用于管理Redis缓存。
- PostgreSQL PgAdmin:用于管理PostgreSQL数据库。
这些新功能和改进主要通过扩展方法、DI容器、环境变量、构建参数等方式实现,以提供更灵活、安全、易用的.NET Aspire应用程序,使得开发者可以更轻松地集成和管理各种服务和数据库。更详细内容参考 .NET Aspire 预览版 5 - .NET Aspire |Microsoft学习