Avalonia UI === Video : https://www.youtube.com/watch?v=THKjD-ZwGPk - 10 年了 - 支援的作業系統 ![img](https://res.cloudinary.com/practicaldev/image/fetch/s--Ab_uTLEv--/c_imagga_scale,f_auto,fl_progressive,h_420,q_auto,w_1000/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wy6p8jsp5e98cj9cv5nq.png) - Windows, MacOS, Linux, iOS, Android, WASM - 預計要支援: Vision OS, Tizen, WebOS - ResperriPi 也可以跑 - Open Source: https://github.com/AvaloniaUI/Avalonia - .NET Foundation 的一部分 - Jetbrains 的 Rider 是 Avalonia 做的 - 有些人把 Qt 轉換到 Rider (Embedded device dev) ## 架構 ![img](https://res.cloudinary.com/practicaldev/image/fetch/s--wcYCAHfC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wr5d6xbygejsi4f6pw0i.png) ![img](https://res.cloudinary.com/practicaldev/image/fetch/s--J1YIeJjX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x5q7x1d628kcb1d4g09g.png) - Rendering - UI 的東西都是自己 render 的 => 不是用原生的控制項,跟 Uno 一樣但跟 MAUI 不一樣 - 這樣才能做到 Pixel perfect - Rendering engine - Direct2D - Skia - .NET MAUI 則是 Wrapper 一層包裝原生控制項 - 跟 .NET MAUI 的 runtime 的稍為不同,在 Mac OS 上不一樣 - Avalonia: .NET Core CLR - .NET MAUI: mono - 執行速度快 (影片有 demo) ## Total control - UI 可以控制得很多,已經有包含 Theme system ## Dev Experience - 用 XAML (不過不完全相容於 WPF, UWP 網站有介紹) - 副檔名是 axaml (內容就是 XAML 啦) - 跟 Rider 整合得很好 - AvaloniaRider 的外掛可以 prview xaml - 也有 VS 的 extension - 有內建許多的 project template - Avalonia .NET MVVM app - for desktop - Avalonia .NET app - Avalonia Corss Platform Application - 包含 brower, mobile platofmr ## MAUI Hybrid - 可以跟互相使用 (MAUI app 使用 Avalonia control, Avalonia App 使用 MAUI control) ## Avalonia XPF ![img](http://avaloniaui.net/img/how-it-works/XPF.png) - Cross-Platform WPF - Suports Windows, macOS & Linux - iOS, Android, and Brower coming 2024 - 是需要付費使用的 - Hybrid XPF - Use WPF controls in Avalonia Apps ### Reference - [Avalonia platform support - why it's simple](https://dev.to/avalonia/avalonia-platform-support-why-its-simple-cjd) - [High level architecture overview](https://github.com/AvaloniaUI/Avalonia/wiki/High-level-architecture-overview) - [Avalonia UI and MAUI - Something for everyone](https://avaloniaui.net/Blog/avalonia-ui-and-maui-something-for-everyone,ce77d8d4-8dad-45ce-ae5a-566f3786571a) - [Avalonia XPF](https://avaloniaui.net/XPF)