Microsoft Universal Windows Platform for IoT

Microsoft Universal Windows Platform for IoT

We are going to discuss more about the universal Windows platform in this article. The universal Windows Platform is important to us because it is what’s powering the work that Microsoft is doing on the IoT core. It was introduced with Windows 10 and works across all devices as MS claims.

The IoT Core that Microsoft offers

Getting to this stage was not a quick process for Microsoft and this was a multiyear journey for them. They had been working for a very long time to converge the different APIs across all of our different platforms. Microsoft had numerous desktop programming models over the years to make sure that they can provide a modern programming model that works in the desktop and also had a couple of iterations of programming models on Windows phone and learned a lot from that. Finally they’ve had a lot going on in the Xbox world. Microsoft wanted to make sure that they took all of those programming models and more importantly the underlying operating systems which were mostly separate operating systems and merge them together to be Windows 10.

Cross platform, cross architecture

It’s not just that you can share source code across all platforms which we been able to do that type of stuff with .Net for ages, but it’s the actual compiled binaries by architecture like the x86, ARM and 64-bit. If you have the right architecture, you can just lift that binary and put it in the other device and it will just work.

For us in the IoT world that is very important because we have a lot of different devices and sometimes the debugging process or the deployment process for those is more cumbersome. Sometimes you don’t have a device available to you immediately and  being able to do that work just on your PC and get 90% of it or whatever working on your PC get the app actually going and then deploy to your device just makes for more productive development.

When we say the same operating system across all these devices we don’t mean it’s the same experience for the user, but the application itself should be able to adapt to these different experiences either automatically or explicitly through code that you write to do that. If you look at all the different devices that Microsoft can support with UWP, you see all different types of phones, midsize phones and tablets and large tablets etc. Some of the lessons are learned from early iOS devices. Remember when the iPad first came out, most of the apps for the iPad were like the phone apps, but blown up in skin size. Since then developers have learned how to target each one with a slightly different approach. We have in our APIs, code and design services the ability to target specific form factors with this UI without having to re-code things. That also works in hollow lens and IoT Core.

UWP extensions

The form factor is different for each of these devices, but the experience doesn’t have to be the same. In addition, some of the APIs are the same. For example I don’t have a cellular modem on my tablet and I don’t have the ability to make a traditional type of telephone call. Also I don’t have the GPIO or the general purpose I/O on my Microsoft Surface. So we can have our main operating system to be identical in our programming model and also maybe identical across all these devices and then we have a strong mechanism for expanding on that with these extensions to UWP. So for example if I’m programming on a Raspberry Pi, I can bring in this extension to UWP which gives me access to GPIO.

Node.JS, Python, C#, C++, javascript, Html, What else do you need ?

Then the applications that we were creating will all deploy the same way as you know they all use the same packaging model. There would be lots of different languages as we mentioned some of them in the previous segment like Wiring and node.JS. Windows 10 also support Python, C# and C++.

Apps want to have nice UIs and Windows supports both OpenGL and Direct-x together as part of to UWP.  UWP also supports HTML and JavaScript as another programing model for all those crazy people that try to do HTML in an application. I know you out there!

Some free stuffs from Microsoft afterall

You can use Visual Studio 2015 community edition which is free and this is something you may not be familiar with. It will give you all the features that you need to be able to build apps for Windows, phone, IOT, web and Azure on a single package.