Technology trends don’t come more nebulous than the “Internet of things.” After all, a thing can be anything. For developers wanting to get past fuzzy concept to real code, Microsoft’s Azure cloud is a fine place to start. Like Amazon’s AWS IoT, the Azure IoT Suite pairs back-end services with SDKs for low-power client devices such as the Raspberry Pi. Unlike AWS IoT, Azure supports .Net development as part of the mix.
The Azure IoT Suite, which includes the Azure IoT Hub and other services, can help you to generate solutions from common templates. Once you’ve generated a provisioned IoT solution, you can connect it to real devices and modify it as needed.
The Azure IoT Hub is a service for controlling and ingesting data from IoT devices, typically single-board computers such as the Raspberry Pi, which are in turn connected to sensors, relays, and ultimately real-world machines ranging from “smart” lightbulbs to automobiles, manufacturing plants, and entire cities. The Azure IoT Hub can connect to a number of other Azure services to build a complete IoT solution.
The Azure IoT Hub Client SDKs allow you to actually connect to devices. The SDKs are all open source and updated frequently. At the time of this writing, Azure’s list of certified IoT devices includes more than 50 boards. According to the installation documentation in the repository, more single-board computers are currently supported than are listed. For example, the C SDK contains installation instructions for an Arduino Yún.
Right now, the only development environments explicitly supported by the C and Java SDKs are Windows and Ubuntu. The .Net SDK, unsurprisingly, only supports a Windows development environment, and the documentation says, “You can use any version of Visual Studio 2015, including the Community edition.” The Node.js SDK documentation only talks about setup for Windows and Linux; I wouldn’t be surprised if the Linux instructions were substantially correct for Mac OS X as well.