Webkit как графический интерфейс в .Net / Mono

12

Я хочу создать кроссплатформенное приложение, у которого также будет веб-сайт, на котором настольные приложения (Windows, iOS, Linux) будут общаться с сервером и синхронизировать данные пользователей.

Пока что я вижу следующие варианты:

  • Написать собственный GUI для каждой из 3 ОС, чтобы у меня было 3 кодовых базы GUI (и одна бэкэнд-система)
  • Используйте что-то вроде GTK, чтобы я мог использовать одну систему с поддержкой всех упомянутых платформ.

Но третье, о котором я не смог найти много информации (возможно, я не ищу правильные термины, так как я все еще новичок в C # и .Net), - это иметь встроенное окно со встроенным экземпляром WebKit. , что позволило бы мне использовать ту же систему графического интерфейса, которую я использовал бы для веб-сайта. В результате клиентское приложение и веб-сайт будут выглядеть как можно ближе друг к другу, чтобы пользователи были знакомы с интерфейсом.

Является ли этот последний вариант с WebKit правдоподобным? Я уже хорошо знаю JavaScript / HTML, и если бы я мог использовать эти знания для создания интерфейса, это было бы здорово. Также было бы отличным способом разрешить пользователям настраивать интерфейс с помощью плагинов, и они могли бы синхронизировать любые предпочтения пользовательского интерфейса от локального до веб-интерфейса.

skift
источник
Я смотрю в Sencha ExtJS для такой работы, но я не уверен, что это лучший метод для использования.
jfrankcarr

Ответы:

10

Не могу понять, почему нет, но вы можете просто запустить Chrome в режиме «без окон» или IE в режиме «hta» (мы написали настольное приложение с использованием веб-технологий, развернув его как hta на Windows десять лет назад).

Сегодня я бы сделал что-то без IE / IIS и использовал бы веб-сокеты для большей интерактивности.

Есть компоненты, которые позволяют встраивать webkit в приложения на C #: см. Этот пост в SO (единодушным является использование Webkit.NET )

Вместо этого я бы также использовал компонент QtWebkit , тогда вы напишете одно легкое кроссплатформенное приложение для рабочего стола на основе Qt, которое будет встраивать ваш веб-интерфейс.

gbjbaanb
источник
Хм, это похоже на твердый ответ. Я подожду немного, чтобы посмотреть, будет ли кто-нибудь вмешиваться, прежде чем отмечать как ответ. Но Webkit.Net выглядит так, как будто может справиться с работой. Одна из ссылок в вопросе SO, который вы связали, идет на репозиторий github CefSharp , в который встроен экземпляр хрома. Хотя я не уверен, понадобится ли мне весь браузер по сравнению с простым webkit. Я должен смотреть дальше.
Скиф
Что касается «Сегодня я бы сделал что-то без IE / IIS и использовал бы веб-сокеты для более интерактивного взаимодействия». Я хочу использовать моно, чтобы я мог использовать .net и иметь кроссплатформенную поддержку, а также иметь возможность разместить сайт на чем-то вроде nginx или чероки, если у них есть поддержка моно, иначе apache. Я не знаю IIS и администратора Windows достаточно, но я знаю, и у меня есть веб-сервер Linux. Пока у меня не будет живого взаимодействия пользователя с пользователем, поэтому мне, вероятно, не понадобятся веб-сокеты. А для синхронизации БД будет использоваться couchdb. Хотя я могу посмотреть на websockets или socket.io позже, когда я делаю более продвинутые вещи
skift
Для веб-разработчиков придерживайтесь стека Linux, Windows занимает второе место на рынке веб-разработки. Я бы также проигнорировал моно, так как он был отброшен, когда Novell обанкротился, я бы сказал, что это мертвая технология, лучше вместо этого придерживаться одной из других кроссплатформенных технологий, которые дают вам лучший опыт разработки для Linux. Полагаться на поддержку моно и будущие обновления на мой вкус немного рискованно.
gbjbaanb
Да, это обычно не моя сильная сторона. Я предпочитаю идти в сторону javascript и node.js. Но мне приходится изучать c # /. Net для работы, поэтому я решил, что с таким же успехом я могу создать небольшой проект, чтобы помочь его изучить. Я думаю, что .Net имеет довольно интересные функции, если я занимаюсь в основном разработкой для Windows и вебом. Поэтому я пытаюсь использовать то, что, как я знаю, я буду использовать на работе, - это сочетание веб-приложений и приложений для настольных компьютеров.
Скиф
0

Я работал над структурой приложений для таких проектов, как ваш. Он основан на структуре содержания хрома. Это позволяет реализовывать графический интерфейс приложения с помощью html / css / js / svg и т. Д., А логику приложения - на javascript или c #.

Моя цель - иметь возможность разрабатывать полнофункциональные полнофункциональные «толстые» настольные приложения с использованием веб-технологий, которые являются кроссплатформенными и не требуют ничего на стороне сервера.

Джейк
источник
Хотя я и хочу делать что-то на стороне сервера (поскольку пользователи смогут синхронизировать данные с центральным сервером и использовать приложение в сети), мне было бы интересно узнать, как вы используете хром. Для меня настольные версии были бы в основном копией того, что на сервере, поэтому он работает быстрее и не должен ждать обновлений, и они могут использовать его в автономном режиме.
Скиф