2023.4.23
会社で 『Linux GUI アプリ』 のワードを聞いたので Avalonia を試してみる。(Linux/Mac の確認環境がないけど…)
うっすら知ってるけど改めてまとめます。
- Windows, Linux, macOS をサポートする、柔軟なスタイリングシステムを提供する .NET のクロスプラットフォームUIフレームワーク
- MITライセンス
- WPFのコードネームが「Avalon」で、「Avalonia」は「現代のC#の機能を使ってWPFを再実装しようとしたらどうなるだろう」というところから始まったらしい。
- ほぼ WPF だけど直接移植されておらず、全く同じではない。
Avalonia XPF
商用フレームワークとして新たに用意しようとしてて、そちらはガチで WPF 互換っぽい。2024年には WebAssembly, iOS, Android もサポートする予定とか。 有償なので縁がなさそう。
- VS拡張機能の
Avalonia for Visual Studio 2022
をインストール する - 新しいプロジェクトで
Avalonia .NET Core MVVM App (AvaloniaUI)
を選択する。 - MVVM Toolkit として、
ReactiveUI
とCommunityToolkit
の2つが選択できる。CommunityToolkit
派 - Avalonia Version は
10
か11-prev4
が選べて11-prev4
にしてみた。 何も知らないので新しい方を試したい。
比較のため Avalonia と WPF の View をそれぞれ用意し、ViewMode と Model は別project に分けて共通で使用してみた。
- SinglePublish の Windows.exeファイルサイズが Avalonia: 86MByte, WPF: 155MByte で、Avalonia の方が 45% くらい縮んでいてビビった。
- Avalonia だと Windows で絵文字がカラー表示される。
- 11.0 は Preview なのでバージョンアップでビルドエラーなることが多い → Breaking Changes
AvaloniaUI/Avalonia: A cross-platform UI framework for .NET - Github