Microsoft 和 Canonical 已将 .NET 6(跨平台 .NET 的最新版本和长期支持 (LTS) 版本)与 Ubuntu 22.04 (Jammy) 集成,这也是 LTS 版本。已经可以在 Ubuntu 上运行 .NET 6,但程序经理 Richard Lander 的帖子中有两个关键变化。

. NET 在 Chiselled Ubuntu 容器中

首先是几个 .NET 包现在由 Canonical 构建,由 Canonical 支持,并且可以通过简单的 apt install 命令安装。选项包括完整的 .NET SDK,或者只是 ASP.NET Core 运行时,或者只是 .NET 运行时。这现在是微软在 Ubuntu 上对 .NET 的推荐,尽管开发人员希望使用最新版本,但应该坚持使用微软软件包。

第二,从开发人员的角度来看,新闻中更有趣的部分是在 Ubuntu 容器上引入优化的 .NET,称为 Chiseled Ubuntu Containers。这个想法是,如果只需要一个运行 ASP.NET Core 应用程序的最小容器,这将完全符合目的,并且比通用 Ubuntu 容器更小更安全

根据 Lander 的说法,“这些镜像比我们迄今为止提供的 Ubuntu 镜像小 100MB,并且不包括 root 用户。”

默认情况下,这些映像没有 shell,也没有 root 用户。“这意味着不可能行使需要 root 的能力和操作,”兰德说。

所有这些都是值得欢迎的,但微软和 Canonical 在 Ubuntu 上为 .NET 所做的工作存在一个明显的差距,那就是缺乏任何适用于 Linux 的跨平台桌面应用程序的官方解决方案。最近推出的 .NET MAUI(多平台应用程序 UI)适用于 Windows、Mac、iOS 和 Android,但不适用于 Linux。

“仍在等待 MAUI/Xamarin.Forms 将与 Linux 一起使用,”一位开发人员在回应Lander 的帖子时说。“明白了。我会确保毛伊人看到这一点,”兰德说,这是一个外交答复,但没有任何进展的迹象。其他人也提出了类似的要求。

iFun Screen Recorder录屏软件,高清视频录制无水印,完全免费无限制!

有关系吗?只有一小部分台式机运行 Linux,但其中有很多开发人员,这使其具有一定的战略意义。在桌面上占主导地位的 Windows 与主要基于 Linux 的 Web 开发之间存在不匹配。微软在 Linux 的 Windows 子系统方面做了出色的工作,但由于这个原因,Linux 作为开发人员桌面越来越有吸引力。另一个有趣的平台是谷歌的 Chrome OS,它可以运行 Linux 桌面应用程序。

部分问题在于,微软针对桌面应用程序(即使是在 Windows 上)的策略一直混乱且不一致,并在 UWP(通用 Windows 平台)方面付出了巨大的努力,但从未获得过动力。

现在有了 MAUI,但在回答有关 Linux 支持的问题时,微软项目经理 Immo Landwerth去年表示:“当我们投资 Linux 时,我们倾向于在服务器上进行,因为这似乎是大多数 Linux 势头所在. 你可能会说“不,你这样做是因为 Azure”,但反过来说:Linux 与 Azure 非常相关,因为 Linux 与服务器和云非常相关。”

这个问题当然有非官方的解决方案。一个是Avalonia ת,它是 Windows Presentation Foundation 的一个松散版本,可以跨平台工作,并设置为通过 WASM 获得对 iOS、Android 和浏览器内的支持。也有添加 Linux 支持的 MAUI 的分支。

也许最有趣的是 Blazor 的前景,这是一种通过 WebAssembly 在浏览器中以及在 MAUI 中运行的混合技术。已经可以使用 Blazor 和 Electron 创建桌面应用程序,其中 Electron 是 Microsoft 的 Visual Studio Code 也使用的工具包。

Blazor 的发明者、微软的史蒂夫·桑德森 (Steve Sanderson)在 2019 年问道:“你会乐意将 Blazor 与 Electron 一起使用,还是觉得有必要拥有一些更裸机的东西?” 或许,如果微软能够自己投资这个想法,那么有或没有 MAUI 的 Blazor 都可能是解决方案。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐