Quelqu'un a-t-il utilisé Sproutcore pour une application Web? Si oui, pouvez-vous me donner une description de votre expérience? J'y réfléchis actuellement, mais j'ai quelques inquiétudes. Tout d'abord, la documentation est mauvaise / incomplète, et j'ai peur de passer beaucoup de temps à comprendre ou à fouiller dans le code source. De plus, j'hésite un peu à utiliser un projet relativement nouveau et qui pourrait subir des changements importants.
Toutes les pensées des gens qui ont développé dans Sproutcore sont appréciées!
EDIT / PS: Oui, j'ai vu ce post: /programming/370598/sproutcore-and-cappuccino . Cependant, je suis intéressé par une description un peu plus longue de Sproutcore lui-même de quelqu'un qui l'a utilisé pour un projet important.
la source
Réponses:
Nous utilisons le sproutcore plus que l'année.
J'ai d'abord développé en utilisant la version 0.9 qui était excellente mais qui avait des problèmes de performances, liés à KVO, aux grands ensembles de données, etc. Mais comme SproutCore est Javascript (proche de javascript), nous avons pu les résoudre pour notre application. Pour moi en fait, SproutCore m'a appris la bonne façon de coder javascript. J'apprenais Javascript et SproutCore en même temps.
Quelque part en juillet, ils ont sorti SproutCore 1.0 pré-alpha. L'API a été considérablement modifiée, donc la conversion de notre application vers une version plus récente était un projet en soi. Et la documentation était nulle à l'époque.
Maintenant les choses ont changé, il y a de la documentation et un wiki très sympa. De nouveaux tutoriels et de la documentation sont ajoutés chaque jour.
Si vous pensez utiliser / évaluer SproutCore, c'est le bon moment. Et chaque jour, SproutCore m'émerveille par ses capacités et sa puissance. Il y a toujours beaucoup de bords rugueux, ce qui réduit tous les jours.
Quelques ressources:
Wiki SproutCore
Documents API
Ajout récent pour l'API de magasin de données (qui est une partie très importante)
la source
J'ai travaillé avec une entreprise utilisant SC pour la refonte de leur application phare. Voici mes pensées:
J'aime vraiment la disposition MVC d'une application SC. Je pense que c'est quelque chose qui manque aux autres frameworks JS. Leur cadre de liaison facilite la mise à jour des vues.
La meilleure documentation se trouvait dans le code lui-même.
Le besoin d'une meilleure documentation / plus d'exemples. Leurs exemples sont suffisants pour vous aider à démarrer, mais des choses avancées épateront la plupart des utilisateurs.
La couche d'accès aux données est trop compliquée. C'est un énorme mystère. Ils doivent vraiment consolider la documentation ou fournir plus d'exemples pour ouvrir la voie afin que les gens puissent l'utiliser correctement. D'un autre côté, il semble être un framework presque ORM vraiment puissant.
J'aime le fait qu'ils stressent les tests.
L'absence de grille est un véritable frein. Beaucoup sinon la plupart des applications ont besoin de grilles. Cela dit, SC est un framework MVC complet, pas un framework de widgets (composants) list EXTJS.
Une grande partie du code semblait trop complexe. Chaque fois qu'une méthode dépasse 10 à 30 lignes, elle doit vraiment être décomposée pour augmenter la lisibilité.
Peut-être que la plus grande considération est la suivante: si vous travaillez sur un projet et que vous envisagez d'utiliser SC, vous aurez vraiment du mal à trouver des développeurs compétents pour y travailler. Cela peut donc être bon pour un petit projet personnel, mais vous prenez un risque avec un grand projet qui aura besoin de maintenance.
Le soutien de l'IRC a été phénoménal. Les gars de cette chaîne sont vraiment utiles.
la source
Parcourez simplement les publications du groupe sproutcore dans les groupes Google pour avoir une idée de ce qui se passe.
Il y a quelques semaines, quelqu'un s'est plaint des documents, étant un débutant, et essentiellement ce qu'il a obtenu était: "si vous ne l'aimez pas, pourquoi ne pas aider à créer les documents" ... eh bien!
Vous verrez des problèmes comme celui-ci depuis sa création. Il y a quelques semaines également, quelqu'un a demandé au groupe comment créer un lien hypertexte à l'aide de Sproutcore. Je veux dire, LOL, il faut des heures pour créer un simple lien hypertexte apparemment.
Sproutcore n'annonce pas qui utilise son framework dans la nature: ce n'est généralement pas bon signe.
Il est affirmé (pas par sproutcore lui-même afaik) qu'Apple l'utilise, mais si vous regardez attentivement, vous verrez qu'Apple a sa propre base de code.
Personnellement, j'ai trouvé que le sproutcore était criblé de bogues, le manque d'une simple vue de table, des exemples ennuyeux, incomplets ou non fonctionnels, et l'absence de documentation et même l'absence de TESTS complets n'est tout simplement pas une bonne base sur laquelle s'appuyer.
la source
J'utilise SproutCore et c'est tout simplement génial. Nous sommes passés de jQuery à SproutCore , car jQuery propose un petit ensemble d'utilitaires et SproutCore offre une belle architecture de haut niveau.
Nous avons évalué ces bibliothèques Javascript dans l'ordre suivant:
Notre top liste:
Bien sûr, il y a plus de boîtes à outils, mais ce sont celles que nous avons évaluées. En conclusion, je peux fortement recommander SproutCore à toute personne qui construit des applications de classe de bureau en utilisant Javascript. Si vous avez juste besoin d'un simple Javascript, comme des sélecteurs de dates, etc., je recommande jQuery.
Encore une astuce. Au moment de la rédaction de cette réponse, SproutCore 1.0 est la dernière version stable. Malheureusement, il est assez ancien et nous utilisons la dernière version disponible sur la page Github de SproutCore . Je peux fortement le recommander.
la source
Si vous essayez d'entrer dans SproutCore, je vous recommande de creuser dans l'exemple d'application SproutTweets. Beaucoup des constructions les plus puissantes (états, frameworks chargés dynamiquement, un exemple utile de source de données) sont là.
Vous pouvez trouver l'application SproutTweets sur github http://github.com/sproutit/sproutcore-samples/tree/master/apps/sproutweets/
Même si vous n'avez pas l'intention d'utiliser SproutCore dans une application de production, vous vous devez de l'explorer davantage pour voir une approche puissante de la programmation d'applications javascript - en particulier le KVO et les mixins (aspects). Beaucoup de grande architecture à méditer et à apprendre.
Dernier point - le canal IRC peut être beaucoup plus utile que d'autres sources d'information, juste après quelques plongées profondes dans les discussions de groupe Google.
la source
J'ai utilisé SproutCore dans le passé. On m'a confié un projet de développement de scripts de tests Web automatisés à l'aide de l'outil appelé Selenium RC. Selenium RC a été conçu pour cibler les identifiants et classes HTML normaux, mais SproutCore compile les identifiants des éléments afin que les identifiants des éléments soient pseudo aléatoires, j'ai donc dû trouver l'API pour SproutCore afin de pouvoir repérer les identifiants des éléments à partir de l'arborescence.
SproutCore a une analogie étroite avec les compilateurs. Si vous avez trop d'éléments que vous importez en train de créer pour votre page Web, il y a une chance que vous ayez une collision d'espace de noms sur les ID si vous deviez créer votre application avec jQuery. Lorsque vous créez votre page Web avec jQuery, tous les ID des éléments HTML sont globaux. La portée locale n'existe pas comme dans un langage compilé ou interprété.
SproutCore finit par gérer le contenu HTML pour vous. Les vues sont construites à l'aide de javascript puis compilées. Si vous passez par le didacticiel SproutCore (et je conviens que SproutCore manque de documentation, vous devriez donc essayer de l'éviter pour une application métier), vous verrez que votre projet fini contient des éléments ID "sc - ###". Les collisions d'espace de noms sont résolues sur le site Web, ce qui vous permet de travailler plus rapidement.
Cependant, il y a des préoccupations majeures. Leur documentation ne suffit pas à expliquer pourquoi les gens devraient l'utiliser. Le projet est open source, mais creuser votre chemin pour comprendre le javascript de niveau inférieur pour la façon dont les vues sont construites devient pénible. Javascript est un langage fonctionnel, mais je trouve juste quelque chose de mal avec les langages fonctionnels dynamiques. Il y a juste trop de flexibilité. Je branche Scala.
Le dernier numéro. SproutCore peut être lent. Mais c'est un prix à payer
la source