Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News More Capabilities at a Higher Speed: WinJS 2.0

More Capabilities at a Higher Speed: WinJS 2.0

This item in japanese

Lire ce contenu en français

The Windows Library for JavaScript (WinJS) debuted with Windows 8 to provide JavaScript developers an efficient way to create Windows Store apps.  Version 2.0 will be part of the Windows 8.1 launch, and Microsoft promises increased features as well as vastly improved performance which should be of benetfit to all users but particularly those running devices powered by ARM or Atom-based CPUs.

During “What’s New in WinJS?”, a Build presentation by Paul Gusmorino, details emerged on the scope of the changes that will be seen with WinJS 2.0.  Gusmorino listed several Win8.1 apps that have switched to 2.0, including Store, Music, and Skype among many others.

Looking at the design goals for WinJS 2.0, both developers and users will benefit from the inclusion of more user-interface patterns and improved speed.  The ListView control  in 2.0 is approximately 30% faster than in WinJS 1.0 (as reported on a Microsoft Surface.)  In Gusmorino’s demo, the Windows Mail app was used to exhibit the increased speed of the control, and it was visibly faster.

WinJS 2.0 At a Glance

Improved Controls

  • List view
  • App bar


  • Scheduler
  • Dispose model
  • Async debugging

New Controls

  • Hub
  • Navigation bar
  • Search box
  • Back button

Building Blocks

  • Binding template
  • Repeater
  • Item Container

Interestingly for a touch-centric OS, the controls List view and App bar benefit from improved keyboard support.  List view will add support for a Vertical Grid and Grouped List Layouts providing additional flexibility when creating user interfaces.

Controls aren’t the only improvement, the internals of the library are receiving improvements as well.  Control cleanup is made easier with the use of the dispose() method which will remove a control and all of the outstanding references to it so garbage collection can function properly.  The dispose() method is also hierarchical in that a parent object with children objects can all be removed with a single dispose() call to the parent object.  Asynchronous debugging is made easier as the call stack is more informative as it shows a more comprehensive listing of the execution steps leading to the call of an asynchronous method.

For more information on the new and updated controls, check out the WinJS 2.0 preview documentation.

Rate this Article