【问题标题】:How is Avalonia to develop crossplatform application?Avalonia 如何开发跨平台应用程序?
【发布时间】:2020-01-07 08:58:22
【问题描述】:

我是一名 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 等其他跨平台解决方案。

【问题讨论】:

    标签: .net cross-platform avalonia


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

    3.1。专业人士:

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

    3.2。缺点:

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

    【讨论】:

    • 还要注意对我来说最大的缺点:没有绑定智能感知。没有 xaml 热重载。
    • JetBrains Rider 为 Avalonia 提供了完全绑定的智能感知支持
    猜你喜欢
    • 1970-01-01
    • 2020-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多