Quel cadre recommanderiez-vous pour créer des applications de type bureau pour le Web? [fermé]

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

Question

Plusieurs cadres pour l'écriture d'applications de type bureau basées sur le Web sont récemment apparus. Par exemple. SproutCore et Cappuccino . Avez-vous une expérience de les utiliser? Quelle est ton impression? Ai-je oublié un autre cadre?

J'ai vu connexes questions sur StackOverflow, mais ils génèrent généralement des réponses standard telles que "utiliser jQuery ou MochiKit ou MooTools ou Dojo ou YUI". Bien que certaines personnes donnent non standard réponses , ils semblent avoir peu d'expérience en utilisant ce cadre.

Quelqu'un peut-il partager une expérience réelle en développant des applications de type Destop pour le navigateur?

Était-ce utile?

La solution

En raison des problèmes de rapidité que ces infrastructures de haut niveau posent pour de nombreuses applications plus grandes (comme dans: non triviales), nous utilisons uniquement jQuery en clair. Lors de nos tests, tous les frameworks de haut niveau sont tombés en panne dans les situations où il y a de nombreux objets déplaçables ou de nombreuses cibles de rejet, et dans les cas où de longues listes (avec 1 000 entrées au maximum) sont affichées à l'écran.

Cela est en partie dû à des problèmes avec IE6 et IE7 (où les performances commencent soudainement à se détériorer considérablement lorsque les arbres DOM atteignent une certaine complexité), mais en partie à cause de la surcharge générée par ces frameworks.

Je ne recommanderais donc aucun des cadres de haut niveau. Ma recommandation serait d'utiliser jQuery et de travailler directement avec le DOM.

Quelques conseils pour améliorer les performances:

  • Dans la mesure du possible, rendez le code HTML sur serveur.
  • Conservez le code HTML aussi simple que possible.
  • Évitez d'avoir beaucoup d'éléments dans l'arborescence DOM.
  • Eviter le récursif structure de la table (IE s'arrête soudainement leur montrant après relativement peu niveaux de nidification).
  • Supprimer invisible éléments de l'arborescence DOM.
  • Supprimer les choses de l'arbre DOM avant les changer et ensuite ré-insérer eux, plutôt que de les changer pendant qu'ils sont dans l'arbre.

Autres conseils

À mon avis, Cappuccino est un exemple de ce qu’il ne faut PAS faire. Ils ont implémenté un autre langage en plus de JavaScript, ce qui amène déjà de la lenteur alors que les développeurs de navigateurs se battent déjà durement et, ce qui est pire, ils ne s'appuient pas du tout sur le widget du navigateur, brisant toute l'expérience de navigation de l'utilisateur. Par exemple, ils ont mis en place leur propre barre de défilement, avec comme principal inconvénient que l’utilisation de la molette de la souris ne fonctionnera plus!

Je préfère vraiment l'approche d'ExtJS qui vous donne des widgets riches tout en maintenant l'interface utilisateur aussi proche que possible du navigateur.

Je recommande également, comme gizmo, EXT JS. Leur licence a changé et cela peut ne pas fonctionner pour tous, mais c'est quand même un bon choix si vous voulez faire des choses comme un ordinateur de bureau.

Voici leur exemple de page pour un environnement de bureau: http: // extjs. com / deploy / dev / examples / desktop / desktop.html

Apple démontre que le sproutcore fonctionne, bien qu'il soit difficile d'évaluer son efficacité. Actuellement, je construis des applications Web avec un ensemble de bibliothèques maison, en dupliquant un ensemble de fonctionnalités de notre suite logicielle Windows (mais adaptée à une interface Web). Jusqu'à présent, j'ai évité les frameworks, en particulier parce que je ne voulais pas de ballonnement. Le problème avec cette approche est que je perds un temps excessif à dupliquer des fonctionnalités déjà présentes dans les frameworks, et j’ai l’impression qu'avec le temps, je me rapprocherai de quelque chose qui ressemble à ces frameworks.

Pour cette raison, j'ai essayé d'implémenter une application Web dans les extensions, et l'expérience a été étonnamment agréable. Les performances sont excellentes et la facilité de développement est assez élevée, car leur ensemble de composants est utile pour créer des applications, et pas seulement pour des démonstrations sophistiquées (un problème courant dans les boîtes à outils Web). Je le recommanderais sans hésiter si vous souhaitez créer des applications Web de type bureau.

Le problème de la montée en puissance est évidemment toujours d'actualité, mais honnêtement, j'estime qu'il est préférable d'utiliser une boîte à outils dans les situations où la mise à l'échelle n'est pas si importante et de ne recourir au javascript de base que là où vous en avez besoin (optimisation prématurée) racine de tout mal). Extjs peut se superposer au prototype ou à jquery, cette approche est donc réalisable. Éviter trop de contenu dans les DOM est généralement une approche de chargement et de déchargement à la demande. Par exemple, il existe une extension tierce à la classe de grille extjs qui permet de faire défiler un ensemble de données de un million de lignes en maîtrisant le chargement et le déchargement des données.

Vous pouvez envisager d'utiliser GWT-Ext (utiliser Ext en dessous). une solution très propre si vous utilisez Java.

J'aime qooxdoo , bien qu'il adopte l'approche OOP de JS plutôt que le prototype, il s'agit d'un cadre solide et a beaucoup de fonctionnalités.

Je n'ai aucune expérience de SproutCore ou de Capuccino. Mais nous avons tenté d’utiliser Dojo au-dessus de Django pour ce type de travail. Je peux seulement vous dire que c'est lent et bogué.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top