3. Why use WinJS?
• Can still use C# libraries
• Power of CSS3 and HTML5
• WinJS’s bindings to native controls and
also has many JS-only extensions for Win8
• JavaScript was always ASYNC
• Better than XAML
6. Getting started with WinJs
• VS2012 (duh)
– VS 2012 Web Essentials
– Blend for Visual Studio
• Online: Roadmap for Windows Store apps
using JavaScript
– http://is.gd/ClIOax
7. So it’s like making a web site?…
• Its HTML5, JS and CSS
• Can use a large number of existing JS libs
• You have some browser limitations
• Watch out for DOM manipulation errors
8. …but not
• COM Wrapped in JavaScript
• Exception driven development
• You don’t have network latency to load
resources
• You don’t have traditional page events
• Tombstoning
• You don’t _need_ jQuery
9. 3rd Party JS Controls
• Existing JavaScript plugins _can_
– Produce problematic HTML
– Break Windows 8 UX guides
• Stick with shipped controls
• Or build your own
• Use those specifically created via a vendor
(Telerik etc)
10. Testing
• C# code can take advantage of built-in
Visual Studio Testing framework
• JS can use Mocha or other JS testing
libraries
12. Using C# Libraries
• Can only reference WinMD libraries
• WinMD libraries can reference portable
and Windows Store libraries
• Unit testing supported
• WinMD libraries CAN reference other
Windows Store and Portable Libraries
13. Async
• You will need to make use of the Promise
pattern
WinJS.xhr({
url:"http://www.example.org/somedata.json"
}).done(function (response) {
updateDisplay(
JSON.parse(response.responseText));
});
http://wiki.commonjs.org/wiki/Promises/A
jQuery normalizes browser quirksBut you don’t have multiple browsersSizzle adds CSS selector queriesThis is native in IE10 (and IE9)WinJS has APIs for thisMost animations can be done with CSS3