Webkit als GUI in .Net / Mono

12

Ich möchte eine plattformübergreifende Anwendung erstellen, die auch eine Website hat, auf der die Desktopanwendungen (Windows, iOS, Linux) mit dem Server kommunizieren und die Benutzerdaten synchron halten.

Bisher sehe ich folgende Optionen:

  • Schreiben Sie eine native GUI für jedes der 3 Betriebssysteme, damit ich 3 GUI-Codebasen (und ein einziges Backend-System) habe.
  • Verwenden Sie so etwas wie GTK, damit ich ein System mit Unterstützung für alle genannten Plattformen verwenden kann.

Aber das dritte, zu dem ich nicht viele Informationen finden konnte (vielleicht suche ich nicht nach den richtigen Begriffen, da ich noch neu in C # und .Net bin), ist ein Fenster mit einer eingebetteten WebKit-Instanz Dies würde es mir ermöglichen, dasselbe GUI-System zu verwenden, das ich für die Website verwenden würde. Dies würde dazu führen, dass die Client-App und die Website so nah wie möglich beieinander liegen, damit die Benutzer mit der Benutzeroberfläche vertraut sind.

Ist diese letzte Option mit WebKit plausibel? Ich kenne JavaScript / HTML bereits gut und wenn ich dieses Wissen verwenden kann, um die Benutzeroberfläche zu erstellen, wäre das großartig. Dies wäre auch eine großartige Möglichkeit, Benutzern das Anpassen der Benutzeroberfläche mit Plug-ins zu ermöglichen, und sie könnten alle UI-Einstellungen von lokal zu Web synchronisieren.

schnell
quelle
Ich suche nach Sencha ExtJS für diese Art von Arbeit, aber ich bin nicht überzeugt, dass dies die beste Methode ist, die es bisher gibt.
Jfrankcarr

Antworten:

10

Ich kann nicht verstehen, warum nicht, aber Sie können Chrome stattdessen einfach im "fensterlosen" Modus oder IE im "hta" Modus ausführen (wir haben eine Desktop-App mithilfe von Web-Tech geschrieben und sie vor einem Jahrzehnt unter Windows als hta bereitgestellt).

Heute würde ich etwas ohne IE / IIS tun und Websockets für eine interaktivere Erfahrung verwenden.

Es gibt Komponenten, mit denen Webkit in C # -Anwendungen eingebettet werden kann: siehe diesen Beitrag von SO (Konsens ist die Verwendung von Webkit.NET ).

Ich würde stattdessen auch die QtWebkit-Komponente verwenden. Dann schreiben Sie eine einzelne, kompakte , Qt-basierte, plattformübergreifende Desktop-App, in die Ihre Web-GUI eingebettet ist.

gbjbaanb
quelle
Hrmm, das scheint eine solide Antwort zu sein. Ich werde ein wenig warten, um zu sehen, ob sich jemand ebenfalls anmeldet, bevor ich die Antwort markiere. Aber Webkit.Net sieht so aus, als würde es den Job erledigen. Einer der Links in der SO-Frage, die Sie verlinkt haben, führt zu einem Github- Repository, in dem CefSharp eine Chrominstanz eingebettet hat. Ich bin mir jedoch nicht sicher, ob ich im Vergleich zum Webkit den gesamten Browser benötige. Ich muss weiter schauen.
Skift
Was 'Heute würde ich etwas ohne IE / IIS tun und Websockets für eine interaktivere Erfahrung verwenden.' Ich möchte Mono verwenden, damit ich .net verwenden und plattformübergreifende Unterstützung haben kann. Außerdem kann ich die Site auf etwas wie Nginx oder Cherokee hosten, wenn sie die Mono-Unterstützung haben, ansonsten Apache. Ich kenne IIS und Windows Admin nicht genug, aber ich kenne und besitze einen Linux Webserver. Bisher habe ich keine Benutzer-zu-Benutzer-Interaktion, sodass ich wahrscheinlich keine Websockets benötige. Und bei der DB-Synchronisierung wird couchdb verwendet. Wenn ich fortgeschrittenere Sachen
mache,
Halten Sie sich für Web-Entwickler an den Linux-Stack, Windows ist ein schlechter Zweitplatzierter auf dem Markt für Web-Entwicklung. Ich würde auch Mono ignorieren, da es gelöscht wurde, als Novell unterging. Ich würde sagen, es ist eine tote Technologie, besser bei einer der anderen plattformübergreifenden Technologien zu bleiben, die Ihnen ein besseres Entwicklererlebnis unter Linux bieten. Das Verlassen auf Mono-Unterstützung und zukünftige Updates ist für meinen Geschmack ein bisschen riskant.
gbjbaanb
Ja, das ist normalerweise auch nicht meine Stärke. Ich bevorzuge Javascript und node.js. Aber ich muss c # / .net für die Arbeit lernen, also dachte ich mir, ich könnte auch ein kleines Projekt damit aufbauen, um es zu lernen. Ich denke, dass .Net einige ziemlich coole Features hat, wenn ich hauptsächlich Windows-Entwicklung und Web mache. Daher versuche ich, das zu nutzen, was ich bei der Arbeit verwenden werde. Dabei handelt es sich um eine Mischung aus Web- und Desktop-Apps.
Skift
0

Ich habe an einem Anwendungsframework für Projekte wie Ihres gearbeitet. Es basiert auf dem Chrom-Content-Framework. Es ermöglicht die Implementierung der GUI einer Anwendung mit HTML / CSS / JS / SVG usw. und die Implementierung der Anwendungslogik in Javascript oder C #.

Mein Ziel ist es, mit Hilfe von Webtechnologien, die plattformübergreifend sind und nichts Server-seitiges erfordern, umfangreiche, funktionsreiche "Thick" -Desktop-Anwendungen zu entwickeln.

Jake
quelle
Obwohl ich die Dinge serverseitig erledigen möchte (da Benutzer Daten mit einem zentralen Server synchronisieren und die App online verwenden können), würde mich interessieren, wie Sie Chrom verwenden. Für mich sind die Desktop-Versionen im Grunde genommen eine Kopie dessen, was auf dem Server vorhanden ist. Sie werden also schneller ausgeführt und müssen nicht auf Aktualisierungen warten, und sie können sie offline verwenden.
Skift