Introduction
Recently Microsoft has announced that it will provide free version of Windows 10 which will run on low-cost devices, Windows 10 IoT core. See project homepage here, also Microsoft created Github repository for this, here. One of the supported devices is Raspberry pi 2 model B. This is very interesting news, because this step enables .NET developers to create applications which will run on this very low cost computer. Raspberry pi costs about 40€.
What is Windows 10 IoT Core ?
If you expect normal Windows 10 version, you will be disappointed. It is a very basic version of Windows, you will not get metro interface, desktop interface, start menu or even Microsoft store. None of these are included. Instead of this, you will get an environment which is capable of running one application written in .NET. Well, you can have one application with graphical output running at a time and one or more applications running in the background. As compared to Linux editions running on same Raspberry pi 2 hardware, it is far behind, but it is a nice opportunity for .NET developers to get in touch with hardware related things, and create IoT devices. One big advantage of this system is that you have access to remote command prompt and it is the same as in normal version Windows, so you can create scheduled tasks, import wifi settings and so on.
What Can You Do With Windows IoT Core ?
I don't have much experience with hardware related things and controlling serial bus, or connecting some sensors, etc. I focus more on development of applications displaying some content using HDMI interface. So I will focus on development applications and user interface.
Windows IoT core can run universal Windows applications, which have very much in common with applications for Windows phone. It is nothing like programming Windows Forms applications. All applications have user interface defined in WPF using Visual Studio designer. There are available basic controls, like buttons, textAreas, input fields, etc., also there is web browser component which uses Microsoft Edge browser. Most if not all the time consuming operations must be done in async way, because sync methods are not available in many cases, but you will get used to this very quickly.
Windows IoT core supports some usb hardware, I have tested usb mouse, and keyboard, both working with no problems. There were a few problems with usb Wifi adapter, because currently only two adapters are supported, one is official raspberry adapter and the second is tplink adapter, I have personal experience only with TP link adapter, and it is working quite good. At the current state, I would say that additional hardware over USB available is very limited and I recommend to test each hardware you would like to use before purchasing large number of usb devices.
In Windows IoT core application, you can use media element to play video. You can also display web page with video in html5 format, it will work, but... it is not usable, video is too slow and does not play fluently because Microsoft had not added directX support to Windows IoT core. They write on their blog and on forum that they will add this support and that they are working on it, but no results are visible yet.
Currently, you can expect that applications will be little bit laggy, especially displaying web pages and using JavaScript, but if you create some WPF app with few buttons it is quite comfortable to use.
Also, you can create web application which will run directly on raspberry pi and you will access it via web interface.
It is also possible to connect raspberry pi to arduino and use pins on board of raspberry pi, but I am not currently interested in this field, so I did not test it also.
What Do I Need to Develop Applications for Windows 10 Iot Core ?
In most sources, you will read that you will need as first thing PC with Windows 10 OS installed to develop apps for it, but in my opinion it is not entirely true. I don't want to upgrade my PC from Windows 7 to Windows 10, for various reasons. So I try to develop using virtual machine running Windows 10 and I was successful. Only disadvantage is that in most cases virtual machines cannot access SD card reader build in laptops. But there is a very easy and cheap way to get around it. I have done it using USB SD card reader it costs roughly 5€ and you just plug SD card into it and then you can write Windows 10 IoT system into it using the recommended tool.
When you have your system ready, you can install Visual studio 2013 (community edition is free) and download Image of Windows 10 Iot Core. You can follow this guide.
To download only Windows 10 Iot Core head here.
Thank you for reading, I will update this page with guides which will help you with problems that I have encountered.
You can continue by reading one of my next articles: