Webkit comme GUI dans .Net / Mono

12

Je veux créer une application multiplateforme, qui aura également un site Web où les applications de bureau (Windows, iOS, Linux) parleront au serveur et garderont les données des utilisateurs synchronisées.

Jusqu'à présent, les options que je vois sont:

  • Écrire une interface graphique native pour chacun des 3 OS, donc j'aurais 3 bases de code GUI (et un seul système backend)
  • Utilisez quelque chose comme GTK afin que je puisse utiliser un système avec support dans toutes les plateformes de mention.

Mais le troisième sur lequel je n'ai pas pu trouver beaucoup d'informations (peut-être que je ne recherche pas les bons termes car je suis encore nouveau sur C # et .Net), est d'avoir une fenêtre avec une instance WebKit intégrée intégrée , ce qui me permettrait d'utiliser le même système d'interface graphique que j'utiliserais pour le site Web. Ce qui rendrait l'application cliente et le site Web aussi proches que possible l'un de l'autre afin que les utilisateurs connaissent l'interface.

Cette dernière option avec WebKit est-elle plausible? Je connais déjà bien JavaScript / HTML et si je peux utiliser ces connaissances pour faire l'interface, ce serait génial. Ce serait également un excellent moyen pour permettre aux utilisateurs de personnaliser l'interface avec des plugins et ils pourraient synchroniser toutes les préférences de l'interface utilisateur du local au Web.

skift
la source
J'examine Sencha ExtJS pour ce genre de travail, mais je ne suis pas convaincu que ce soit la meilleure méthode à utiliser à ce jour.
jfrankcarr

Réponses:

10

Je ne vois pas pourquoi, mais vous pouvez simplement exécuter Chrome en mode "sans fenêtre" à la place, ou IE en mode "hta" (nous avons écrit une application de bureau en utilisant la technologie Web, en la déployant en tant que hta sur Windows il y a une décennie).

Aujourd'hui, je ferais quelque chose sans IE / IIS et j'utiliserais des websockets pour une expérience plus interactive.

Il existe des composants qui permettent au webkit intégré dans les applications C #: voir cet article de SO (le consensus est d'utiliser Webkit.NET )

J'utiliserais également le composant QtWebkit à la place, puis vous écrirez une seule application de bureau multiplateforme Qt légère et multiplateforme qui intègre votre interface graphique Web.

gbjbaanb
la source
Hmm, cela semble être une réponse solide. J'attendrai un peu pour voir si quelqu'un intervient également avant de marquer comme réponse. Mais Webkit.Net semble qu'il pourrait faire le travail. L'un des liens dans la question SO que vous avez liée va à un référentiel github CefSharp où il a une instance de chrome intégrée. Bien que je ne sois pas sûr d'avoir besoin de tout le navigateur par rapport à un simple webkit. Je vais devoir chercher plus loin.
skift
Quant à «Aujourd'hui, je ferais quelque chose sans IE / IIS et utiliserais des websockets pour une expérience plus interactive». Je veux utiliser mono pour pouvoir utiliser .net et avoir un support multiplateforme, ainsi que pouvoir héberger le site sur quelque chose comme nginx ou cherokee s'ils ont le support mono, sinon apache. Je ne connais pas assez IIS et l'administrateur Windows, mais je connais et j'ai un serveur web Linux. Jusqu'à présent, je n'aurai pas d'interaction utilisateur à utilisateur en direct, donc je n'aurai probablement pas besoin de websockets. Et la synchronisation DB utilisera couchdb. Bien que vous puissiez regarder websockets ou socket.io plus tard lorsque je
ferai
Pour les développeurs Web, respectez la pile Linux, Windows est un mauvais 2e sur le marché du développement Web. J'ignorerais également le mono, car il a été abandonné lorsque Novell est tombé sous je dirais que c'est une technologie morte, mieux vaut s'en tenir à l'une des autres technologies multiplateformes à la place qui vous donne une meilleure expérience de développement sur Linux. Compter sur le support mono et les futures mises à jour est un peu risqué à mon goût.
gbjbaanb
Oui ce n'est généralement pas mon fort non plus. Je préfère aller vers javascript et node.js. Mais je dois apprendre c # /. Net pour le travail, donc je me suis dit que je pourrais aussi bien construire un petit projet avec lui pour aider à l'apprendre. Je pense que .Net a des fonctionnalités assez intéressantes si je fais principalement du développement Windows et du Web. J'essaie donc d'utiliser ce que je sais que j'utiliserai au travail, qui est un mélange d'applications Web et de bureau.
skift
0

J'ai travaillé sur un cadre d'application pour des projets tels que le vôtre. Il est basé sur le cadre de contenu en chrome. Il permet à l'interface graphique d'une application d'être implémentée avec html / css / js / svg, etc. et la logique d'application à implémenter en javascript ou c #.

Mon objectif est de pouvoir développer des applications de bureau «épaisses» riches et complètes en utilisant les technologies Web, qui sont multiplates-formes et ne nécessitent rien du côté serveur.

Jake
la source
Bien que je veuille faire des choses côté serveur (car les utilisateurs pourront synchroniser les données avec un serveur central et utiliser l'application en ligne), je serais intéressé de savoir comment vous utilisez le chrome. Pour moi, les versions de bureau seraient essentiellement une copie de ce qui se trouve sur le serveur afin qu'il fonctionne plus rapidement et n'ait pas à attendre les mises à jour et qu'il puisse l'utiliser hors ligne.
skift