QCon is a practitioner-driven conference designed for technical team leads, architects, and project managers who influence software innovation in their teams.

Steven Sanderson, Developer at Microsoft

Steven Sanderson

Biography: Steven Sanderson

JavaScript enthusiast, Knockout.js creator, Bristolian, Developer at Microsoft

Twitter: @stevensanderson
Blog

Presentation: Rich HTML/JS applications with knockout.js and no server

Track: The Modern Web Stack / Time: Friday 14:30 - 15:20 / Location: Churchill Auditorium

Modern web applications continue to expand in scope and sophistication. They now commonly appear not only in the browser but also in mobile app stores thanks to technologies such as PhoneGap/Cordova. But can you build one that's maintainable, scalable, and secure? Can you build one quickly? You're going to need some clear architecture and - depending on requirements - some industrial-grade backend infrastructure.

In this demo-focused talk we'll start by looking at Knockout.js, a popular Model-View-* library for JavaScript. I'll demonstrate how its system of observable data and declarative bindings makes it possible to write clean, abstract, and testable application logic without any DOM clutter, and how Knockout automatically updates your UI whenever needed. The resulting clear separation of concerns greatly reduces the potential for bugs in large applications.

We'll also see how the most modern web apps don't necessarily even need a traditional server at all, as cloud backend services have reached an impressive level of capability. I'll demonstrate Windows Azure Mobile Services, which gives you a cloud-based REST-style data store, authentication, push notifications, and a powerful but optional programming model.

Finally, I'll share some tips and lessons learned from current real-world experiences building an app for the iPhone/iPad appstore using these technologies. It is possible to build pixel-perfect mobile apps using HTML/JS, and make them just as animated, responsive, and buttery-smooth as native ones. But there are a few techniques you need to know...