I hope you’ll indulge me showing my age a bit to start this blog post. I remember the release of Netscape Navigator 4.0 and Microsoft Internet Explorer 4.0. There was quite a bit of hype behind those browsers, as people were predicting you wouldn’t need an operating system any longer, just a browser. Obviously that hasn’t been realized.
However, browsers have become more capable. Implementations have become more standards based. And we, as developers, have access to more power and frameworks than ever before.
While the browser won’t be replacing the OS anytime soon, you can absolutely build apps that behave like they’re locally installed, hosted in the browser. This is the concept of a single page app, or SPA.
I often have developers ask when they should us an SPA, as opposed to a “traditional” website with MVC. The answer is based on what you’re trying to accomplish. SPAs are perfect when you’re trying to simulate a locally installed application. Ride sharing, location sharing, and games are perfect for SPAs. Traditional websites are perfect for sharing information with the public, for ecommerce or other businesses.
But one big thing to keep in mind is that SPA and traditional websites are not mutually exclusive. You could, for example, build an ecommerce site using MVC, and then implement the shopping card UI, both adding items and completing checkout, as an SPA.
If you’re ready to begin the journey into building SPAs, we have several MVAs that can support you.
A great starting point is with Building responsive UI with Bootstrap. Bootstrap is a framework developed by Twitter to be mobile-first, and it simplifies the creation of apps that can scale to different device sizes. It also includes the timeless humor of me and Jon Galloway. And by timeless, I of course mean corny.
The next step is to explore the client side technology. Introduction to AngularJS, Stacey Mulcahy and I will walkthrough one of the most popular frameworks for creating SPAs.
Finally, you need a server to provide the data. In Web API Design Jump Start, Jeremy Likness and I show you how to expose JSON data to clients using an environment you’re already familiar with as a .NET developer.
SPAs can provide that rich user experience across all devices without having to learn a lot of new platforms. With a bit of experience in a couple of new frameworks, you too can meet your users’ needs.
 Admittedly, not always