众所周知,微软于2023-11-14日
发布了.NET 8
的正式版。伴随着这个重要.NET
版本的发布,微软也发布了一个全新的.NET
云原生开发框架——.NET Aspire
。
.NET Aspire 官方解释
.NET Aspire
是一个有主见的云就绪堆栈,用于生成可观察的、生产就绪的分散式应用程序。.NET Aspire
通过处理特定云原生问题的 NuGet
包集合提供,在 .NET 8
中作为预览版提供。
.NET Aspire
有关详细信息,请参阅 [
https: //learn.microsoft.com/zh-cn/dotnet/aspire/])。
.NET Aspire 能力提供
.NET Aspire
提供了如下 3
个方面的能力,来帮助我们使用 .NET
开发分层、云就绪的可观测、本地与生产环境一致的分布式云原生应用程序:
- 微服务的编排能力:在开发和线上环境自动处理多个微服务之间的连接和依赖,也即内置了服务发现等基础能力。
- 基础服务的访问能力:通过提供一系列
Nuget
包,把对一些基础服务的访问进行统一封装(比如,缓存、数据库、消息队列等),方便微服务直接使用。 - 工具链的相应配合:在
VS
和VSCode
等工具中添加对以上编排能力的支持,并提供一系列开箱即用的模板,来方便开发人员进行开发、调试和部署云原生应用。
对于详细的介绍,建议阅读官方文档:
个人理解,这个 .NET Aspire
可以看作类似 Spring Cloud
的东西。之前大家不是希望有“全家桶”嘛,现在这个就是。另外,.NET Aspire
的服务编排能力应该也是借鉴了 Tye
这个项目的一些灵感(本来都是 .NET
团队的作品)。
.NET Aspire vs Dapr
那么 .NET Aspire
和 Dapr
的关系和区别是什么呢:
对比项 | .NET Aspire | Dapr/Distributed Application Runtime |
---|---|---|
语言支持 | 专注于 .NET 世界 |
适合多种语言融合 |
编排能力 | 内建到框架本身,会嵌入到应用内部(这点和之前的很多微服务/云原生框架类似) | 由边车(Sidecar )提供,依靠 Dapr Runtime 来处理 |
组件 | 只是对访问的封装,并没有对一类组件进行抽象 | Dapr 的 APIs (之前称之为构建块)是对一类组件进行高度抽象 |
基础设施 | 不关心基础设施的抽象和迁移,虽然理论也做得到 | 对基础设施也进行了一定的抽象 |
工具支持 | 微软官方的产品,VS 和 VSCode 对其有良好的工具支持 |
微软支持的开源项目,工具的支持明显不足,目前已经加入 CNCF |
|什么是 CNCF
?|
CNCF
,全称Cloud Native Computing Foundation
(云原生计算基金会),是Linux
基金会旗下的子基金会。CNCF
致力于为云原生软件构建可持续生态系统,涉及领域包括存储、计算、编排、调度、CI/CD、DevOps
、服务治理、服务网关等。
比如Kubernetes
便是CNCF
最具代表性的项目之一。
综上所述,如果你是一个纯粹的 .NET 团队
,并且准备开发一个 GreenField
(全新)的项目,可以尝试使用 .NET Aspire
!
.NET Aspire documentation (Preview)
,https://learn.microsoft.com/zh-cn/dotnet/aspire/
转载声明: