Avalonia如何开发跨平台应用程序?

12

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

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

我们想知道:

  1. 跨平台性能。
  2. Avalonia所开发的应用程序稳定性
  3. 与其他跨平台解决方案(如JAVA、QT、WEB等)相比的优缺点。
2个回答

18
  1. 使用Skia进行渲染,对于一些工作负载比WPF更快,但由于框架的某些部分仍未优化,对于其他工作负载则较慢。在平台覆盖方面,它可以在基本上任何x86 Linux发行版(非glibc基础)以及Windows 7+和OSX 10.13+上开箱即用。您将获得跨平台GUI,甚至支持全局菜单。托盘菜单预计将在下一个版本或之后发布。当前缺少适当的东方语言环境支持,没有预计完成时间,可能会在2020年Q4。
  2. 0.8.x和0.9.x版本在各种系统上经过了广泛测试(甚至包括像Qubes OS这样的奇特Linux distos),得益于Wasabi Wallet项目的帮助(顺便说一句,这是使用Avalonia的成功案例之一)。

3.1. 优点:

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

3.2. 缺点:

  • 直到2021年某个时候才有移动平台支持。
  • 没有像基于Web的框架中那样许多可用的快速原型组件。
  • 将会有破坏性的变化。对于几乎所有基于Web的技术都是如此。尝试更新一年没有人碰过的复杂React应用程序的依赖项。

还有需要注意的是对我来说最大的缺点:没有绑定智能感知。没有XAML热重载。 - user1034912
3
JetBrains Rider提供完整的绑定智能感知功能,支持Avalonia。 - kekekeks

1
v11带来了新的改进,移动支持,性能支持,Web Assembly以及其他一些性能、动画、选择器等方面的东西;我至少已经用React Native开发了六年,但现在我转向了使用F#的AvaloniaUI,因为它非常强大。您可以访问用例页面,了解使用Avalonia创建的软件种类。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接