Rich Client Applications With ASP.NET
Web Developers can use client-side libraries such as Backbone and Knockout to structure their client-side code better and enable richer client experiences. We point to some resources.
Unlike JQuery, which mainly focuses mainly on DOM manipulation, Backbone.js and Knockout.js focus on separation of concerns in your code, such as separating your data model from the UI elements. Backbone.js helps you create MVC-like structure and provides RESTful persistence. Models allow separation of data from the View, whereas Routers provide convenient routing between client-side pages. Knockout.js on the other hand focuses on declarative bindings (similar to XAML bindings) of your models to HTML elements and dependency tracking – this allows an MVVM style approach. However both libraries allow other MV* patterns to be followed.
Some resources that could help you get started -
- 20-min presentation of Knockout by Steve Sanders
- Knockout tutorial
- Backbone tutorials
- A sample SPA with Backbone.js and ASP.NET Web API
- Some tips and gotchas for backbone (with ASP.NET)
- A couple of free Pluralsight courses for knockout.js with ASP.NET
These are by no means the only libraries/frameworks available – there are several others, some of which we covered in an InfoQ survey earlier this month. Steve also lists the eight top JS frameworks for rich client-side applications along with interesting comparisons and insights about the direction of the projects.
ASP.NET team is also working on ASP.NET SPA, which was supposed to ship with MVC 4 but couldn't make it. It is currently in preview.