РЕДАКТИРОВАТЬ 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.
Спасибо Ив