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

3.1.优点:

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

3.2. 缺点:

  • 直到 2021 年的某个地方才有移动平台支持
  • 没有那么多像基于Web的框架那样的即用型快速原型组件
  • 有重大更改。不过,几乎所有基于网络的技术也是如此。尝试更新一年来没有人接触过的复杂 React 应用程序的依赖项。

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

最新更新