当前位置 博文首页 > 张善友:.NET 6 亮点之工作负载,它是统一 .NET 的基础

    张善友:.NET 6 亮点之工作负载,它是统一 .NET 的基础

    作者:张善友 时间:2021-06-19 19:25

    随着.NET 6 Preview 5的发布,大家认真的看相关文章或者是动手做一个MAUI示例的时候就会碰到一个新概念工作负载(workload),相关规范参见 https://github.com/dotnet/designs/blob/main/accepted/2020/workloads/workloads.md 。

    这里借用一张来自德国的.NET6图片,出自https://entwickler.de/online/windowsdeveloper/microsoft-build-2020-dotnet-xamarin-winui-579936134.html。

    .NET 统一工作的关键是 SDK 工作负载的新方案,使 .NET团队能够在不增加 SDK 大小的情况下添加对新应用程序类型的支持。在 .NET 5 中,我们将添加对 iOS、Android和WebAssembly 项目的支持。在 .NET 5 之前,我们已经通过单体 SDK 交付了所有支持的工作负载。作为.NET SDK的支持工作量增长(和我们希望他们),这将不再是站不住脚提供一个“所有功能于一身的/一个尺寸适合所有人” SDK分布。大型单体 SDK 面临许多挑战,其中产品构建时间和分发规模最为重要。相反,所有新工作负载都将与SDK 分开构建和交付,并且可通过您最喜欢的安装工具(如 Visual Studio 安装程序、Linux 包管理器或.NET CLI)获得。随着时间的推移,我们打算让所有 .NET 工作负载都遵循这种模式,从而产生一个非常小且专注的 SDK。

    .NET 团队项目经理 Lander 撰写的博客文章中 说:“我们现在正处于 .NET 6 版本的下半部分,并且开始看到重要的功能汇集在一起??,一个很好的例子是 .NET SDK 工作负载,它是我们 .NET 统一愿景的基础,能够支持更多的应用程序类型。与其他功能一样,它正在结合在一起提供引人注目的端到端用户体验。”

    他在Github上的.NET 5设计文档中详细(https://github.com/dotnet/designs/blob/main/accepted/2020/workloads/workloads.md)解释了该功能最初应该是为了合并统一工作,但由于 COVID-19 大流行和其他问题而不得不推迟一年。dotnet SDK 工作负载方案将取代旧的单体 SDK 方法,单体SDK 因构建时间长和分发规模大而造成负担。反过来说,所有新的工作负载都将与 SDK 分开构建和交付,并且可以通过您最喜欢的安装工具(如 Visual Studio 安装程序、Linux 包管理器或 .NET CLI)获取,”兰德说。“随着时间的推移,我们打算让所有 .NET 工作负载都遵循这种模式,从而产生一个非常小且专注的 SDK。随着时间的推移,我们打算让所有 .NET 工作负载都遵循这种模式,从而产生一个非常小且专注的 SDK。

    工作负载基本上就像 .NET SDK 的包管理器,上个月的.NET 6 Preview 4引入了通过命令行界面 (CLI) 安装可选 SDK 工作负载的功能。Preview 4 支持 .NET MAUI 和 Blazor AoT 工作负载,可以事后安装在 .NET SDK 之上,用于各种场景。

    在 .NET 6 Preview 5 中,工作负载功能新增了 listupdate

    • dotnet workload list 会告诉您安装了哪些工作负载。
    • dotnet workload update 将所有已安装的工作负载更新到最新的可用版本
    bk