260 likes | 364 Views
A Dip in the SPA get wet with Single Page Apps. Ward Bell www.ideablade.com. http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2159. Single Page Application. Rich and responsive like a desktop app but built with HTML5 and JavaScript. Why not just build a desktop app?.
E N D
A Dip in the SPAget wet with Single Page Apps Ward Bellwww.ideablade.com
http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2159http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2159
Single Page Application Rich and responsive like a desktop app but built with HTML5 and JavaScript
Mobile platforms Anti-plugin bias “Shift in direction”
Not Widgets But they inspire with their responsiveness Brett Victor: http://vimeo.com/36579366 http://worrydream.com/bartwidget/
Single Page Application A web page hosts layout & content composed dynamically on the client with JavaScript
Demo: We might go here Noyes UpshotDataControllerDemo
Demo: We’ll build TOGETHER SPA Demo 3_ExtTmpls
SPA Architecture Visible UIHTML/CSS Web UIHTML/CSS/JS ApplicationJavaScript NavigationJavaScript Data ServicesJSON/XML Data AccessJavaScript Offline Local Storage Server Client
Client JavaScript Libraries history.js jQuery & friends nav.js DOM / AJAX knockout.js MVVM Data & Model Management upshot.js Navigation
MVVM with knockout.js http://jsfiddle.net/wardbell/uzrCN/1/
knockout (ko) on jsfiddle Explore Ryan Niemeyer’s fiddles: http://www.knockmeout.net/2011/08/all-of-knockoutjscom-live-samples-in.html
upshot.js • Microsoft client JavaScript library • By ASP.NET team • Pre-beta! • Learn: http://www.asp.net/single-page-application • Open source: http://aspnetwebstack.codeplex.com/
upshot.js • Client-side data management • call services (query, save) • cache data as model objects • change tracking & validation • Plays nice with KO • Open data source (potentially) • ASP.NET Web API Data Controller • WCF RIA Domain Services
Web APP not Web Site Web development experience does not prepare you to build SPAs
Closer to Silverlight apps Similar problems and solution patterns • Async services • Client-side application & business logic • Long-lived client-side state • 2-way data binding (MVVM) • Coping with bad connections
Not Ready For Prime Time Explore … have fun … beware!
Upshot far from ready Unstable libraries No clear library winners New JavaScript coding practices Weak tooling (intellisense, debugging) Browser incompatabilities
upshot premature Ship date? Documentation Samples (most don’t work) “To Do”severywhere Multi-part keys Model navigation Projections/Includes Metadata anomalies Heavy payload
Resources • Steve’s SPA video http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2159 • Steve Sanderson blog http://blog.stevensanderson.com • ASP SPA http://www.asp.net/single-page-application • Bart Jolling Tutorial http://bartjolling.blogspot.com/2012/02/building-single-page-apps-with-aspnet.html • John Papa Knockout video course on PluralSighthttp://www.pluralsight-training.net/microsoft/Courses/TableOfContents?courseName=knockout-mvvm • Brian Noyes DevConn Demoshttp://briannoyes.net/2012/03/28/DevConnectionsSlidesAndDemosndashUpshotAndPrism.aspx
www.ideablade.com @wardbell wardb@ideablade.com