Hat jemand Sproutcore für eine Webanwendung verwendet? Wenn ja, können Sie mir eine Beschreibung Ihrer Erfahrungen geben? Ich denke gerade darüber nach, habe aber einige Bedenken. Erstens ist die Dokumentation schlecht / unvollständig, und ich befürchte, dass ich viel Zeit darauf verwenden werde, Dinge herauszufinden oder den Quellcode zu durchsuchen. Außerdem zögere ich ein bisschen, ein Projekt zu verwenden, das relativ neu ist und erhebliche Änderungen erfahren könnte.
Alle Gedanken von Leuten, die sich in Sproutcore entwickelt haben, sind willkommen!
EDIT / PS: Ja, ich habe diesen Beitrag gesehen: /programming/370598/sproutcore-and-cappuccino . Ich bin jedoch an einer etwas längeren Beschreibung von Sproutcore selbst von jemandem interessiert, der es für ein bedeutendes Projekt verwendet hat.
quelle
Antworten:
Wir verwenden Sproutcore seit mehr als einem Jahr.
Zuerst habe ich mit Version 0.9 entwickelt, die ausgezeichnet war, aber Leistungsprobleme im Zusammenhang mit KVO, großen Datensätzen usw. hatte. Da SproutCore jedoch Javascript ist (ähnlich wie Javascript), konnten wir sie für unsere Anwendung lösen. SproutCore brachte mir die richtige Art der Javascript-Codierung bei. Ich habe gleichzeitig Javascript und SproutCore gelernt.
Irgendwann im Juli veröffentlichten sie SproutCore 1.0 Pre-Alpha. Die API wurde erheblich geändert, sodass die Konvertierung unserer Anwendung in eine neuere Version ein Projekt für sich war. Und die Dokumentation war zu diesem Zeitpunkt gleich Null.
Jetzt haben sich die Dinge geändert, es gibt Dokumentation und ein sehr schönes Wiki. Täglich neue Tutorials und Dokumentationen hinzugefügt.
Wenn Sie daran denken, SproutCore zu verwenden / auszuwerten, ist dies der richtige Zeitpunkt. Und SproutCore beeindruckt mich jeden Tag mit seiner Leistungsfähigkeit. Trotzdem gibt es viele Ecken und Kanten, was sich jeden Tag verringert.
Einige Ressourcen:
SproutCore Wiki
API-Dokumente
Kürzlich hinzugefügt für die Datenspeicher-API (was ein sehr wichtiger Teil ist)
quelle
Ich habe mit einem Unternehmen zusammengearbeitet, das SC für die Neugestaltung seiner Flaggschiff-App verwendet. Hier sind meine Gedanken:
Ich wirklich wie das MVC - Layout einer SC - App. Es ist etwas, von dem ich denke, dass es anderen JS-Frameworks fehlt. Ihr verbindliches Framework macht das Aktualisieren von Ansichten zum Kinderspiel.
Die beste Dokumentation war im Code selbst.
Das braucht bessere Dokumentation / mehr Beispiele. Ihre Beispiele sind genug, um Ihnen den Einstieg zu erleichtern, aber fortgeschrittene Dinge werden die meisten Benutzer überraschen.
Die Datenzugriffsschicht ist zu kompliziert. Es ist ein riesiges Rätsel. Sie müssen die Dokumentation wirklich stärken oder mehr Beispiele bereitstellen, damit die Menschen sie richtig nutzen können. Auf der anderen Seite scheint es sich um ein wirklich mächtiges fast ORM-Framework zu handeln.
Ich mag die Tatsache, dass sie Stresstests machen.
Das Fehlen eines Gitters ist eine echte Belastung. Viele, wenn nicht die meisten Apps, benötigen Raster. Das heißt, SC ist ein MVC-Framework mit vollem Funktionsumfang, kein Framework mit EXTJS-Listen für Widgets (Komponenten).
Ein Großteil des Codes schien zu komplex zu sein. Immer wenn eine Methode länger als 10-30 Zeilen wird, sollte sie wirklich aufgeteilt werden, um die Lesbarkeit zu verbessern.
Die vielleicht größte Überlegung ist folgende: Wenn Sie an einem Projekt arbeiten und SC in Betracht ziehen, werden Sie echte Probleme haben, kompetente Entwickler zu finden, um daran zu arbeiten. Das ist vielleicht gut für ein kleines persönliches Projekt, aber Sie gehen ein Risiko mit einem großen Projekt ein, das gewartet werden muss.
Die IRC-Unterstützung war phänomenal. Die Jungs auf diesem Kanal sind wirklich hilfreich.
quelle
Stöbern Sie einfach in den Sproutcore-Gruppenbeiträgen von Google Groups, um ein Gefühl dafür zu bekommen, was los ist.
Vor einigen Wochen hat sich jemand über die Dokumente beschwert, da er ein Neuling ist, und im Grunde hat er folgendes bekommen: "Wenn es dir nicht gefällt, warum hilfst du nicht, die Dokumente zu erstellen" ... na duh !!
Sie werden Probleme wie diese sehen, seit es anfängt. Vor ein paar Wochen fragte jemand die Gruppe, wie man mit Sproutcore einen Hyperlink erstellt. Ich meine, LOL, es dauert anscheinend Stunden, um einen einfachen Hyperlink zu erstellen.
Sproutcore macht keine Werbung dafür, wer sein Framework in der Natur einsetzt: normalerweise kein gutes Zeichen.
Es wird behauptet (nicht von Sproutcore selbst afaik), dass Apple es benutzt, aber wenn Sie genau hinsehen, werden Sie sehen, dass Apple eine eigene Codebasis hat.
Ich persönlich fand, dass Sproutcore mit Fehlern durchsetzt ist, dass das Fehlen einer einfachen Tabellenansicht ärgerlich, unvollständig oder nicht funktionierend ist und das Fehlen von Dokumentation und sogar das Fehlen vollständiger TESTS einfach keine gute Grundlage ist, auf der man aufbauen kann.
quelle
Ich benutze SproutCore und es ist einfach toll. Wir sind von jQuery auf SproutCore umgestiegen , da jQuery eine kleine Reihe von Dienstprogrammen und SproutCore eine schöne Architektur auf hoher Ebene bietet.
Wir haben diese Javascript-Bibliotheken in der folgenden Reihenfolge ausgewertet:
Unsere Topliste:
Natürlich gibt es noch mehr Toolkits, aber diese haben wir ausgewertet. Abschließend kann ich SproutCore jedem empfehlen, der Desktop-Anwendungen mit Javascript erstellt. Wenn Sie nur ein einfaches Javascript benötigen, wie Datumsauswahl usw., empfehle ich jQuery.
Nur noch ein Tipp. Zum Zeitpunkt des Schreibens dieser Antwort ist SproutCore 1.0 die neueste stabile Version. Leider ist es ziemlich alt und wir verwenden die neueste Version, die auf der Github-Seite von SproutCore zu finden ist . Das kann ich nur empfehlen.
quelle
Wenn Sie versuchen, in SproutCore einzusteigen, empfehle ich Ihnen, sich in die SproutTweets-Beispielanwendung einzuarbeiten. Viele der leistungsstärkeren Konstrukte (Status, dynamisch geladene Frameworks, ein nützliches Beispiel für eine Datenquelle) sind dort enthalten.
Sie finden die SproutTweets-Anwendung auf github http://github.com/sproutit/sproutcore-samples/tree/master/apps/sproutweets/
Auch wenn Sie nicht beabsichtigen, SproutCore in einer Produktionsanwendung zu verwenden, müssen Sie sich näher damit befassen, um einen leistungsfähigen Ansatz für die Programmierung von Javascript-Anwendungen zu finden - insbesondere mit KVO und Mixins (Aspekten). Viel großartige Architektur zum Nachdenken und Lernen.
Letzter Punkt: Der IRC-Kanal kann weitaus hilfreicher sein als andere Informationsquellen, abgesehen von einigen Tiefen-Diskussionen in den Google-Gruppendiskussionen.
quelle
Ich habe SproutCore in der Vergangenheit benutzt. Mir wurde ein Projekt zur Entwicklung automatisierter Web-Testskripte mit dem Tool Selenium RC übertragen. Selenium RC wurde entwickelt, um auf reguläre HTML-IDs und Klassen abzuzielen, aber SproutCore kompiliert die Element-IDs so, dass die Element-IDs pseudozufällig sind. Daher musste ich die API für SproutCore herausfinden, damit ich die Element-IDs aus dem Ansichtsbaum herausfinden konnte.
SproutCore hat eine enge Analogie zu Compilern. Wenn Sie zu viele Elemente importieren, die für Ihre Webseite erstellt werden, besteht die Möglichkeit, dass die IDs im Namespace kollidieren, wenn Sie Ihre Anwendung mit jQuery erstellen. Wenn Sie Ihre Webseite mit jQuery erstellen, sind alle IDs von HTML-Elementen global. Es gibt keinen lokalen Geltungsbereich wie in einer kompilierten oder interpretierten Sprache.
SproutCore verwaltet den HTML-Inhalt für Sie. Die Ansichten werden mit Javascript aufgebaut und dann kompiliert. Wenn Sie das SproutCore-Lernprogramm durcharbeiten (und ich bin mir sicher, dass es in SproutCore keine Dokumentation gibt, sollten Sie versuchen, dies für eine Geschäftsanwendung zu vermeiden), werden Sie feststellen, dass Ihr fertiges Projekt ID-Elemente von "sc - ###" enthält. Namespace-Kollisionen werden auf der Website behoben, sodass Sie schneller arbeiten können.
Es gibt jedoch große Bedenken. Die Dokumentation ist nicht gut genug, um zu erklären, warum die Leute sie verwenden sollten. Das Projekt ist OpenSource, aber wenn Sie sich ein Bild davon machen, wie die Ansichten aufgebaut sind, wird es schwierig, das niedrigere Javascript zu verstehen. Javascript ist eine funktionale Sprache, aber ich finde etwas falsch mit dynamischen funktionalen Sprachen. Es gibt einfach zu viel Flexibilität. Ich stecke Scala ein.
Die letzte Ausgabe. SproutCore kann langsam sein. Aber es ist ein Preis zu zahlen
quelle