AvaloniaUI: Create Multi-Platform Apps with .NET

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • Avalonia

    Develop Desktop, Embedded, Mobile and WebAssembly apps with C# and XAML. The most popular .NET UI client technology

  • Production user here. There's no money gotchas. They're above reproach. In fact, I've received considerable free support from their devs on GitHub Issues [1].

    The Avalonia business model is based on selling XPF, which runs WPF (Windows-only) apps on other platforms. That's very interesting to big corps with existing codebases.

    See my comment [2]

    [1] https://github.com/AvaloniaUI/Avalonia/issues

    [2] https://news.ycombinator.com/item?id=39246988#39249128

  • Mapsui

    Mapsui is a .NET Map component for: MAUI, WPF, Avalonia, Uno, Blazor, WinUI, Xamarin and Eto

  • But I think some of this stuff is already handled in Avalonia ecosystem like https://github.com/Mapsui/Mapsui, https://github.com/beto-rodriguez/LiveCharts2 and few others...

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • LiveCharts2

    Simple, flexible, interactive & powerful charts, maps and gauges for .Net, LiveCharts2 can now practically run everywhere Maui, Uno Platform, Blazor-wasm, WPF, WinForms, Xamarin, Avalonia, WinUI, UWP.

  • But I think some of this stuff is already handled in Avalonia ecosystem like https://github.com/Mapsui/Mapsui, https://github.com/beto-rodriguez/LiveCharts2 and few others...

  • - https://gitlab.com/sciter-engine/sciter-js-sdk/-/tree/main/b... - Skia backend.

    You can load in usciter this document:

    https://gitlab.com/sciter-engine/sciter-js-sdk/-/blob/main/s...

    It shows pretty large colorized texts so you can estimate how Direct2D and Skia handle GPU accelerated text rendering. For these two binaries the difference is only in graphics used - Direct2D and Skia.

  • Uno Platform

    Build Mobile, Desktop and WebAssembly apps with C# and XAML. Today. Open source and professionally supported.

  • And Uno Platform (https://platform.uno/) is akin to React Native in terms of native controls usage.

  • git-credential-manager

    Secure, cross-platform Git credential storage with authentication to GitHub, Azure Repos, and other popular Git hosting services.

  • FitEdit

    Training data manager for all devices

  • - You still have the usual deployment challenges for each platform: desktop installers; macOS requires notarization; iOS requires App Store review. For all of that, Avalonia has excellent docs [3] and there are supporting libraries [4].

    - [1] I created FitEdit. https://github.com/endurabyte/FitEdit/

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • velopack

    Installer and automatic update framework for cross-platform desktop applications

  • webrender

    A GPU-based renderer for the web

  • This source code:

    https://github.com/servo/webrender/blob/master/wr_glyph_rast...

    suggests to me that the glyph rasterization (which is the CPU-limiting factor for text rendering) in WebRender (which is the new FF 93+ GPU-accelerated rendering engine) is implemented in Rust and to be run on CPU.

  • Avalonia.FuncUI

    Develop cross-plattform GUI Applications using F# and Avalonia!

  • Azul

    Desktop GUI Framework

  • Not sure what you mean but WebRender powers Firefox which definitely works on the desktop.

    You can use it to build desktop UI frameworks - see for example https://azul.rs/

  • awesome-avalonia

    A collection of interesting libraries and tools for Avalonia project.

  • WPF and Xamarin dev here who wrote a new (not ported) codebase on Avalonia.

    - Avalonia has a guide just for people like you and me [1].

    - Avalonia's flavor of XAML has small divergences from WPF that will have you hitting their docs often. There are some nice quality-of-life improvements, for example you can bind a Button click handler directly to a method without ICommand. The major concepts are the same e.g. data binding, dependency properties.

    - Coming from WPF, it's possible you've used MVVM and dependency injection. You'd be going against a strong cultural grain to not use them in Avalonia. But I would be surprised if your WinForms app is architected remotely similarly, so it may be a design challenge extracting coherent ViewModels and properties from the ball of mud that many WinForms apps become.

    - For macOS, read up on notarization [2] and, if you're publishing to the Mac App Store, the review process.

    - I recommend starting with example apps (look in the Showcase) or with the Avalonia template solution which just runs out of the box.

    - The Avalonia team iterates quickly. Expect to upgrade NuGets frequently, and don't get too far behind. There was recently a big jump from version 10 to 11. Good for you for starting after that.

    - Not Avalonia specifically but if you're not used to .NET Core check out #nullable enable. Can't live without it now, but was confusing at first.

    - Be sure to check out all of the official and community libraries [3]. I bet my design big on `ReactiveUI` and it's gone well.

    [1] https://docs.avaloniaui.net/docs/get-started/wpf/

    [2] https://docs.avaloniaui.net/docs/deployment/macOS

    [3] https://github.com/AvaloniaCommunity/awesome-avalonia

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts