As a diehard .NET developer, I like C# as a language, and its ability to write apps for desktops, servers, phones, and tablets. What about the Internet of Things? .NET can do that as well.
Microsoft has been in the embedded device space for a long time. It has had embedded tools and operating systems since the 90s. Does anyone remember Windows CE? The first serious .NET solution I wrote was a home automation system written for mansions using .NET 1.0 and 1.1. It performed so well most people never could tell the difference between switching on a light from a touch panel or physical switch.
If you are a .NET developer and want to learn IoT, you have a head start. You know .NET and all of its frameworks.
You can write embedded code in several ways with .NET. The granddaddy is the .NET Micro Framework. It is not only the grandfather of several .NET embedded technologies. It was the first Open Source project from Microsoft when Open Sourced back in 2009. The code has been forked by several companies creating implementations including
- TinyCLR OS (https://www.ghielectronics.com/tinyclr/features) – GHI Electronics implementation of .NET Micro Framework started in 2016.
- Netduino (https://www.wildernesslabs.co) – Netduino is an open source hardware platform that runs applications built with the .NET MicroFramework. It is supported by Wilderness Labs who sale embedded controllers.
The .NET Micro Framework is not the only path for building embedded apps. You can also use .NET Core. .NET Core is cross-platform running on Mac OSX, Linux, and of course, Windows. Any embedded controller using Linux or Windows can run .NET Core for example Rasberry Pi, https://www.youtube.com/watch?v=ZyTLMnzehyU.
Microsoft does not just stop at embedded device development. There is Azure IoT which consists of
- Azure IoT Hub (https://azure.microsoft.com/en-us/services/iot-hub/) – a cloud-based service to securely connect your devices and backend services running in the cloud or on-premise.
- Azure IoT Edge (https://azure.microsoft.com/en-us/services/iot-edge/) – a cloud service that combines IoT, AI, and analytics to enable smart solutions.
- Azure IoT Solution Accelerator (https://www.azureiotsolutions.com/Accelerators) – a set of real-world templates to speed up development of IoT solutions.
Finally, Microsoft is not leaving you on your own to figure out IoT. They have created a website with tons of content and arranged to help you learn. The site is aptly named IoT School, https://iotschool.microsoft.com/learning-paths.