5

我是一名 WPF 开发人员。我们的团队正在寻找一个好的跨平台解决方案来替代使用 WPF 开发的旧桌面产品。我们最近发现 Avalonia 可能是很好的方法之一,但似乎没有很多演示案例或深入的见解。只有一个好处是https://www.reddit.com/r/csharp/comments/dgfxbl/my_experience_developing_crossplatform_app/

请分享您的经验,非常感谢。

我们想知道:

  1. 跨平台性能。
  2. Avalonia 开发的应用稳定性
  3. PRO 和 CON 到其他跨平台解决方案,如 JAVA、QT、WEB 等。
4

1 回答 1

15
  1. 由于使用 Skia 进行渲染,在多个工作负载上的工作速度比 WPF 快,在其他工作负载上的工作速度较慢,因为框架的某些部分仍未优化。就平台覆盖而言,它基本上可以在任何 x86 Linux 发行版(非基于 glibc 和 ARM 将需要自定义 SkiaSharp 构建)、Windows 7+ 和 OSX 10.13+ 上开箱即用。您将获得跨平台 GUI,甚至现在支持全局菜单。托盘菜单预计在下一版本或之后的版本中。目前缺少的是适当的东部地区支持,没有 ETA,可能是 2020 年第四季度。
  2. 由于Wasabi Wallet项目(这是使用 Avalonia 的成功案例之一,顺便说一句)的帮助,0.8.x 和 0.9.x 版本在各种系统(甚至是像 Qubes OS 这样的异国 Linux distos)上进行了大量测试.

3.1。亲:

  • 它是 C# 和完整的 XAML(即没有控件包装,您可以完全控制模板),因此您拥有一种出色的编程语言,具有自动内存管理和编译时类型检查以及具有 MVVM 支持的可靠可定制 UI 标记。
  • 如果您从 WPF 移植并使用“手动”MVVM、ReactiveUI、Prism 或 MEF,则可以重用整个视图模型层。
  • 您可以通过 P/Invoke 完全访问平台 API(在基于 Electron 的应用程序中您不会轻易获得这些)

3.2. 缺点:

  • 直到 2021 年的某个地方才支持移动平台
  • 没有那么多现成的快速原型组件,例如基于 Web 的框架
  • 会有重大变化。不过,几乎所有基于 Web 的技术也是如此。尝试更新一个一年来没人接触过的复杂 React 应用程序的依赖项。
于 2020-01-12T13:00:16.787 回答