Learning WinJS Fundamentals

I’ve just published my first Pluralsight course, WinJS Fundamentals. WinJS is the Javascript framework developed by Microsoft to help with developing Windows 8 apps on the Javascript / HTML stack – which is the alternative to the C#/XAML stack on this platform.

Why Learn WinJS?

So why would you want to choose Javascript – and with it, WinJS – over C# and XAML to build Windows 8 applications? From my view these are the top 3 reasons to do so:

  • 1. Javascript is a Really Hot Technology
    Javascript is becoming really popular with web development (from jQuery to Angular.js) and server side development alike (Node.js). On Github Javascript is the #1 language used in repositories as of December 2013. It’s hard to find a more popular language than Javascript today.
  • 2. Microsoft is Investing Heavily in the Javascript Stack
    There is a lot of investment going into the Javascript stack on Windows 8 from Microsoft. In 2012 WinJS 1.0 was released. Only a year later, in 2013 WinJS 2.0 came out with lots of new features and significant improvements. I am expecting this investment to continue for the coming years, WinJS and the Javascript stack in Windows 8 becoming even more powerful.
  • 3. Most 1st Party Windows 8/8.1 Apps are Already Built Using Javascript / HTML
    Do you know what technology was used to build the email app on Windows 8.1? Skype? Music? Games? Video? Weather? News? Travel?

    win8Apps2
    These – and most other preinstalled apps – were all built on the Javascript/HTML stack, making heavy use of the WinJS framework. If Microsoft decided this stack was good enough to build key Windows 8 apps with them, it will likely work for your app as well.

What’s In this Course?

The course aims to cover the basics of WinJS, concepts that almost all apps will use. These topics are:

  • Introduction and WinJS Overview
    What the main features of WinJS are and how does WinJS compare to other popular Javascript frameworks like jQuery, Angular.js or Knockout.js.
  • Classes and Namespaces
    Working with classes in Javascript is possible, but the syntax is not very straightforward. WinJS introduces class helpers to deal with classes in a clean and structured way and adds support for using namespaces.
  • Mixins and Events
    WinJS introduces a powerful feature, mixins, to help with code and functionality reuse between classes. Mixins is a similar concept to multiple inheritance and event support for classes is easy to implement implemented using some of the built in mixins like eventMixin.
  • Data Binding
    WinJS has built in data binding support to allow updating the HTML UI of the application from the javascript data source. In this module we’ll be convering one time, one way and two way data binding, as well as data binding converters.
  • Promises
    Promises is an asynchronous programming concept which allows working with asynchronous operations in a nice and clean way. In WinJS, promises are a really important part of most applications, so because of this it is critical to understand them and know how to use them.
  • Pages and Navigation
    By using pages in our application, the app can be structured in a clean and modular way. In this module we’ll be going through the most important things to know on using pages and navigating between them.

If you’d like to watch this course, you can do here, on Pluralsight. If you don’t have a Pluraslight subscription, you can sign up for a free trial and watch most of the course using the trial period.

Other Resources to Learn WinJS

This course is meant to be to give solid understanding of the most important parts of WinJS. If you want to learn more or about different parts of WinJS, here are some further good resources: