While the project will enable developers to use the Visual Studio IDE and C# to write applications for embedded systems without the need to worry about the low-level intricacies of the microcontroller, and suitable for IoT sensors, wearables, robotics and industrial equipment.
It comprises of a reduced version of the .NET Common Language Runtime and subset of .NET base class libraries, also the common APIs included in the Universal Windows Platform, which enables reuse of code from desktop apps, IoT Core applications, .NET code samples, and other open source projects.
What features are included in the .NET nanoFramework?
The .NET nanoFramework seems to pick up where .NET Micro Framework for embedded application development stopped and perhaps, as it uses some of its building blocks, with the project components completely rewritten, and several others improved upon.
Some unique features expected in the .NET nanoFramework include:
- Support for Native multithreading
- Execution constrains for device lockups and crashes
- Support for Interop code which allow developers to write libraries that have both managed (C#) and native code (C/C++)
- Support for common embedded peripherals and interconnects like SPI, GPIO, UART, I2C, and USB
- Ability to run on resource-constrained devices of 256kB of flash and 64kB of RAM
- Fully supports ARM Cortex-M and ESP32 devices, bare metal.
Additionally, there is an inclusion of a mark-and-sweep garbage collector which means no manual memory management.
The project is supported by the .NET Foundation, and the core team members and contributors to .NET nanoFramework are also embedded systems enthusiasts. It will make the development of such platforms easier, faster and less costly by giving developers of embedded systems access to modern technologies and same tools used by desktop app developers.
If you are a developer and want to get onboard, there are several resources available to get you started: from the getting started guides to the code samples repository and you can also find projects on Hackster.io.