.NET Core GUI
Графический интерфейс для приложения на .NET Core может быть реализован следующими способами:
- Создание приложения в модели ASP.NET Core и отображения клиенту интерфейса через произвольный браузер;
- Использование Electron для отображения интерфейса. Это придаст приложению свойства десктопности (отдельность в панели задач, нахождение в трее при необходимости, взаимодействие с операционной системой);
- Использование Avalonia (свободный межплатформенный GUI для .NET);
- Использование проекта electron-edge, выполняющего .NET и Node.js в одном процессе в Electron. На данный момент проект поддерживает только старую версию .NET Core 1.0 и не рассматривается.
- Использование связки с одной из существующих библиотек:
- Qt
- libui, реализующей GUI нативными средствами на каждой платформе (похожа на упрощённый wxWidgets):
Avalonia
Avalonia – свободный кроссплатформенный GUI-фреймворк для .NET, способный работать под .NET Core, который доступен под Linux. Avalonia во многом похож на WPF, использует XAML и подразумевает использование MVVM-архитектуры приложений, но при этом не привязан к Windows-платформе и Microsoft. Avalonia работает не только на десктопе (Linux, Windows, MacOS), но и на мобильных устройствах (Android, iOS). Фреймворк имеет свой набор GUI-элементов, которые одинаково выглядят на всех системах.
Фреймворк пока что находится в alpha-версии, но он активно развивается и выглядит довольно перспективным решением для создания кроссплатформенных графических приложений. Его важным преимуществом является сходство с WPF, вплоть до использования тех же XAML-файл с описанием интерфейса, что упрощает портирование существующих WPF-приложений.
Ссылки
SpaceVIL
https://spvessel.com/ SpaceVIL основан на OpenGL и кроссплатформенной библиотекой GLFW. Особенности - высокая производительность и идентичность поддержки как dotnet, так и jvm.
Eto.Forms
https://github.com/picoe/Eto A cross platform desktop and mobile user interface framework Похож по на gtk но с уклоном на простоту WinForms. Пытается определить платформу и в зависимости от этого(подобно авалония) выбирает графическую библиотеку (gtk2, gtk, WinForms и т.д.).
GtkSharp
GtkSharp is a C# wrapper for Gtk and its related components. The component list includes the following libraries: glib, gio, cairo, pango, atk, gdk.
Target framework Target Gtk Version Extra notes
GtkSharp .NET Standard 2.0 Gtk 3.22 Does not need glue libraries. https://github.com/GtkSharp/GtkSharp