微软发布全新云原生开发框架——.NET Aspire

发表时间: 2023-11-20 08:34

众所周知,微软于2023-11-14日发布了.NET 8的正式版。伴随着这个重要.NET版本的发布,微软也发布了一个全新的.NET云原生开发框架——.NET Aspire。

.NET Aspire提供了如下3个方面的能力,来帮助我们使用.NET开发分层、云就绪的可观测、本地与生产环境一致的分布式云原生应用程序:

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

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

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


对于详细的介绍,建议阅读官方文档:
https://learn.microsoft.com/zh-cn/dotnet/aspire/get-started/aspire-overview

个人理解,这个.NET Aspire可以看作类似Spring Cloud的东西。之前大家不是希望有“全家桶”嘛,现在这个就是。另外,.NET Aspire的服务编排能力应该也是借鉴了Tye这个项目的一些灵感(本来都是.NET团队的作品)。

那么.NET Aspire和Dapr的关系和区别是什么呢:

  • .NET Aspire是专注于.NET世界;Dapr更适合多种语言融合

  • .NET Aspire的编排能力是内建到框架本身,会嵌入到应用内部(这点和之前的很多微服务/云原生框架类似);Dapr的编排能力由边车提供,依靠Dapr Runtime来处理

  • .NET Aspire的组件只是对访问的封装,并没有对一类组件进行抽象;Dapr的APIs(之前称之为构建块)是对一类组件进行高度抽象

  • .NET Aspire不关心基础设施的抽象和迁移,虽然理论也做得到;Dapr对基础设施也进行了一定的抽象

  • .NET Aspire是微软官方的产品,VS和VSCode对其有良好的工具支持;Dapr是微软支持开源项目,工具的支持明显不足

  • .NET Aspire 同时也支持Dapr,整合Dapr的生态。


综上所述,如果你是一个纯粹的.NET团队,并且准备开发一个GreenField(全新)的项目,可以尝试使用.NET Aspire!