Windows IoT Impressions

I am impressed with the ability to run Windows on the ARM and with how easy it is to use out of the box. But developing and deploying applications? Not such a pretty picture–Microsoft has a LONG way to go still. A RPi device with RaspianOS and python is a much better option at this point in time for my purposes: electronics interfacing and sensors. For reference, I have the following platform: Raspberry Pi 3 with Windows IoT 10.0.14376.0, and a Windows 10 desktop with Visual Studio 2015 Update 2.

The Pros

Being able to ssh into my device…excellent! Powershell is no replacement for Bash, but it is good enough and get the job done. Being able to mount my device’s C:\ and drag and drop files to the device…awesome! Networking functioning straight out of the box after plugging it into my Ethernet switch…check! Web-based control panel for monitoring the device, updating Windows, power-cycling…check! Headless capability…check!

The platform looks good overall, the only thing I am yearning for is Bash, but that is because I’m a Bash power user. For someone familiar with Powershell, I’m sure this is just perfect.

The Cons

My biggest disappointment is that Visual Studio remote debugging and remote deployment of apps does not appear to work. Based on my research, Microsoft removed the binary msvsmon.exe from their Windows IoT distribution, expecting it to be installed on a device by Visual Studio. That would make sense conceptually, but if Visual Studio cannot connect to the device, how do I get started?  I can ping the device, SSH into it, mount its c:\ on my desktop…so this is clearly not a connectivity issue. The issue must be with Visual Studio and Windows 10 IoT not playing nice together.

Capture1

Sorry, Microsoft. None of the settings in that menu are helping with this issue. Further research reveals that this was a problem with Windows IoT 10586 and Visual Studio 2015 Update 1.  Other workarounds provided, such as universal encryption disablement, do not appear to even be an option in VS 2015 Update 2.  Visual Studio has changed yet again from November 2015 when this problem first appeared, and so far I have been unable to figure out exactly what will fix the issue.

My guess is that a fix will be coming down the pipeline at some point, but frankly this platform is still to immature for serious development. I thought of downgrading to an older version of Windows IoT, but Microsoft is not allowing me to download it, I am only able to get the latest version (which I currently have). And after how long it took to get Visual Studio installed…and then updated…snowball’s chance in hell I’m going back to an older version of Visual Studio.

Closing Thoughts

For now I have to build a C++ application on my desktop and then copy the binary over to my Windows IoT device. That will work for now as I am still getting my feet wet, but hopefully that will be addressed in the next Windows IoT build, or next Visual Studio update. Once I start doing more complex things I will definitely want to be able to debug remotely.

I have started to browse some of the C++ samples and I am getting nervous, the code looks atrocious and appears to depend on some Windows RT libraries, COM objects, etc. Hopefully it will just be a small learning curve and be boiler plate code. I am sure it is easier with C#, but I don’t care to learn C# just for this device. Waste of my time. Perhaps if the C++ is too immature then there is hope for python? To be seen…