O quadro que você recomendaria para fazer de desktop-como aplicativos para a web? [fechadas]

StackOverflow https://stackoverflow.com/questions/148118

Pergunta

Vários quadros para escrever web-based desktop como aplicações têm aparecido recentemente. Por exemplo. SproutCore e cappuccino . Você tem alguma experiência com eles? Qual é a sua impressão? Perdi algum outro quadro?

Eu vi relacionado com o perguntas em StackOverflow, mas que geram respostas principalmente padrão como "uso jQuery ou MochiKit ou MooTools ou Dojo ou YUI". Enquanto algumas pessoas dão não-padrão respostas , eles parecem ter pouca experiência usando este frameworks.

Alguém pode compartilhar experiência real desenvolvimento destop-como aplicativos para o navegador?

Foi útil?

Solução

Devido aos problemas de velocidade estas estruturas de alto nível causar para muitos maior (como em: não triviais) aplicações, só usamos jQuery simples. Em nossos testes, todos os quadros de alto nível caiu em situações onde há muitos objetos que podem ser arrastadas ou muitos alvos da gota, e na situação em longas listas (com> 1000 entradas) foram mostrados na tela.

Parte disso é devido a problemas com IE6 e IE7 (onde o desempenho de repente começa a deteriorar-se drasticamente após árvores DOM atingir uma certa complexidade), mas parte é devido à sobrecarga estas estruturas geram.

Então, eu não recomendo qualquer dos quadros de alto nível. Minha recomendação seria usar jQuery e trabalhar com o DOM diretamente.

Algumas dicas para melhorar o desempenho:

  • Onde possivelmente, renderizar HTML no servidor.
  • Mantenha o HTML tão simples como possível.
  • Evite ter muitos elementos na árvore DOM.
  • Evite recursiva estrutura de mesa (IE pára subitamente mostrando-lhes depois de relativamente poucos níveis de aninhamento).
  • Remover invisível elementos da árvore DOM.
  • Remover coisas da árvore DOM antes alterando-as e em seguida, re-inserção -los, ao invés de mudá-las enquanto eles estão na árvore.

Outras dicas

Para o meu ponto de vista, Cappuccino é um exemplo do que não fazer. Eles implementaram uma outra língua em cima do JavaScript, que já trazem slowliness enquanto desenvolvedor navegador já estão lutando contra duro, e, o que é pior, eles não confiar em tudo sobre o widget do navegador, quebrando toda a experiência de navegação do usuário. Por exemplo, eles implementaram a sua própria barra de rolagem, com a desvantagem principal que usando a roda do mouse não funciona mais!

Eu realmente prefiro a abordagem de ExtJS que lhe dão os widgets ricos, mantendo a interface do usuário o mais próximo possível a partir do navegador.

Eu também, como aparelho, recomendamos EXT JS. Sua licença mudou e ele pode não funcionar para todos, mas ainda é uma boa escolha se você quer fazer coisas como um desktop.

Aqui está a sua página de exemplo para um ambiente de desktop: http: // extjs. com / deploy / dev / examples / desktop / desktop.html

Apple está demonstrando que SproutCore funciona, embora seja difícil estimar quão bem ele funciona. Atualmente eu aplicativos de construção da web com um conjunto home-grown de bibliotecas, duplicação de um conjunto de funcionalidades de nosso conjunto de software janelas (mas adaptado a uma interface web). Até agora eu tenho evitado enquadramentos particularmente a razão para que eu não queria que o inchaço. O problema com esta abordagem é que eu desperdiçar uma enorme quantidade de tempo a duplicação de funcionalidade que já está nos quadros, e eu sinto que com o tempo eu vou aproximar em direção a algo que se assemelha a estas estruturas.

Devido a isso eu tenho experimentado com a implementação de um aplicativo web em extjs, e foi uma experiência surpreendentemente agradável. O desempenho é excelente, e facilidade de desenvolvimento é bastante elevado porque seu conjunto de componentes é bom para realmente construir aplicativos, não apenas para demonstrações de fantasia (um problema comum em kits de ferramentas web). Eu definitivamente recomendo que se você está interessado em construir desktop como aplicações web.

O problema de escala-lo, obviamente, ainda se aplica, mas honestamente, eu sinto que é melhor usar um kit de ferramentas em situações onde a escala não é tão importante, e fallback para javascript base apenas onde você precisa (otimização prematura sendo o raiz de todo mal). Extjs pode camada em cima do protótipo ou jQuery, pelo que esta abordagem é definitivamente viável. Evitando muito conteúdo no DOM é geralmente uma abordagem de carregamento e descarregamento on-demand. Por exemplo, há uma terceira extensão do partido para a classe extjs grade que permite percorrer um conjunto de dados fileira milhões por ser inteligente sobre os dados de carga e descarga.

Você pode considerar o uso GWT-Ext (usos Ext por baixo) pode ser uma solução muito limpa se você estiver indo para usar Java.

Gosto qooxdoo , embora leva a abordagem OOP de JS em vez do protótipo é uma estrutura sólida e tem um monte de recursos.

Eu não tenho nenhuma experiência com SproutCore ou Capuccino. Mas fizeram tentativas de usar Dojo em cima de Django para este tipo de trabalho. só pode dizer que é lento e buggy.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top