.NET Micro Framework
|This article needs additional citations for verification. (July 2013)|
|Stable release||4.3 (RTM) / December 4, 2012|
|License||Apache License 2.0|
The .NET Micro Framework (NETMF) is an open source .NET platform for resource-constrained devices with at least 256 KBytes of flash and 64 KBytes of RAM. It includes a small version of the .NET CLR and supports development in C#, Visual Basic .NET, and debugging (in an emulator or on hardware) using Microsoft Visual Studio. NETMF features a subset of the .NET base class libraries (about 70 classes with about 420 methods), an implementation of Windows Communication Foundation (WCF), a GUI framework loosely based on Windows Presentation Foundation (WPF), and a Web Services stack based on SOAP and WSDL. NETMF also features additional libraries specific to embedded applications.
The .NET Micro Framework aims to make embedded development easier, faster, and less expensive by giving embedded developers access to the modern technologies and tools used by desktop application developers. Additionally, it allows desktop .NET developers to use their skills in the embedded world, enlarging the pool of qualified embedded developers.
The unique features of the .NET Micro Framework (relative to other .NET platforms) are:
- A memory footprint of about 300 KB; for comparison, the next smallest .NET implementation, the .NET Compact Framework running on Windows CE, needs about 12 MB
- Can run directly "on the metal" without an operating system; running on an OS is also possible
- Supports common embedded peripherals and interconnects, including flash memory, EEPROM, GPIO, I²C, SPI, Serial port, USB
- Optimized for energy-efficiency in battery-powered devices
- Does not require a memory management unit
- Provides multithreading support even when running on single-threaded operating systems
- A hardware abstraction layer allows porting to additional architectures
- A managed device driver model allows drivers for many devices to be written in C#
- Execution constraints to catch device lockups and crashes
- Transparent support for storing objects in non-volatile memory
Due to the constraints under which it operates, the .NET Micro Framework does have some limitations beyond those imposed by its slimmed-down libraries. For example, the platform does not support symmetric multi-processing, multi-dimensional arrays, machine-dependent types, or unsafe instructions. The CLR is an interpreter rather than a just-in-time compiler, and uses a simpler mark-and-sweep garbage collector instead of a generational approach. Interoperation between managed and native code currently has a number of limitations. The .NET Micro Framework does not support any .NET languages other than C# and Visual Basic at this time.
The .NET Micro Framework is currently supported on ARM architecture processors (including ARM7, ARM9 and Cortex-M architectures) and it has been supported on Analog Devices Blackfin in the past. The Porting Kit is now available along with the source code as a free download under the Apache 2.0 license at the Microsoft Download Center.
The .NET Micro Framework has its roots in Microsoft's SPOT initiative and was used in MSN Direct products such as smart watches before being made available to third-party developers early in 2007. It is a common platform for Windows SideShow devices and has seen adoption in other markets, such as energy management, healthcare, industrial automation, and sensor networks.
Microsoft allows developers to create applications using the .NET Micro Framework without charge, and makes an SDK available for free download that can be used with all versions of Visual Studio, including the free Express editions.
In November 2009, Microsoft released the source code of the framework to the development community under the Apache 2.0 license.
In January 2010, Microsoft launched the netmf.com community development site to coordinate the ongoing development of the core implementation with the open source community.
On 9 January 2010, GHI Electronics announced FEZ Domino, the first member of the product line called FEZ (Freakin' Easy!), a combination of open source hardware with a proprietary closed-source version of .NET Micro Framework.
On 3 August 2010, Secret Labs announced the Netduino, the first 100% open source electronics platform using the .NET Micro Framework.
In February 2011, Novell posted a preview of the Mono 2.12 C# compiler, the first open source compiler for .NET Micro Framework.
Multiple vendors make chips, development kits and more that run .NET Micro Framework.
Netduino by Secret Labs
GHI Electronics makes several modules that support the .NET Micro Framework.
- EMX Module.
- ChipworkX Module
- USBizi144 Chipset and USBizi100, whose only difference is the lack of USB host support in the USBizi100
GHI Electronics also makes the ".NET FEZ" line of very small open source hardware boards with proprietary firmware, targeted for beginners. They are based on the USBizi chipset and all its features. The FEZ Domino board offers USB host. Even though FEZ is targeted for beginners, it's also a low-cost starting point for professionals wanting to explore NETMF (.NET Micro Framework). Some of these boards are physically compatible with the Arduino.
.NET Gadgeteer is a hardware reference platform defined by Microsoft Research in Cambridge, built on top of .NET Micro Framework. It was created to allow rapid prototyping of ideas for small electronics devices, by abstracting away circuit design. Gadgeteer mainboards and modules share a common ten-pin connector, to abstract all electronic connections between modules into a simple unified scheme using the same ribbon connectors to connect any module to the mainboard. Any additional support components required will be built onto the module board so that only the common ribbon connection is required. Boards run NETMF with an additional layer of event-driven drivers and code generation, to allow a developer to visually create a diagram in Visual Studio of which hardware modules (for instance, a camera module, button module and screen module) are connected to which sockets on the mainboard, and the Gadgeteer SDK then auto-generates code creating object instances for all the relevant hardware, so the developer can immediately begin writing .NET code targeting the connected hardware.
Several manufacturers produce Gadgeteer boards, with variations in size, performance and capabilities. Current Gadgeteer-compatible main boards include:
- GHI Electronics
- Sytech Designs
- Love Electronics
- Argon R1
- Mountaineer Group
A wide variety of Gadgeteer-compatible modules have been produced, from simple buttons and LED modules to sensors such as gyros or thermometers, GPS units, TFT screens and cameras. Manufacturers of these modules include the board manufacturers such as GHI Electronics, Sytech and Love Electronics, as well as electronics designers such as Seeed Studios.
- .NET Micro Framework 4.3 (RTM)
- .NET Micro Framework only supports C# and Visual Basic
- .NET Micro Framework 4.0 SDK
- Microsoft to Open Source the .NET Micro Framework
- FEZ: open source electronics boards with many open source component drivers using .NET MF
- Netduino: open source electronics platform using .NET MF
- Experimental Mono support for Mac/Linux
- Compatible Device Matrix
- Netduino Homepage
- GHI Electronics EMX Module
- GHI Electronics ChipworkX Module
- GHI Electronics USBizi144 Chipset
- GHI Electronics USBizi100 Chipset
- GHI Electronics .NET Micro Framework FEZ (Fast and Easy)
- Netmfdevices Homepage
- .NET Gadgeteer
- GHI FEZ Spider
- GHI FEZ Hydra
- GHI FEZ Cerberus
- GHI FEZ Cerbuino Bee
- Sytech NANO
- Love Electronics Argon R1
- Mountaineer Group Ethernet Board
- Mountaineer Group USB Board