Avalonia 是如何开发跨平台应用的?

CHR*_*SQQ 4 .net cross-platform avalonia

我是 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 等。

kek*_*eks 14

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

3.1. 亲:

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

3.2. 缺点:

  • 直到 2021 年某个时候才支持移动平台
  • 没有那么多现成的快速原型组件,比如在基于 Web 的框架中
  • 这里是重大更改。不过,几乎所有基于网络的技术也是如此。尝试更新一个复杂的 React 应用程序的依赖项,这个应用程序已经一年没有人碰过了。

  • JetBrains Rider 为 Avalonia 提供完整的绑定智能感知支持 (3认同)