Avalonia如何开发跨平台应用?

How is Avalonia to develop crossplatform application?

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

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

我们想知道:

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

3.1。专业版:

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

3.2。缺点:

  • 直到 2021 年某个时间才支持移动平台
  • 没有像基于 Web 的框架那样的许多现成的快速原型制作组件
  • 进行重大更改。不过,几乎所有基于网络的技术都是如此。尝试更新一个复杂的 React 应用程序的依赖项,这个应用程序一年都没有人接触过。