Avalonia

By on

在众多跨平台客户端开发方案中,选择一款适合自己团队或项目需求的技术栈至关重要。曾经在实际项目中,分别尝试过 QT、Electron 和 Avalonia。由于多年的 WPF 开发经验,对比来说对于 Avalonia 的跨平台技术方案尤为青睐,在使用 JetBrains Rider 在 Ubuntu 环境中进行开发时,体验十分流畅。

1. 学习成本低

对于有 WPF/UWP 开发经验的开发者来说,Avalonia 的入门成本非常低。 它的开发方式和 WPF 基本一致,包括:

  • XAML 风格的 UI 定义:支持强大的数据绑定和样式系统,熟悉的开发体验。
  • MVVM 架构的天然支持:数据绑定和命令模式几乎和 WPF 一样,减少了学习新的框架和模式的时间。

2. 真正的跨平台支持

Avalonia 的核心理念是“一次编写,随处运行”。结合.netcore,支持一套代码多平台开发与发布:

  • Windows:覆盖 Windows 7 及更高版本。
  • Linux:支持多种发行版,特别是在 Ubuntu 中体验优秀。
  • macOS:无缝运行,支持最新的 macOS 版本。

3. 性能优秀

相较于 Electron 这种基于 Web 技术的跨平台框架,Avalonia 使用的是 原生渲染技术,性能上有显著优势(测试在树莓派上也可以流畅运行):

  • 内存占用小:不需要加载 Chromium 和 Node.js,启动速度快。
  • 运行效率高:得益于 Direct2D 和 Skia 渲染,界面流畅,复杂 UI 也能快速渲染。

4. 开发工具友好

JetBrains Rider 与 Avalonia 的完美结合

我在 Ubuntu 上使用 JetBrains Rider 开发 Avalonia 应用时,体验非常流畅,主要体现在以下几点:

  1. 内置支持:通过插件,Rider 对 Avalonia 项目提供了非常良好的支持,包括 XAML 代码补全和预览功能。
  2. 调试体验佳:无论是运行本地代码还是跨平台测试,都可以轻松完成。

5. 强大的社区与文档

Avalonia 的社区日益壮大,提供了丰富的资源:

  • 官方文档覆盖了大部分功能,配合示例代码,易于理解。
  • 社区提供的控件库(如 DataGrid、Charts 等),满足常见的业务需求。
  • GitHub 上活跃的开发者生态,方便快速找到解决方案。

下面是一个个人项目的截图