.NET Aspire Preview 4 发布!

.NET Aspire是一个有态度的云原生应用开发框架,旨在改善生成.NET云原生应用的体验,并提供一组强大的工具来帮助你生成和运行分布式应用。它允许开发者快速创建属于自己的云原生应用,或改造已有的项目成为云原生应用。.NET Aspire提供服务发现、健康检查、故障和容错策略、Redis服务、可观测性以及遥测面板等功能,并展现出强大的可扩展性。.NET Aspire 提供了如下3个方面的能力,来帮助我们使用.NET开发分层、云就绪的可观测、本地与生产环境一致的分布式云原生应用程序:

  • 微服务的编排能力:在开发和线上环境自动处理多个微服务之间的连接和依赖,也即内置了服务发现等基础能力。

  • 基础服务的访问能力:通过提供一系列Nuget包,把对一些基础服务的访问进行统一封装(比如,缓存、数据库、消息队列等),方便微服务直接使用。

  • 工具链的相应配合:在VS和VSCode等工具中添加对以上编排能力的支持,并提供一系列开箱即用的模板,来方便开发人员进行开发、调试和部署云原生应用。

.NET Aspire Preview 4 现已发布!.NET Aspire预览版4引入了多项重要增强功能,包括社区高度需求的特性。该版本关注的领域包括对Entity Framework组件的改进、Podman支持以及应用模型方面的更改,以便轻松选择使用现有资源或预配新资源。.NET Aspire预览版4的版本号是8.0.0-preview.4.24156.9.以下是此预览版中新增内容的摘要:

  • Podman
    • 支持使用 podman 运行应用程序。Podman是一个无守护进程的容器引擎,用于在Linux系统上开发、管理和运行OCI容器。它是Linux用户运行容器而不需要守护进程的绝佳选择。如果同时检测到Docker和Podman,则优先使用Docker。可以通过环境变量
  • Dashboard 仪表板,仪表板的外观和感觉进行了更新,新的仪表板设计旨在减少导航标签所占用的空间,并简化在日志、指标和跟踪之间的导航。.NET Aspire仪表板现在可以作为独立容器镜像运行,这使得使用仪表板管理在不同机器或不同环境运行的应用程序变得更加容易。仪表板还可以作为OTLP grpc端点的收集器和查看器,用于希望发送和可视化遥测数据的应用程序
    • 独立容器镜像,参见示例
    • 辅助功能改进,包括 Shift + ? 快捷键
    • 指标表视图,在图表或表格之间切换
  • 数据库和实体框架改进,引入了对Entity Framework的新方法,用于配置Entity Framework。新的Enrich[Provider]DbContext()方法在注册DbContext类时提供了更多灵活性。这些方法不注册DbContext,而是在调用它们之前期望你自行注册。这些方法仍然配置命令重试、健康检查、日志和遥测,此外,预览版4改进了使用EF Core工具在.NET Aspire应用中创建迁移的过程。以前,EF Core工具会因缺少数据库连接字符串而失败。在预览版4中,.NET Aspire检测到项目是否使用EF Core工具启动,并禁用连接字符串验证,从而允许成功创建迁移。另一个挑战是与 transient 数据库应用迁移。为此,探索了在.NET Aspire解决方案中添加一个.NET后台工作者资源的方法。这个工作者在应用主机启动时执行迁移
    • 新的管理工具,MySQL (phpMyAdmin) 和 MongoDB (mongo-express)
    • 实体框架迁移问题已解决,请参阅示例
    • 数据库服务器资源更新
    • 数据库容器资源更新
    • 新的 Enrich API, Enrich[Provider]DdContext
  • 外部参数,请参阅 .NET Aspire 文档:外部参数:这些参数用于表示在构建时未知且可能因环境而异的值。这些值在部署应用程序时会提示输入
  • New idioms: 新习语:
    • DistributedApplicationBuilder.ExecutionContextIsPublisherMode
    • PublishAsRunAsAs API
  • API improvements API 改进,在容器资源方面,预览版4引入了对容器资源的新方法,简化了容器资源的添加过程
    • 更改容器属性, WithImageTag
    • 拆分绑定和卷安装, WithVolumeMountWithBindMount
  • Components 成分
    • 新功能:Azure AI 搜索文档
    • 场景:.NET Aspire 对 Azure SignalR 服务的支持
    • 更新:.NET Aspire 与 Application Insights
  • 具有 Azure 资源映射的容器(还有更多计划)
    • Redis -> Azure Redis
    • Postgres -> Azure Database for PostgresSQL
    • SQL Server -> Azure SQL Server
      SQL 服务器 -> Azure SQL 服务器
  • Deployment 部署
  • Emulators updates 模拟器更新
    • UseEmulator 更改为 RunAsEmulator

有关详细信息,请参阅 .NET Aspire 文档:.NET Aspire docs: Preview 4. 总体而言,.NET Aspire预览版4通过引入新的特性和改进现有功能,为开发云原生应用程序提供了更多灵活性和便利性。