Software Development – Options for Windows 8.1 IoT

Here’s a quick round up of software development options that are either mentioned in the documentation or hinted at in the image.

Visual C++

This is the only currently supported development platform. The Windows IoT image supports only a limited subset of Win32 – so most existing applications will not run without modification. There’s a few extra APIs for Arduino functionality. The Galileo SDK has been made available as a Nuget package and has been open-sourced on GitHub

Silverlight (C# or Visual Basic)

The Windows IoT for Galileo image shipped with an embedded variant of Silverlight. It’s a .NET-style framework though, so not a repeat of the “Silverlight for Windows Embedded” that was present on Windows Embedded Compact, which was a native XAML presentation framework only very loosely based on Silverlight. It’s surprising to see Silverlight deployed here, considering the current tooling assuming that a Silverlight application must have a GUI, and that this framework seems superficially most similar to that currently found as Silverlight framework on Windows Phone – which is being phased out in favour of WinRT.

Javascript (WinRT)

I noted in my investigation of the image that the image still contains WWAHost – a component used within Windows 8.x to host WinRT apps developed using Javascript. Much of the package management system that underpins the WinRT ecosystem remains intact too – leaving me to believe we could see support for IoT development using Javascript and the WinRT framework. This was further reinforced by the fact that the developer sign-up questionnaire specifically asked about Javascript and WinRT app development experience – but it’s surprising to see such a high-level development platform in such a barebones environment nonetheless.