Webkit como GUI en .Net / Mono

12

Quiero hacer una aplicación multiplataforma, que también tendrá un sitio web donde las aplicaciones de escritorio (Windows, iOS, Linux) hablarán con el servidor y mantendrán sincronizados los datos de los usuarios.

Hasta ahora las opciones que veo son:

  • Escribir una GUI nativa para cada uno de los 3 SO, para tener 3 bases de código GUI (y un único sistema de fondo)
  • Use algo como GTK para poder usar un sistema con soporte en todas las plataformas mencionadas.

Pero el tercero en el que no he podido encontrar mucha información (tal vez no estoy buscando los términos correctos ya que todavía soy nuevo en C # y .Net), es tener una ventana con una instancia de WebKit incorporada incorporada , lo que me permitiría usar el mismo sistema GUI que usaría para el sitio web. Lo que haría que la aplicación cliente y el sitio web se vean lo más cerca posible entre sí para que los usuarios estén familiarizados con la interfaz.

¿Es plausible esta última opción con WebKit? Ya conozco bien JavaScript / HTML y si puedo usar ese conocimiento para hacer la interfaz, sería genial. También sería una excelente manera de permitir a los usuarios personalizar la interfaz con complementos y podrían mantener sincronizadas las preferencias de la interfaz de usuario de local a web.

skift
fuente
Estoy buscando en Sencha ExtJS para este tipo de trabajo, pero no estoy convencido de que este sea el mejor método para usar todavía.
jfrankcarr

Respuestas:

10

No puedo ver por qué no, pero podría ejecutar Chrome en modo "sin ventanas" o IE en modo "hta" (escribimos una aplicación de escritorio usando tecnología web, desplegándola como hta en Windows hace una década).

Hoy haría algo sin IE / IIS y usaría websockets para una experiencia más interactiva.

Hay componentes que permiten webkit incrustado en aplicaciones C #: consulte esta publicación desde SO (el consenso es usar Webkit.NET )

También usaría el componente QtWebkit en su lugar, luego escribirás una aplicación de 'escritorio' multiplataforma, ligera, basada en Qt que integra tu GUI web.

gbjbaanb
fuente
Hrmm, esto parece una respuesta sólida. Esperaré un poco para ver si alguien también interviene antes de marcar la respuesta. Pero parece que Webkit.Net podría hacer el trabajo. Uno de los enlaces en la pregunta SO que vinculó va a un repositorio de github CefSharp donde tiene una instancia de cromo incrustada. Aunque no estoy seguro de si necesitaré todo el navegador en comparación con solo el kit web. Tendré que buscar más.
skift
En cuanto a 'Hoy haría algo sin IE / IIS y usaría websockets para una experiencia más interactiva'. Quiero usar mono para poder usar .net y tener soporte multiplataforma, así como poder alojar el sitio en algo como nginx o cherokee si tienen el soporte mono, de lo contrario apache. No conozco lo suficiente IIS y Windows Admin, pero sé y tengo un servidor web Linux. Hasta ahora no tendré interacción de usuario a usuario en vivo, así que probablemente no necesitaré websockets. Y la sincronización de la base de datos utilizará couchdb. Aunque puede mirar en websockets o Socket.IO más adelante, cuando estoy haciendo cosas más avanzadas
skift
Para desarrolladores web, manténgase en la pila de Linux, Windows es un pobre segundo en el mercado de desarrollo web. También ignoraría mono, ya que se eliminó cuando Novell se hundió. Diría que es una tecnología muerta, es mejor quedarse con una de las otras tecnologías multiplataforma que le brindan una mejor experiencia de desarrollo en Linux. Confiar en el soporte mono y futuras actualizaciones es un poco arriesgado para mi gusto.
gbjbaanb
Sí, tampoco suele ser mi fuerte. Prefiero ir a javascript y node.js. Pero tengo que aprender c # /. Net para trabajar, así que pensé que también podría construir un pequeño proyecto con él para ayudar a aprenderlo. Creo que .Net tiene algunas características bastante interesantes si estoy haciendo principalmente desarrollo web y web de Windows. Así que estoy tratando de hacer uso de lo que sé que usaré en el trabajo, que es una combinación de aplicaciones web y de escritorio.
skift
0

He estado trabajando en un marco de aplicación para proyectos como el tuyo. Se basa en el marco de contenido de cromo. Permite que la GUI de una aplicación se implemente con html / css / js / svg, etc. y que la lógica de la aplicación se implemente en javascript o c #.

Mi objetivo es poder desarrollar aplicaciones de escritorio 'gruesas' ricas y completas con tecnologías web, que sean multiplataforma y no requieran nada del lado del servidor.

Jake
fuente
Aunque si bien quiero hacer cosas del lado del servidor (ya que los usuarios podrán sincronizar datos con un servidor central y usar la aplicación en línea), me interesaría saber cómo está usando el cromo. Para mí, las versiones de escritorio serían básicamente una copia de lo que hay en el servidor, por lo que se ejecuta más rápido y no tiene que esperar actualizaciones y pueden usarlo sin conexión.
skift