Запущенные WPF-приложения занимают просто огромное место в оперативной памяти. Поскольку мне не нужна вся красота WPF, а лишь функционал, я попробовал портировать приложение на Windows Forms, но вскоре понял, что нужно будет переделывать слишком много из-за отсутствия нормальной реализации привязки данных, так что игра не стоит свеч. Вспомнив, про то, что WPF в принципе достаточно старая «технология» и на смену ей пришли другие, я решил посмотреть на Avalonia. Плюсом к её выбору послужил ещё тот факт, что для разметки там используется XAML, так что нужно будет переделывать меньше кода.
Где-то видел таблицу сравнения, в которой минусом Авалония было отсутствие то ли привязки, то ли шаблонов данных как в WPF, в общем, придётся проверить на практике…
Открыв Visual Studio, и нажав кнопку создания нового проекта, я не обнаружил среди них шаблонов Avalonia. Значит сначала будем их устанавливать!
1. Клавишей
▶ ▶
2. В консоли выполняем команду:
dotnet new install Avalonia.Templates
Welcome to .NET 8.0!
---------------------
SDK Version: 8.0.202
----------------
Installed an ASP.NET Core HTTPS development certificate.
To trust the certificate, run 'dotnet dev-certs https --trust'
Learn about HTTPS: https://aka.ms/dotnet-https
----------------
Write your first app: https://aka.ms/dotnet-hello-world
Find out what's new: https://aka.ms/dotnet-whats-new
Explore documentation: https://aka.ms/dotnet-docs
Report issues and find source on GitHub: https://github.com/dotnet/core
Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli
--------------------------------------------------------------------------------------
The following template packages will be installed:
Avalonia.Templates
Success: Avalonia.Templates::11.0.10.1 installed the following templates:
Template Name Short Name Language Tags
----------------------------------- ------------------------- -------- -----------------------------------------
Avalonia .NET App avalonia.app [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS
Avalonia .NET MVVM App avalonia.mvvm [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS
Avalonia Cross Platform Application avalonia.xplat [C#],F# Desktop/Xaml/Avalonia/Browser/Mobile
Avalonia Resource Dictionary avalonia.resource Desktop/Xaml/Avalonia/Windows/Linux/macOS
Avalonia Styles avalonia.styles Desktop/Xaml/Avalonia/Windows/Linux/macOS
Avalonia TemplatedControl avalonia.templatedcontrol [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS
Avalonia UserControl avalonia.usercontrol [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS
Avalonia Window avalonia.window [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS
install
на --instal
3. Если нужно будет для проверки вывести список доступных шаблонов Авалония, то делается это такой командой:
dotnet new list avalonia
These templates matched your input: 'avalonia'
Template Name Short Name Language Tags
----------------------------------- ------------------------- -------- -----------------------------------------
Avalonia .NET App avalonia.app [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS
Avalonia .NET MVVM App avalonia.mvvm [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS
Avalonia Cross Platform Application avalonia.xplat [C#],F# Desktop/Xaml/Avalonia/Browser/Mobile
Avalonia Resource Dictionary avalonia.resource Desktop/Xaml/Avalonia/Windows/Linux/macOS
Avalonia Styles avalonia.styles Desktop/Xaml/Avalonia/Windows/Linux/macOS
Avalonia TemplatedControl avalonia.templatedcontrol [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS
Avalonia UserControl avalonia.usercontrol [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS
Avalonia Window avalonia.window [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS