With the introduction of universal Windows apps at //build 2014, and the announcement of Windows Phone 8.1 that includes support for writing apps in HTML, CSS, and JavaScript, we do have some resources that are starting to emerge.

First, my newly-released second edition, http://aka.ms/BrockschmidtBook2, is very applicable to Phone apps. I didn't have time to spell out all the differences, but there is a summary of what to watch out for in Chapter 1, namely a few differences in controls and some parts of WinRT that aren't on the Phone.

Second, watch the Building Apps for Windows Blog for material in this area. For example, an upcoming post will spell out the controls story between Windows (WinJS 2.0) and Windows Phone (WinJS 2.1).

Third, Josh Williams and Ryan Salva did a demo session on building a universal app with HTML, CSS, and JavaScript at //build, which you can find on http://channel9.msdn.com/Events/Build/2014/2-540. What you'll see is that they do nearly all of the work in the Shared folder of the VS project, making only one small change at the end of the session to switch the Hub control in the Windows Store app to Pivot in the Phone app…the two controls, in fact, are identical in their API except for the top-level object names, so you just change the names and voila! You're in business.

Finally, there is a post on the Visual Studio blog on universal apps: http://blogs.msdn.com/b/visualstudio/archive/2014/04/08/building-windows-phone-8-1-apps-in-html.aspx.

More is certainly to come.

Programming Windows Store Apps with HTML, CSS, and JavaScript, Second Edition, is now released! You can find this free ebook (PDF, Mobi, and epub) it on http://blogs.msdn.com/b/microsoft_press/archive/2014/04/08/free-ebook-programming-windows-store-apps-with-html-css-and-javascript-second-edition.aspx. Companion content is on http://download.microsoft.com/download/6/6/5/665AF7A6-2184-45DC-B9DA-C89185B01937/Programming_Windows_8_Apps_HTML_CSS_JavaScript_2E_CompContent.zip and the videos are on http://microsoftpressbooks.azurewebsites.net/programming_windows_apps_with_html_2ed/.

I have to say that it's ironic that although the book covers Windows 8.1 and is mostly applicable to Windows Phone 8.1 as well, announcements at //build changed the landscape almost immediately. For one, WinJS is now open source and isn't specific to Windows Store Apps, and WinJS 2.1 for Windows Phone has some differences from WinJS 2.0 for Windows Store apps. Oh well. Guess it's onto the third edition now! Still, I suspect that this book, being free and the most comprehensive, will continue to be the primary WinJS reference, open source or not.



The video of my talk at //build 2014 is online: http://channel9.msdn.com/Events/Build/2014/2-638. "Understanding Customer Patterns: Instrumenting Your App for Telemetry and Analytics." The written version of this is what I published on the App Builder's blog recently: http://blogs.windows.com/windows/b/appbuilder/archive/2014/03/20/instrumenting-your-app-for-telemetry-and-analytics.aspx.

Thanks to everyone that downloaded my 15+Puzzle app and played with it a bit. I also had a number of folks in the audience do it during the talk, which made a compelling presentation. And yes, I did give away all the prizes I had…about 6 people approached me afterwards showing the app with a medal. 🙂


This page is the collection point for errata in my book, Programming Windows Store Apps with HTML, CSS, and JavaScript, Second Edition. If you find an error, please check the know error list below. If you've found a new error, please leave a comment with the details and I'll migrate into the body of this post. Thank you!

Page numbers given here refer to the PDF, but I also try to give the name of the nearest section header or sidebar title.

Multiple Chapters:

  • The website http://dev.windows.com has been revamped to include Windows Phone, Desktop, Hardware, and IE, so a "Dashboard" link no longer appears at this URI. To get to the right page, use the drop down along the top of the page to select "Windows Store Apps". This takes you to http://msdn.microsoft.com/en-US/windows/apps/ where "Dashboard" is visible.


Chapter 1:

  • Page 41: As of Windows 8.1 Update 1 (released shortly after the book was complete), local loopback and "brokered WinRT components" allow for inter-process communication between side-loaded apps and desktop processes. These capabilities are specifically designed for side-loaded apps in enterprise scenarios, and are not supported for apps installed via the Store. For more information, see Brokered WinRT component project templates now available (Building Apps for Windows Blog) for all the details.

Chapter 8:

  • Page 432: In the footnote I mention that WinJS.UI.ViewBox was removed for WinJS 2.0. Apparently it made it back in late in the game, so you can use it directly instead of writing your own code as shown in the book.
  • Page 453. I mention that the WinJS.UI.Hub control is only present in WinJS 2.0 for Windows 8.1. On Windows Phone 8.1 and WinJS 2.1 you have the WinJS.UI.Pivot control instead. The two are supposed to have virtually identical interfaces, so you should be able to replace WinJS.UI.Hub with WinJS.UI.Pivot and WinJS.UI.HubSection with WinJS.UI.PivotItem section in your HTML and be in business. I have not tested all this, however.


Chapter 11:

  • Page 612, last "Hint" under the section, "KnownFolders and the StorageLibrary Object" (or just above "Removable Storage")–the Library management sample now shows the proper use of removeEventListener for definitionChanged. (Got that bug fixed!)


Chapter 13:

  • Page 707: numbering in the list should start at 1.


Appendix D:

  • Page 1303: The AppointmentProviders example in the companion content has a bug on line 60 of html/manageAppointment.html, where the method call should be reportCompleted (it's missing the "d" at the end) and will throw an exception as it currently exists.