.NET Core GUI

Материал из ALT Linux Wiki
Версия от 04:24, 10 января 2020; 212.74.192.2 (обсуждение) (→‎Eto.Forms)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Графический интерфейс для приложения на .NET Core может быть реализован следующими способами:

  • Создание приложения в модели ASP.NET Core и отображения клиенту интерфейса через произвольный браузер;
  • Использование Electron для отображения интерфейса. Это придаст приложению свойства десктопности (отдельность в панели задач, нахождение в трее при необходимости, взаимодействие с операционной системой);
  • Использование Avalonia (свободный межплатформенный GUI для .NET);
  • Использование проекта electron-edge, выполняющего .NET и Node.js в одном процессе в Electron. На данный момент проект поддерживает только старую версию .NET Core 1.0 и не рассматривается.
  • Использование связки с одной из существующих библиотек:

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