Thursday, May 7, 2015

Desktop Web App Development For Windows

Microsoft is making Windows 10 a highly desirable place for developers of Open Web Apps and Chrome Apps to port to Windows Universal Apps. In fact, Windows 10 is going to provide the most functional set of low-level capabilities available in a "packaged" app. To get less restricted functionality one would have to turn to nw.js (formerly called Node Web Kit) or Electron (formerly called Atom Shell). The Windows Universal App API available in Windows 10 (and in large measure, Windows 8.1 [Windows 8 was significantly weaker]) puts the Chrome App's API and even Firefox OS's API to shame.

I could write a really long post about the failings of the Chrome App API, but why bother; Google seems to have stopped listening to anyone.

Below is a guide to resources for doing Windows Web App Development.

General (BUILD 2015, why you might care about this platform):

I was present at the first Window NT developer conference, the Windows 95 launch, the (now infamous) "Cairo" conference and numerous other such events. The Build 2015 event was the most exciting (and I was attending this one remotely).

Day One Keynote Presentation | Build 2015 | Channel 9 (Long but fun.)

Day 2 Keynote Presentation | Build 2015 | Channel 9 (Long. First half hour is boring... then it gets fun.)

Getting started with Windows 10 Desktop Web Apps:

They provide a free book, geared at Windows 8.1, works well enough for Windows 10.
Free ebook: Programming Windows Store Apps with HTML, CSS, and JavaScript, Second Edition
(Note to Google, this is called tutorial documentation... it is significantly more helpful than 3 minute fluffy videos.)

API Reference:

Windows API reference for Windows Runtime apps - Windows app development
(Note to Google, this is what a real API looks like.)

Overview Videos:

JavaScript Frameworks in Your Apps and Sites from WinJS and Beyond | Build 2015 | Channel 9
Pay particular attention to the alternate frameworks in this one. WinJS is rather fat, not really an issue on the desktop, but if you need to go lower-end, alternatives may be desirable. If you have existing code, the various projects can help, or at least give you CSS to help with styling.

"Project Spartan": Introducing the New Browser and Web App Platform for Windows 10 | Build 2015 | Channel 9
The Spartan browser will be the driver behind Windows 10 Desktop Web Apps... it is likely to be competitive with Chrome in standards implementation by the time it releases (it is getting close already, passing Chrome in ES6 features present, lags in HTML5 though).

Hosted Web Apps and Web Platform Innovations | Build 2015 | Channel 9
So, from your server-based web app, did you ever want to let your users easily back up their data on a local disk? Access high-speed encryption? Real printing? The desktop notification system? This may blow your mind.

The Future of TypeScript: ECMAScript 6, Async/Await and Richer Libraries | Build 2015 | Channel 9
TypeScript is not essential, but it has been shown to produce significantly lower error rates than using JavaScript alone.

Tools to Help With Development (all are free):

Free Dev Tools - Visual Studio Community 2013

Visual Studio Code


Whether or not you are developing for Windows, I recommend TypeScript for JS development.


  • This site contains WinJS, a full-blown (fat) Javascript that implements the new Windows UI.
  • It also contains similar support for React, Knockout, AngularJS and Bootstrap.
  • If you are not using one of these in your existing code, I suggest you take a look at the Bootstrap CSS there for hints on styling.
  • I would only use WinJS full-blown for apps I was aiming at the Desktop/Laptops and high-end tablets and phones. It would take nearly two seconds just to parse the JS/CSS to DOM on a low-end phone.
  • I haven't tried it yet, but consider using zepto instead of jQuery if you go the winjs-bootstrap route.
  • Microsoft allows you to use any framework you like in you app, but strongly encourages you to blend in with the platform. (I'll have to agree that most customers would likely prefer that, so it is in your best interests.)

Phone apps via Cordova (I've not watched these yet):

This is a secondary way of getting to the platform. Under Windows 10, one JavaScript Universal Windows App can target desktop, tablet, phones and much more.

Getting Started with Cross-Platform Mobile Development with Apache Cordova | Build 2015 | Channel 9

Getting Great Performance Out of Cordova Apps | Build 2015 | Channel 9

No comments:

Post a Comment

Now allowing anonymous comments (but they are moderated).