On Mono on a Raspberry Pi... vs Win10 IOT Core

Sat, Sep 30, 2017 2-minute read

Last week I posted about the setup of a RPI / Mono. Having played with a little, I’ve ultimately abandoned that line of approach.

This is not directly a reflection on Mono - no doubt the team behind that have done an incredible job of developing a platform well beyond the original intentions of the .NET framework. My main issue was that the application I’d written in a true WinDev environment didn’t just move over to the RPI / Mono environment, thus my dev cycle was broken.

I started looking into the work required but it was more extensive than I wanted. I could have re-worked the original application so that it did just move over; but I opted against this. It seemed like I had the potential to open a can of worms… something I didn’t want to do.

So if you’re prepared to directly target Mono, then it’s possible a no-brainer.

I say possibly because the next step was to look in to the Win 10 IOT Core image that is available for RPI. The setup itself was incredibly simple - and doesn’t itself deserve a post. (Just download the image, flash it to your SD card and then fire up the Pi. Other than the usual Win setup fluff, that’s ultimately it.)

SO all sorted and happy days!

Well, no. IOT Core is a cutdown version of Win10 that itself uses .NET Core. This means you have similar limitations to Mono. IN fact moreso, in my opinion, as many of the things you may be used to from a desktop experience are gone. In IOT Core world, you publish your app to a Dashboard, and from there it kicks in when you boot your device. BUT that means re-targetting your app to use .NET Core which… well that’s a different story. If you truly have an IOT app you want to deploy then maybe it’s for you; XAML interfaces and all; but if you’re just looking for cut-down environment to run an old school console app (that needs .NET 4.5.2+) then IOT isn’t for you. (Yet, hopefully.)

SO for now I’ve gone back to a dedicated Win10 machine hard-wired in to my network for my needs. (But ultimately talking to MySQL on my original Mono RPI. So not totally wasted.) Hopefully at some point I’ll be able to port fully across to the IOT env.