Note that there are some explanatory texts on larger screens.

plurals
  1. POJavaScript frameworks to build single page applications
    primarykey
    data
    text
    <p>My goal is to migrate an existing web application to a RESTful <a href="http://en.wikipedia.org/wiki/Single-page_application" rel="nofollow noreferrer">single page application</a> (SPA). Currently, I'm evaluating several Javascript web application frameworks. </p> <hr> <p>My requirements are as follow:</p> <ul> <li>RESTful data layer (like ember-data)</li> <li>MV*-structure</li> <li>Dynamic routes</li> <li>Testing-support</li> <li>Coding by convention</li> <li>SEO-support</li> <li>Browser-History-Support</li> <li>Good (API-) documentation</li> <li>Production-ready</li> <li>Living community</li> </ul> <hr> <h3><a href="http://backbonejs.org" rel="nofollow noreferrer">Backbone</a></h3> <p>The current application is using <code>backbone.js</code>. Overall, <code>backbone.js</code> is a nice project, but I'm missing well-defined structures that determine where what has to happen and how things must get implemented. Working in a bigger team with changing developers this leads to some kind of unstructured code, difficult to maintain and difficult to understand. This is why I'm searching now for a framework, that already defines all this stuff.</p> <h3><a href="http://emberjs.com" rel="nofollow noreferrer">Ember</a></h3> <p>I looked into <code>ember.js</code> the last days. The approach seems very promising to me. But, unfortunately, the code changes almost daily. So, I won't call it production-ready. And, unfortunately, we can't wait for it to be version 1.0. But I really like the idea behind this framework.</p> <h3><a href="http://angularjs.org" rel="nofollow noreferrer">Angular</a></h3> <p><code>Angular.js</code> is a widely spread framework as well, maintained by Google. But I could not get familiar with angular. For me, the structure seems kind of unclear, explanations are missing of the overall responsibilities of each part of the framework, and the implementations feel circuitous. Just to get this straight: this is just my personal impression and might be based on missing knowledge.</p> <h3><a href="http://batmanjs.org" rel="nofollow noreferrer">Batman</a> and <a href="http://meteor.com" rel="nofollow noreferrer">Meteor</a></h3> <p>As I understood, both frameworks need a server part as well. And since we just want a RESTful backend - no matter what language, technic or software, this is not what we want. Further, the backend API does already exist (RoR).</p> <h3><a href="http://knockoutjs.com" rel="nofollow noreferrer">Knockout</a>, <a href="http://canjs.us" rel="nofollow noreferrer">CanJS</a> and <a href="http://spinejs.com" rel="nofollow noreferrer">Spine</a></h3> <p>I did not go any deeper into these three candidates. Maybe this will be my next step.</p> <hr> <p>So my questions now:</p> <ul> <li>Am I missing any good SPA-frameworks?</li> <li>What framework would you suggest/recommend?</li> <li>Would you avoid any of the mentioned frameworks?</li> <li>What is your experience in bigger SP applications?</li> </ul> <hr> <p>PS: I'd would like to recommend a <a href="http://blog.stevensanderson.com/2012/08/01/rich-javascript-applications-the-seven-frameworks-throne-of-js-2012/" rel="nofollow noreferrer">great blogpost</a> from Steven Anderson (core developer from Knockout.js) about the "Throne of JS"-conference (from 2012) and javascript frameworks in general.</p> <p>PS: Yes, I know there are already some question on SO. But since the development is so rapidly and fast for SPAs, most of them are already out-of-date.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload