.NET Micro Framework
   HOME

TheInfoList



OR:

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 Random-access memory (RAM; ) is a form of computer memory that can be read and changed in any order, typically used to store working data and machine code. A random-access memory device allows data items to be read or written in almost ...
(RAM). It includes a small version of the .NET
Common Language Runtime The Common Language Runtime (CLR), the virtual machine component of Microsoft .NET Framework, manages the execution of .NET programs. Just-in-time compilation converts the managed code (compiled intermediate language code) into machine inst ...
(CLR) and supports development in C#, Visual Basic .NET, and debugging (in an emulator or on hardware) using
Microsoft Visual Studio Visual Studio is an integrated development environment (IDE) from Microsoft. It is used to develop computer programs including websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platforms such a ...
. NETMF features a subset of the .NET base class libraries (about 70 classes with about 420 methods), an implementation of
Windows Communication Foundation The Windows Communication Foundation (WCF), previously known as Indigo, is a free and open-source runtime and a set of APIs in the .NET Framework for building connected, service-oriented applications. .NET Core 1.0, released 2016, did not su ...
(WCF), a GUI framework loosely based on
Windows Presentation Foundation Windows Presentation Foundation (WPF) is a free and open-source graphical subsystem (similar to WinForms) originally developed by Microsoft for rendering user interfaces in Windows-based applications. WPF, previously known as "Avalon", was init ...
(WPF), and a Web Services stack based on Simple Object Access Protocol (
SOAP Soap is a salt of a fatty acid used in a variety of cleansing and lubricating products. In a domestic setting, soaps are surfactants usually used for washing, bathing, and other types of housekeeping. In industrial settings, soaps are used ...
) and
Web Services Description Language The Web Services Description Language (WSDL ) is an XML-based interface description language that is used for describing the functionality offered by a web service. The acronym is also used for any specific WSDL description of a web service (al ...
(WSDL). NETMF also features added libraries specific to embedded applications. It is
free and open-source software Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
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 system An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is ''embedded' ...
s, enlarging the pool of qualified embedded developers. 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.


Features

Relative to other .NET platforms, the unique features of the Micro Framework are: * Memory needs of about 300 kB; in contrast, the next smallest .NET implementation, the .NET Compact Framework running on
Windows CE Windows Embedded Compact, formerly Windows Embedded CE, Windows Powered and Windows CE, is an operating system subfamily developed by Microsoft as part of its Windows Embedded family of products. Unlike Windows Embedded Standard, which is ba ...
, needs about 12 MB * Can run directly on a '' bare machine'' with no operating system, or can run on an
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also ...
(OS) * Supports common embedded peripherals and interconnects, including flash memory,
EEPROM EEPROM (also called E2PROM) stands for electrically erasable programmable read-only memory and is a type of non-volatile memory used in computers, usually integrated in microcontrollers such as smart cards and remote keyless systems, or as ...
,
GPIO A general-purpose input/output (GPIO) is an uncommitted digital signal pin on an integrated circuit or electronic circuit (e.g. MCUs/ MPUs ) board which may be used as an input or output, or both, and is controllable by software. GPIOs have no ...
, I2C,
Serial Peripheral Interface Bus The Serial Peripheral Interface (SPI) is a synchronous serial communication interface specification used for short-distance communication, primarily in embedded systems. The interface was developed by Motorola in the mid-1980s and has become ...
(SPI),
serial port In computing, a serial port is a serial communication interface through which information transfers in or out sequentially one bit at a time. This is in contrast to a parallel port, which communicates multiple bits simultaneously in paral ...
,
USB Universal Serial Bus (USB) is an industry standard that establishes specifications for cables, connectors and protocols for connection, communication and power supply ( interfacing) between computers, peripherals and other computers. A broa ...
* Optimized for energy-efficiency in battery-powered devices * Needs no
memory management unit A memory management unit (MMU), sometimes called paged memory management unit (PMMU), is a computer hardware unit having all memory references passed through itself, primarily performing the translation of virtual memory addresses to physical a ...
* Provides multithreading support even when running on single-threaded operating systems * A
hardware abstraction layer Hardware abstractions are sets of routines in software that provide programs with access to hardware resources through programming interfaces. The programming interface allows all devices in a particular class ''C'' of hardware devices to be acce ...
allows porting to other architectures * A managed
device driver In computing, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabling operating systems and ...
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 LLVM is a set of compiler and toolchain technologies that can be used to develop a front end for any programming language and a back end for any instruction set architecture. LLVM is designed around a language-independent intermediate repres ...
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 ARM (stylised in lowercase as arm, formerly an acronym for Advanced RISC Machines and originally Acorn RISC Machine) is a family of reduced instruction set computer (RISC) instruction set architectures for computer processors, configure ...
processors (including ARM7, ARM9, and Cortex-M) and has been supported on
Analog Devices Analog Devices, Inc. (ADI), also known simply as Analog, is an American multinational semiconductor company specializing in data conversion, signal processing and power management technology, headquartered in Wilmington, Massachusetts. The c ...
Blackfin The Blackfin is a family of 16-/32-bit microprocessors developed, manufactured and marketed by Analog Devices. The processors have built-in, fixed-point digital signal processor (DSP) functionality supplied by 16-bit multiply–accumulates ...
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 A software development kit (SDK) is a collection of software development tools in one installable package. They facilitate the creation of applications by having a compiler, debugger and sometimes a software framework. They are normally specific ...
(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 Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
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. On 3 August 2010, Secret Labs announced the Netduino, the first all-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. On 23 January 2017, after numerous attempts ( and ) to revive .NET Microframework project and bring it to community governance and a period of work "in the dark", a group of embedded systems developers publicly announced .NET nanoFramework as spin-off of .NET Micro Framework. A major rework on the build system, an easier way of adding new targets, a modernized API following UWP, a Visual Studio extension with all the tools required for managing targets, full development experience from coding to debugging on the native code and support for ARM Cortex-M and ESP32 were the key differences at that time. On 12 October 2018 the first official release of the class libraries and firmware images was announced. On 16 December 2016, GHI Electronics announced their own implementation of Micro Framework called TinyCLR OS, citing lack of maintenance of NETMF by Microsoft. On 7 July 2017 GHI announced 5th preview of TinyCLR OS. On 2 February 2018 GHI announced 8th preview of TinyCLR OS. On 5 April 2018 GHI announced 10th preview of TinyCLR OS.


Hardware

Multiple vendors make chips, development kits, and more that run the Micro Framework.


Netduino by Wilderness Labs

Netduino is an open-source electronics platform using the Micro Framework. Originally created by Secret Labs, but now manufactured and maintained by Wilderness Labs Inc. Based on 168Mhz Cortex-M4 (STM32F4) with up to 1,408 KB of code storage and 164 KB of RAM. On-board USB, Ethernet, Wifi, SD card slot. Development environment is MS Visual Studio and C#. Pin compatible with Arduino shields although drivers are required for some shields.


GHI Electronics

GHI Electronics makes several modules that support the 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 for beginners, it's also a low-cost starting point for professionals wanting to explore NETMF. Some of these boards are physically compatible with the
Arduino Arduino () is an open-source hardware and software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices. Its hardware products are licensed under ...
.


Mountaineer boards

Mountaineer boards, part of the Mountaineer Group, make a small range of
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
open-hardware boards that make use of the Micro Framework. Mountaineer have ported the Micro Framework for use on the
STM32 STM32 is a family of 32-bit microcontroller integrated circuits by STMicroelectronics. The STM32 chips are grouped into related series that are based around the same 32-bit ARM processor core, such as the Cortex-M33F, Cortex-M7F, Corte ...
family of
microcontroller A microcontroller (MCU for ''microcontroller unit'', often also MC, UC, or μC) is a small computer on a single VLSI integrated circuit (IC) chip. A microcontroller contains one or more CPUs (processor cores) along with memory and programmable ...
s featured on their Mountaineer boards and elsewhere.


STMicroelectronics

STMicroelectronics STMicroelectronics N.V. commonly referred as ST or STMicro is a Dutch multinational corporation and technology company of French-Italian origin headquartered in Plan-les-Ouates near Geneva, Switzerland and listed on the French stock market. ST ...
, creators of the microcontroller family
STM32 STM32 is a family of 32-bit microcontroller integrated circuits by STMicroelectronics. The STM32 chips are grouped into related series that are based around the same 32-bit ARM processor core, such as the Cortex-M33F, Cortex-M7F, Corte ...
, make low-cost discovery boards to showcase the controllers, and provides ports of the Micro Framework to run on them.


Netmfdevices

Netmfdevices is an open-source electronics platform using FEZHacker and .NET Micro Framework.


Micromint

The Micromint Bambino 200 is the first
multi-core processor A multi-core processor is a microprocessor on a single integrated circuit with two or more separate processing units, called cores, each of which reads and executes program instructions. The instructions are ordinary CPU instructions (such ...
SBC compatible with the .NET Gadgeteer framework. The model 200 is powered by an NXP LPC4330, the first dual-core ARM Cortex-M microcontroller. Its Cortex-M4 and Cortex-M0 cores are both capable of 204 MHz. It has 264 KB SRAM onboard and 4 MB of flash. The model 200E has all the same features as the model 200, and increased flash memory to 8 MB, 10 Gadgeteer sockets, an
Ethernet Ethernet () is a family of wired computer networking technologies commonly used in local area networks (LAN), metropolitan area networks (MAN) and wide area networks (WAN). It was commercially introduced in 1980 and first standardized in 198 ...
port,
microSD Secure Digital, officially abbreviated as SD, is a proprietary non-volatile flash memory card format developed by the SD Association (SDA) for use in portable devices. The standard was introduced in August 1999 by joint efforts between San ...
socket, and other features.


.NET Gadgeteer devices

Several manufacturers make boards and modules compatible with the .NET Gadgeteer rapid-prototyping standard for the framework.


MikroBus.Net

The MikroBus.Net Quail is an STM32-powered development solution for building hardware prototypes with click boards and C# managed code. It brings together Mikroelectronika click boards and the Micro Framework for embedded devices (NETMF).


See also

*
DirectBand DirectBand was a North American wireless datacast network owned and operated by Microsoft. It used FM radio broadcasts in over 100 cities to constantly transmit data to a variety of devices, including portable GPS devices, wristwatches and home w ...
* .NET Compact Framework * .NET Framework


References


External links

* {{DEFAULTSORT:.Net Micro Framework Micro Framework Free computer libraries Microsoft free software Software using the Apache license 2007 software Windows-only free software