Webkit como GUI em .Net / Mono


12

Quero criar um aplicativo de plataforma cruzada, que também terá um site em que os aplicativos de desktop (Windows, iOS, Linux) conversem com o servidor e mantenham os dados dos usuários sincronizados.

Até agora, as opções que vejo são:

  • Escreva uma GUI nativa para cada um dos 3 sistemas operacionais, portanto, eu teria três bases de código da GUI (e um único sistema de back-end)
  • Use algo como GTK para que eu possa usar um sistema com suporte em todas as plataformas de menção.

Mas o terceiro no qual não consegui encontrar muita informação (talvez não esteja procurando os termos certos, pois ainda sou novo em C # e .Net), é ter uma janela com uma instância do WebKit incorporada , o que me permitiria usar o mesmo sistema GUI que eu usaria para o site. O que faria o aplicativo cliente e o site parecerem o mais próximo possível um do outro, para que os usuários estejam familiarizados com a interface.

Esta última opção com o WebKit é plausível? Eu já sei bem JavaScript / HTML e se eu puder usar esse conhecimento para criar a interface, isso seria ótimo. Também seria uma ótima maneira de permitir que os usuários personalizassem a interface com plug-ins e pudessem manter sincronizadas as preferências da interface do usuário do local para a web.


Estou pesquisando no Sencha ExtJS esse tipo de trabalho, mas não estou convencido de que esse seja o melhor método a ser usado ainda.
jfrankcarr

Respostas:


10

Não dá para ver por que não, mas você pode simplesmente executar o Chrome no modo "sem janelas" ou o IE no modo "hta" (escrevemos um aplicativo de desktop usando tecnologia da web, implantando-o como um hta no Windows há uma década).

Hoje eu faria algo sem o IE / IIS e usaria websockets para uma experiência mais interativa.

Existem componentes que permitem o webkit incorporado em aplicativos C #: consulte esta postagem da SO (consenso é usar o Webkit.NET )

Em vez disso, eu também usaria o componente QtWebkit. Em seguida, você escreverá um aplicativo 'desktop' único, leve, baseado em Qt e de plataforma cruzada que incorpora sua GUI da web.


Hrmm, isso parece ser uma resposta sólida. Vou esperar um pouco para ver se alguém entra em cena antes de marcar como resposta. Mas o Webkit.Net parece que pode fazer o trabalho. Um dos links na pergunta SO que você vinculou vai para um repositório do Github CefSharp, onde ele possui uma instância de cromo incorporada. Embora eu não tenha certeza se precisarei do navegador inteiro em comparação com apenas o webkit. Vou ter que procurar mais.
skift

Quanto a "Hoje, eu faria algo sem o IE / IIS e usaria os websockets para uma experiência mais interativa". Estou querendo usar o mono para poder usar .net e ter suporte a várias plataformas, além de poder hospedar o site em algo como nginx ou cherokee se eles tiverem o suporte mono, caso contrário, apache. Não conheço o IIS e o administrador do Windows o suficiente, mas conheço e tenho um servidor web linux. Até agora, não terei interação direta entre usuários, portanto provavelmente não precisarei de websockets. E a sincronização do banco de dados usará o couchdb. Embora pode olhar para websockets ou Socket.io mais tarde, quando estou fazendo coisas mais avançadas
skift

Para desenvolvedores da Web, mantenha-se na pilha do Linux, o Windows é um 2º ruim no mercado de desenvolvimento da Web. Eu também ignoraria o mono, já que ele foi descartado quando a Novell entrou em colapso, eu diria que é uma tecnologia morta, é melhor ficar com uma das outras tecnologias de plataforma cruzada que oferece uma melhor experiência para desenvolvedores no Linux. Contar com suporte mono e futuras atualizações é um pouco arriscado para o meu gosto.
Gbjbaanb

Sim, normalmente não é meu forte também. Eu prefiro ir para javascript e node.js. Mas estou tendo que aprender c # / .net para o trabalho, então imaginei que também poderia criar um pequeno projeto para ajudá-lo. Eu acho que .Net tem alguns recursos bem legais se eu estiver desenvolvendo principalmente o Windows e a Web. Então, estou tentando fazer uso do que sei que usarei no trabalho, que é uma mistura de aplicativos da Web e de desktop.
skift

0

Eu tenho trabalhado em uma estrutura de aplicativos para projetos como o seu. É baseado na estrutura de conteúdo de cromo. Ele permite que a GUI de um aplicativo seja implementada com html / css / js / svg, etc, e a lógica do aplicativo seja implementada em javascript ou c #.

Meu objetivo é ser capaz de desenvolver aplicativos de desktop "grossos" ricos e completos, usando tecnologias da Web, que são multiplataforma e não exigem nada do lado do servidor.


Embora enquanto eu queira fazer as coisas do lado do servidor (como os usuários conseguirão sincronizar dados com um servidor central e usar o aplicativo on-line), eu estaria interessado em saber como você está usando o cromo. Para mim, as versões para desktop seriam basicamente uma cópia do que está no servidor, para que ele seja executado mais rapidamente e não precise esperar por atualizações, e elas podem ser usadas offline.
Skift #
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.