TechEd NA 2013 Sessions | John Papa

John Papa

Evangelist on the loose

TechEd NA 2013 Sessions


Here are the KnockoutJS and SPA presentations I gave at Tech Ed NA 2013 conference in New Orleans in June. Thank you to all who attended … I had a great time and really enjoyed the questions after the session. The deck, abstract and samples are in this post.


Watch the KnockoutJS and MVVM: Tips for Building HTML and JavaScript Web Apps here.

Do you write a lot of HTML and JavaScript code to push and pull data? In this session, learn popular techniques to use data binding to bind your data to your target controls in HTML writing less code, but gaining more power. See how to consume JSON data, use JSON objects in JavaScript, use declarative binding, using KnockoutJS. Also, see how to use the MVVM pattern to write data-centric Javascript code that follows good separation patterns and creates highly maintainable code.

Download the sample knockout demo here, the dump binding handler here, and view the deck here.

Learn More Knockout

If you like this you can check out in my in depth Knockout course at Pluralsight at Building HTML5 and JavaScript Apps with MVVM and Knockout.
ko ps

Single Page Apps

Watch the Single Page Applications with Microsoft ASP.NET here.

Interested in learning more about building Single Page Apps (SPA)? SPAs focus on delivering better user experiences with significant client-side interactions using JavaScript, HTML5 and CSS. Now you can get started with SPA using the ASP.NET SPA Template. This session explores the core pieces that help you build end-to-end SPA solutions including code structure and modularity, using data binding and MVVM, abstracted remote data calls, page navigation and routing, rich data features, and responsive design for mobility. Along the way, we touch on popular libraries such as Knockout, Sammy, and Breeze.

Download the SPA demo here and view the live demo here on Azure, or grab the deck from here.

Learn More SPA

If you enjoyed my Single Page Application Jump-Start course, you will be happy to learn that the source code for the final SPA Jump-Start solution is now available! The great folks at Pluralsight worked with me to host the final solution of Code Camper Jump-Start (CCJS) on GitHub. You can grab the code, fork it, make pull requests, or just browse!


tags: event javascript knockoutjs SPA TechEd
  • Max

    Hello John,
    In your DotNetConf presentation, you mentioned that Gmail is (or could be) a collection of SPAs. I believe you also made mention that if it were an ASP.NET MVC-based collection of SPAs, you could have different controllers serve up the different SPAs (or something like that).

    Could you expound upon that idea and how would you implement it (using MVC, Web API, and the js libraries/frameworks from your SPA jump start)?

    I’m trying to envision and develop a web app that is a collection of SPAs. There would be a shell/container for all the different SPAs. I think I’m wanting to use MVC areas to separate out all the different functional areas of the whole app, including an Admin SPA. At this point, I’m not seeing the forest through the trees in how to make Durandal (and the js libraries/frameworks) work with MVC areas (and the normal MVC stuff) to produce an app that is a collection of SPAs.


    • John

      Max – It is difficult to say generically how I would do this. But I would start with 2 Views in MVC. Each one acts as its own SPA. Each has separate functionality. I would only do this if each one was very different and i had a great reason not to make them be 1 SPA. If I did this, then I’d have each SPA load up and then act normally. When a link needs to go to the other view, it would effectively reload the other SPA (unless you cache, etc).

  • Jarrod

    I would like to second Max’s request. I have also been interested as to how this would work and if/should MVC Areas be used to accomplish this.

  • Will

    I too second Max’s request (or is it I third Max’s request? :) ). It doesn’t look like John Papa is answering too many questions anymore.

  • Bhavin

    Hi Mr.John,
    My question regarding, how to deal with SEO in SPA. Can you give some knowledge or reference about it, how to integrate all SEO features in SPA application.

    Many Many Thanks


  • James Whitfield

    Hey all,
    I have been using the hot towel template excluding breeze implementation (just using durandal, toastr, knockout) and have issues with the viewmodel activate not firing at times and the knockout observables not updating at times even when activate fires. After one or more refreshes, the route will fire and the viewmodel will activate. Was there ever a bug in the javascript installed by hot towel template? I see Code Camper runs perfectly for me? Anyone know? Thanks all.

    • John

      James – Sounds like a timing issue. Make sure activate receives a promise and returns that promise. Try posting to Stack Overflow with a code reproduction.

%d bloggers like this: