Picking the right template (Click the image to enlarge.)The first thing I picked up on was a default.js file that controls the application's startup, how it interacts with the OS (like handling suspension), and so on; it is very similar to what app.xaml does. In fact, the project structure is quite similar to what I have been seeing in XAML Metro projects (Figure B). Figure B
A snapshot of the default project structureI am a little surprised the system is not using jQuery out of the box, because Microsoft has made a lot of moves in that direction for ASP.NET MVC. Instead, what we see is a collection of functions (Figure C) that is passed to a function that maps the functions to the page's events. Figure C
Code registering itself to the page. (Click the image to enlarge.)
There are three major API components: the WinRT pieces, the HTML/CSS DOM, and the LiveConnect API. The WinRT pieces are almost entirely identical to what is available to Metro XAML applications; the big differences are in UI controls, and a few things related to the XAML model. The HTML/CSS DOM available is a subset of the full HTML5 stack. LiveConnect is a system for performing logons and data saving across a variety of platforms (iOS, Android, Web, Windows 8, and Windows Phone).
Justin James is an OutSystems MVP, architect, and developer with expertise in SaaS applications and enterprise applications.