- Elegant dependency tracking - automatically updates the right parts of your UI whenever your data model changes
- Declarative bindings - a simple and obvious way to connect parts of your UI to your data model
- Flexible and sophisticated templating - construct a complex dynamic UI easily using arbitrarily nested templates
- Trivially extensible - implement custom behaviors as new declarative bindings for easy reuse in just a few lines of code
- Can be added on top of your existing web application without requiring major architectural changes
- Compact - around 25kb before gzipping
- Works on any mainstream browser (IE 6+, Firefox 2+, Chrome, Safari, others)
- Comprehensive suite of specifications (developed BDD-style) means its correct functioning can easily be verified on new browsers and platforms
Developers who’ve used Silverlight or WPF may recognize KO as an example of the MVVM pattern; developers more familiar with Ruby on Rails or other MVC technologies may see it as a real-time form of MVC with declarative syntax. In another sense, you can think of KO as a general way to make UIs for editing JSON data… whatever works for you :)
Sammy tries to achieve this by providing a small ‘core’ framework and an ever-growing list of plugins for specific functionality. The core includes a simple API for defining applications which are made up primarily of routes and events. By driving application development around a small and specific API, Sammy attempts to keep your code organized while still allowing a lot of breathing room to define your own style and structure.
In the modern age of super-fast browsers and user expectations about the responsiveness and perceived speed of web applications – single page AJAX applications have become the rage (GMail, etc.) Furthermore, instead of just fetching full HTML and rendering it asynchronously, fetching raw data (JSON) and rendering on the client side has not only become possible – it’s actually very common.
Sammy continues to be fueled by the community and real-world production applications. It’s small enough that it can stay out of your way, and soon it will integrate with the DOM/AJAX Framework of your choice.
What HTML would have been had it been designed for web apps.
Spine is opinionated in its approach to web application architecture and design. Spine's architecture complements patterns such as de-coupled components and CommonJS modules, markedly helping with code quality and maintainability.
Spine is tiny, the library comes in at around 500 lines of CoffeeScript, that's about 2K minified & compressed. Being lightweight and simple is fundamental to Spine.
It guides you to successfully completed projects by promoting best practices, maintainability, and convention over configuration.
AFrameJS is an MVC application development library, not a DOM manipulation library! AFrameJS leaves the DOM manipulation to jQuery, MooTools, or Prototype, instead providing the parts necessary to create MVC applications.
MVC is a programming paradigm that has been common in other languages for many years. In MVC, Models represent data and its operations. Views are the presentation of the data contained in a model. Controllers are the glue that bind the two together. MVC separates these three concepts, there is no mixing as is commonly found in web apps today. The benefits of MVC are numerous, but the main goal is to reduce the mental load for the developer. Modules focus on one goal at a time. This allows for smaller modules, easier testing, a higher chance of code re-use.
As web development matures, MVC based applications are becoming increasingly common. AFrameJS is being developed to fill the need of having a true MVC framework to develop applications with. Backbone and Knockout-JS are two similar libraries that address this need, now AFrameJS does too.
SproutCore is an open-source framework for building blazingly fast, innovative user experiences on the web.
SproutCore applications move business logic to the browser so they can respond to your users' taps and clicks immediately, avoiding an agonizing roundtrip across often intermittent network connections.
The goals are:
- Organisation of client-side web app code using the Model-View-Controller pattern.
- Simple model implementation for handling non event-related concerns.
- Simple routing layer for hash-tag change based navigation, preserving the back-button
- Easing the pain of building fast, responsive interfaces.
- Exploring the possibilities of offline web apps.
Choco brings the MVC to the client side!
Composer.js is an MVC framework for MooTools >= 1.3. While there are some very
good MVC frameworks out there (backbone.js and Spine, which composer.js pulls a
lot of functionality from), the options for MooTools are lacking. We needed
something as good as the jQuery MVC frameworks but for MooTools.
The framework is now in beta, and is being used to power two projects we're
actively working on. The more we use it, the more bugs we fix and the more we
find what belongs and what doesn't. In other words, it works great, but it's
still growing and changing slowly.
Maverick lets you
- separate application logic (controller) from views and data gathering (models)
- create views and instantiate them with different context
- route URIs to controllers using regular expressions
- use centralized event handling
- change URI on browser address bar without refreshing the page (fallback to updating the hash)
- execute multiple model calls at a time and provide a single callback function
- organize file structure the way you want (so that later you can combine all views, models and controllers into a single .js file in production for better page speed) and much more.