除了已经有很多解决方案之外,我最近问了自己这个问题。
对于客户,我需要替换整个工厂的旧 VB6 应用程序。
网络不是一个选项,因为我需要与机器上的硬件进行通信(尽管现在我们正在研究它,这似乎不再是问题……)。
无论如何,一个明显的竞争者是 窗体,但正如你所说,那正在消亡。
微软将 WinForms 移植到了 .NET,所以它实际上还没有消亡,但我希望新软件是现代的。
那么那么 WPF(Windows 演示基础) 可能是逻辑上的后继者,因为它也被移植到.NET。
然而,WPF 是 XAML,正如您所说,这就像拔牙一样。
因此,我们会在一个最近才移植的旧框架中拔牙,以让一些脾气暴躁的老开发人员高兴(我猜)。
我见过 UWP(通用Windows平台) 这里提到过,但微软已经正式放弃了对它的支持,所以这甚至不再是一个选择!
然而,UWP 在幕后使用了 WinUI 2,并且 用户界面3 是仍受支持的官方继任者。
它是 XAML,但至少它是现代的!
看看 Microsoft 堆栈之外,我们有更多基于 Web 的解决方案,例如 扑 和 欧诺平台。
有两个对我来说很突出,它们分别是 Flutter 和 Uno 的真正替代品, 电子 和 阿瓦洛尼亚用户界面。
Visual Studio Code 是使用 Electron 构建的,因此您可以了解它的功能和外观。
它使用基于 Web 的技术,例如 HTML、CSS 和 JavaScript,并以某种方式将它们编译(?)为跨平台桌面应用程序。
Avalonia UI 使用 XAML(事实上,它被认为是 WPF 的精神继承者),但也生成跨平台桌面应用程序。
如果您选择 Avalonia UI 或 Uno,Avalonia 显然是赢家,在 GitHub 上拥有更大的社区。
另外,Avalonia 团队拥有来自 WPF 团队的(前)开发人员!
我对这些技术的问题是,虽然它们看起来很有效并且看起来很棒,但它们不是本机应用程序,这意味着它们自己进行绘图,而不是将其留给操作系统。
结果是,它们看起来和感觉起来根本就不是桌面/Windows/Apple 应用程序。
最终,我去了 .NET 已修复。
.NET MAUI 是 Xamarin 的继承者,Xamarin 当然是一个移动框架。
然而,.NET MAUI 可以创建在移动和桌面上运行的跨平台应用程序!
至少在理论上是这样,因为在实践中你将面临很多挑战。
.NET MAUI 与 Xamarin 一样,也使用 XAML。
那么我为什么选择 .NET MAUI?
我们目前仅针对 Windows,对于 Windows,它编译为 WinUI 3,这是本机 Windows 应用程序。
WinUI 3 有更多选项,因为它不必也适用于移动设备,但 .NET MAUI 是最新最好的,我已经预见到将来也会有一些移动工作。
也就是说,.NET MAUI 也有点赌博,因为微软似乎没有很好地更新它,并且对于 .NET 7 中的一些严重错误只是说“你必须等到 .NET 8,因为我们不会为 .NET 7 修补 .NET MAUI。”
因此,许多 Xamarin 开发人员尚未接受 .NET MAUI,而是正在寻找替代方案。
到目前为止,它对我们来说看起来相当不错,我只是希望微软和社区能够更多地接受它。
最后但并非最不重要的一点是,您可以使用 .NET MAUI 与 Blazor,它允许您在桌面上的 .NET MAUI shell 应用程序中运行 Web 应用程序(HTML、CSS 和 JavaScript 与 .NET 混合)。
这是一个认真的考虑,但坦率地说,我也不想被网络技术所困扰,而且它也不会编译为本机 Windows 应用程序。
今年早些时候我已经弄清楚了这一切,所以请将此视为我的研究总结。
[Add]
要回答如何处理 XAML 的问题,它与 HTML 没有什么不同,不是吗?
我猜只是吸吮它。
[/Add]