Кросс-платформенный интерфейс UI, который отлично сочетается с бэкэндом С#/Mono

РЕДАКТИРОВАТЬ 1 2017/01/29 - В настоящее время наш выбор перешел к электрону в сочетании с EdgeJS и всей мощью NodeJS и пакетами/ресурсами на npm. Нет лучшей альтернативы для нас, чтобы создавать кроссплатформенные приложения для все три слоя (macOS, linux и windows). Спасибо всем за их вклад.


ОРИГИНАЛЬНЫЙ Вопрос:
TL; DR - внутренний код, написанный на С# (.Net/Mono). Написание настольного приложения, которому необходим низкоуровневый доступ к системе (кроссплатформенный OSX, Linux, Windows 7–10). В поисках универсального кроссплатформенного инструмента/инфраструктуры пользовательского интерфейса, который может взаимодействовать со статусом внутреннего кода, либо путем опроса/обмена сообщениями, либо путем вызова кода внутреннего кода. Этот "бэкэнд" включает в себя, например, сканирование и распечатку информации о процессе, создание снимков экрана и т.д. Отправка сетевой информации (какие веб-сайты были посещены и т.д.). По сути, это монитор экзамена для студентов, когда они проводят онлайн-экзамен в классы. **

Варианты, которые мы изучаем:

  • Электрон (ранее известный как оболочка атома) выглядит неплохо, но мы понятия не имеем, может ли он взаимодействовать/вызывать/запускать приложение С#/Mono. Разместите это также на их официальном форуме для обратной связи, и является ли это хорошим вариантом использования для электрона. В идеальном мире мы хотели бы использовать электрон полностью, но, к сожалению, я думаю, что нам нужна логика, специфичная для платформы (которую мы сейчас обрабатываем в С# w/.net & mono).
  • Eto.Forms - это то, с чем мы сейчас работаем, но оно ограничивает возможности UI - так как иногда оно по-разному (размеры окон) отображается на разных платформах. Он также имеет другой внешний вид, связанный с платформой пользователя - что является хорошей функцией, но затрудняет создание выделенных элементов управления для визуализации состояния, что было бы проще в html/css.

  • Другой путь - это сочетание Eto.Forms (или чего-то еще) для начальной загрузки собственного пользовательского интерфейса, в котором размещается браузер в этом окне, кросс-платформенный и не зависящий от локально установленных браузеров, таких как Awesomium. Для этого все равно потребуется Eto.Forms или любой другой загрузчик, чтобы запустить приложение, но вся остальная навигация будет проходить через визуализированный Awesomium html.

Спасибо Ив

Ответ 1

AvaloniaUI (кроссплатформенная платформа XAML для .NET Framework,.NET Core и Mono) будет идеальным выбором, если вы знакомы с WPF.

Существует множество других сред для разработки кроссплатформенных приложений для настольных компьютеров. Вы можете воспользоваться моим репозиторием github электронными альтернативами, чтобы узнать больше о кроссплатформенных возможностях разработки десктопов.

Ответ 2

Xamarin Forms - это мой выбор. https://visualstudio.microsoft.com/xamarin/ Он сделан для мобильных устройств, но был расширен и для настольных компьютеров.