The .NET Micro Framework (NETMF) is a .NET Framework platform for resource-constrained devices with at least 512 kB of flash and 256 kB of random-access memory (RAM). It includes a small version of the .NET Common Language Runtime (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 Simple Object Access Protocol (SOAP) and Web Services Description Language (WSDL). NETMF also features added libraries specific to embedded applications. It is free and open-source software released under Apache License 2.0.

The Micro Framework aims to make embedded development easier, faster, and less costly by giving embedded developers access to the modern technologies and tools used by desktop application developers. Also, it allows desktop .NET developers to use their skills in embedded systems, enlarging the pool of qualified embedded developers.

.NET Micro Framework

The Micro Framework is part of the .NET Foundation. Announced at the Build 2014 conference, the foundation was created as an independent forum to foster open development and collaboration around the growing set of open-source technologies for .NET.

.NET Micro Framework

Features

Relative to other .NET platforms, the unique features of the Micro Framework are:

.NET Micro Framework

Memory needs of about 300 kB; in contrast, the next smallest .NET implementation, the .NET Compact Framework running on Windows CE, needs about 12 MB Can run directly on a bare machine with no operating system, or can run on an operating system (OS) Supports common embedded peripherals and interconnects, including flash memory, EEPROM, GPIO, I2C, Serial Peripheral Interface Bus (SPI), serial port, USB Optimized for energy-efficiency in battery-powered devices Needs no memory management unit Provides multithreading support even when running on single-threaded operating systems A hardware abstraction layer allows porting to other 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 Micro Framework does have some limits beyond those imposed by its slimmed-down libraries. For example, the platform does not support symmetric multiprocessing, multidimensional 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 method. An ahead-of-time compiler is being developed using a modified LLVM compiler. Interoperation between managed and native code currently has several limitations. As of 2011, Micro Framework supported two .NET languages: C# and Visual Basic.

Support

As of 2013, the .NET Micro Framework was supported on ARM architecture processors (including ARM7, ARM9, and Cortex-M) and 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 License 2.0 at the Microsoft Download Center.

The Micro Framework has its roots in Microsoft's Smart Personal Objects Technology (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 been adopted in other markets, such as energy management, healthcare, industrial automation, and sensor networks.

Microsoft allows developers to create applications using the Micro Framework without charge, and makes a software development kit (SDK) available for free download that can be used with all versions of Visual Studio, including the free Express editions.

History

In November 2009, Microsoft released the source code of the Micro Framework to the development community as free and open-source software under the Apache License 2.0.

In January 2010, Microsoft launched the netmf.com community development site to coordinate 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.