Webkit come GUI in .Net / Mono


12

Voglio creare un'applicazione multipiattaforma, che avrà anche un sito Web in cui le applicazioni desktop (Windows, iOS, Linux) parleranno con il server e manterranno sincronizzati i dati degli utenti.

Finora le opzioni che vedo sono:

  • Scrivi una GUI nativa per ciascuno dei 3 sistemi operativi, quindi avrei 3 basi di codice della GUI (e un singolo sistema di backend)
  • Usa qualcosa come GTK in modo da poter usare un sistema con supporto in tutte le piattaforme menzionate.

Ma il terzo sul quale non sono stato in grado di trovare molte informazioni (forse non sto cercando i termini giusti poiché sono ancora nuovo in C # e .Net), è avere una finestra con un'istanza WebKit incorporata , che mi consentirebbe di utilizzare lo stesso sistema di interfaccia grafica che avrei utilizzato per il sito Web. Ciò renderebbe l'app client e il sito Web il più vicini possibile in modo che gli utenti abbiano familiarità con l'interfaccia.

Quest'ultima opzione è plausibile con WebKit? Conosco già bene JavaScript / HTML e se posso usare quella conoscenza per rendere l'interfaccia, sarebbe fantastico. Inoltre sarebbe un ottimo modo per consentire agli utenti di personalizzare l'interfaccia con i plugin e che potrebbero mantenere sincronizzate tutte le preferenze dell'interfaccia utente dal locale al web.


Sto cercando Sencha ExtJS per questo tipo di lavoro, ma non sono convinto che questo sia il metodo migliore da usare ancora.
jfrankcarr,

Risposte:


10

Non riesco a capire perché no, ma potresti semplicemente eseguire Chrome in modalità "senza finestre" o IE in modalità "hta" (abbiamo scritto un'app desktop utilizzando la tecnologia web, distribuendola come hta su Windows dieci anni fa).

Oggi farei qualcosa senza IE / IIS e utilizzerei i websocket per un'esperienza più interattiva.

Esistono componenti che consentono il webkit incorporato nelle app C #: vedi questo post da SO (il consenso è usare Webkit.NET )

Utilizzerei invece anche il componente QtWebkit , quindi scriverò un'app 'desktop' singola, leggera, basata su Qt e multipiattaforma che incorpora la tua GUI web.


Hmm, questa sembra una risposta solida. Aspetterò un po 'per vedere se qualcuno interviene anche prima di segnare come risposta. Ma Webkit.Net sembra che potrebbe fare il lavoro. Uno dei collegamenti nella domanda SO che hai collegato va a un repository github CefSharp dove ha un'istanza di cromo incorporata. Anche se non sono sicuro se avrò bisogno dell'intero browser rispetto al solo webkit. Devo guardare oltre.
skift

Per quanto riguarda "Oggi farei qualcosa senza IE / IIS e utilizzerei i websocket per un'esperienza più interattiva". Voglio usare mono in modo da poter usare .net e avere il supporto multipiattaforma, oltre ad essere in grado di ospitare il sito su qualcosa come nginx o cherokee se hanno il supporto mono, altrimenti apache. Non conosco abbastanza IIS e l'amministratore di Windows, ma conosco e ho un web server Linux. Finora non avrò un'interazione utente-utente dal vivo, quindi probabilmente non avrò bisogno di websocket. E la sincronizzazione del database utilizzerà couchdb. Sebbene possa guardare websocket o socket.io più tardi quando sto facendo cose più avanzate
skift

Per gli sviluppatori Web, attenersi allo stack Linux, Windows è un povero 2 ° nel mercato dello sviluppo web. Ignorerei anche il mono, dato che è stato abbandonato quando Novell è andato sotto, direi che è una tecnologia morta, meglio attenersi a una delle altre tecnologie multipiattaforma invece che ti dà una migliore esperienza di sviluppo su Linux. Affidarmi al supporto mono e ai futuri aggiornamenti è un po 'rischioso per i miei gusti.
gbjbaanb,

Sì, di solito non è nemmeno il mio forte. Preferisco andare verso javascript e node.js. Ma devo imparare c # /. Net per il lavoro, quindi ho pensato che potrei anche costruire un piccolo progetto con esso per aiutarlo ad impararlo. Penso che .Net abbia alcune funzioni piuttosto interessanti se sto facendo principalmente sviluppo di Windows e Web. Quindi sto provando a fare uso di ciò che so che userò sul posto di lavoro, che è un mix di app Web e desktop.
skift,

0

Ho lavorato su un framework applicativo per progetti come il tuo. Si basa sul framework del contenuto di cromo. Consente l'implementazione della GUI di un'applicazione con html / css / js / svg, ecc. E la logica dell'applicazione da implementare in javascript o c #.

Il mio obiettivo è quello di essere in grado di sviluppare applicazioni desktop "spesse" complete e complete utilizzando tecnologie web, che sono multipiattaforma e non richiedono nulla sul lato server.


Anche se mentre voglio fare le cose sul lato server (poiché gli utenti saranno in grado di sincronizzare i dati con un server centrale e utilizzare l'app online), sarei interessato a sapere come stai usando il cromo. Per me, le versioni desktop sarebbero sostanzialmente una copia di ciò che è sul server, quindi funziona più velocemente e non deve attendere gli aggiornamenti e possono usarlo offline.
skift,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.