2013-07-25 8 views
7

Inspiriert von John Papas Video bei Pluralsight begann ich SPA zu lernen. Es erscheint ziemlich interessant. Bevor ich jedoch ganz darauf eingehe, möchte ich einige meiner Fragen klären.Warum SPA (Single Page App)?

  1. Von dem, was ich gelernt habe, ist SPA ein schlanker Server, Fett-Client-App. Ich denke, das sollte gut für kleine Apps funktionieren, wie es John Para gezeigt hat. Skaliert es? Wie groß kann es sein? Hat jemand Erfahrung damit?

  2. In SPA scheinen Sie die gesamte Geschäftslogik in JavaScript zu codieren. Ist das überhaupt eine gute Idee? Wie verstecken Sie das Geschäftsgeheimnis?

Mit meinem Hintergrund in erster Linie in C#/WPF/.NET, JavaScript zu bewegen scheint sehr schwierig zu sein (na ja, habe ich gelernt, ein wenig JavaScript mehr als 10 Jahre - ich habe es gehaßt und berührte es nie wieder) . Mit meinem begrenzten Wissen stieß ich auf einige Probleme. Das Debuggen von JavaScript scheint für mich ein Albtraum zu sein. Die hochgelobte Komponente Breezejs scheint sich noch in einem frühen Stadium zu befinden (z. B. unterstützt sie keine UOW, unterstützt nicht CascadeDelete, unterstützt keine Enums). Also, ich frage mich, ob es an der Zeit ist, hineinzuspringen?

+1

Warum sagen Sie auch, dass es die Arbeitseinheit nicht unterstützt? Ich habe ein paar Beispiele dafür, die es direkt unterstützen. –

+0

ist es viel effizienter, 1008 CPUs zu haben, die 1000 Clients unterstützen, als es 8 CPUs zu haben, die das gleiche Publikum unterstützen ... – dandavis

+0

@kadumel, wie machst du es? Ich habe Johns erstes Video angeschaut, das UOW verwendet, aber nicht Breeze. Dann verwendet er in einem anderen Video Breeze, aber nicht UOW. Ich googelte und fand diese Seite http://stackoverflow.com/questions/15113804/breeze-with-a-unit-of-workredefinition-pattern. – newman

Antwort

8

direkt auf Ihre Fragen:

  1. Da die Server-Logik dünn ist, dass Sie irgendeine Art von Cloud-Service nutzen können und sie skaliert ziemlich gut. Der Großteil der Logik wird von den Browsern Ihrer Benutzer gehandhabt.
  2. Sie sollten vorsichtig sein, wenn Sie auf Client angewiesen sind. HTTP-Protokoll kann leicht manipuliert werden. Vergessen Sie nicht, dass Sie die Validierungslogik sowohl auf Client- als auch auf Serverseite immer durchführen sollten! Auch die "versteckte" Validierung und andere "geheime" Logik sollten sich nur auf dem Server befinden.

Debugging JavaScript ist gar nicht so schlecht. Sie können die integrierten Tools verwenden (Inspect-Element in Chrome und FireBug in Firefox usw.). Außerdem gibt es viele nützliche Tools von Drittanbietern, die Ihnen beim Debuggen helfen.

Wenn Sie ein neues Projekt nur für Ihren eigenen Gebrauch starten, rate ich Ihnen, den SPA-Ansatz zu versuchen. Wenn Sie Produktionscode schreiben, sollten Sie ein Experte auf diesem Gebiet werden und dann versuchen, diese Technologien zu verwenden.

0

i hinein seit Monaten suchen. Meine Schlussfolgerung ist, Knockout mit einem leichten Pfad zu verwenden. Js oder sammy.js für Ihre URL. Ich benutze Json mit einem Standard Visual Studio MVC (der Json zurückgeben kann) als Backend. Ich bin immer noch nicht fertig mit dem Projekt, aber so weit so gut. Es ist blitzschnell, elitär und leicht. Halten Sie sich von den Frameworks fern. Sehen Sie sich die Standardbibliotheken an: wie sie geschrieben sind; Sie können so viel JavaScript lernen. Schließlich Debuggen mit Chrome oder Explorer-Entwickler-Tools. Viel Glück

1

Ich glaube SPA's bieten einen besseren Rahmen für Business Intensive-Anwendungen sowie einfachere Anwendungsworkflows wie die von Facebook. Ich habe mit Multi-Page-Anwendungen für Banking-Anwendungen mit komplexen Workflows gearbeitet und es ist entmutigend, mit allem umzugehen und trotzdem die Anwendungsleistung aufrechtzuerhalten.

Aber ich denke, Knockout Alone wird nicht in der Lage sein, große Anwendungen zu handhaben, da es in der Natur verbunden ist. Ich würde etwas wie Backbone Marionete oder Angular für dieses Abenteuer empfehlen.

Ich baue ein Framework für große SPA-Entwicklung für die Open Source-Community, so dass ich glaube, dass es die richtige Richtung ist.

Interessierte Parteien können meine Demo-Seite unter http: \ saqibshakil.github.io besuchen. Dort habe ich einige meiner Arbeiten gezeigt.

Verwandte Themen