HOME

TheInfoList



OR:

The .NET Micro Framework (NETMF) was 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, electronic computer memory that can be read and changed in any order, typically used to store working Data (computing), data and machine code. A random-access memory device allows ...
(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 instr ...
(CLR) and supports development in C#,
Visual Basic .NET Visual Basic (VB), originally called Visual Basic .NET (VB.NET), is a multi-paradigm, object-oriented programming language developed by Microsoft and implemented on .NET, Mono, and the .NET Framework. Microsoft launched VB.NET in 2002 as the ...
, and debugging (in an emulator or on hardware) using
Microsoft Visual Studio Visual Studio is an integrated development environment (IDE) developed by Microsoft. It is used to develop computer programs including websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platforms ...
. 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 s ...
(WCF), a GUI framework loosely based on
Windows Presentation Foundation Windows Presentation Foundation (WPF) is a free and open-source user interface framework for Windows-based desktop applications. WPF applications are based in .NET, and are primarily developed using C# and XAML. Originally developed by Microso ...
(WPF), and a Web Services stack based on Simple Object Access Protocol (
SOAP Soap is a salt (chemistry), salt of a fatty acid (sometimes other carboxylic acids) used for cleaning and lubricating products as well as other applications. In a domestic setting, soaps, specifically "toilet soaps", are surfactants usually u ...
) 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 (also ...
(WSDL). NETMF also features added libraries specific to embedded applications. It is
free and open-source software Free and open-source software (FOSS) is software available under a license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term encompassing free ...
released under
Apache License The Apache License is a permissive free software license written by the Apache Software Foundation (ASF). It allows users to use the software for any purpose, to distribute it, to modify it, and to distribute modified versions of the software ...
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 specialized 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 e ...
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 CE, later known as Windows Embedded CE and Windows Embedded Compact, is a discontinued operating system developed by Microsoft for mobile and embedded devices. It was part of the Windows Embedded family and served as the software foun ...
, needs about 12 MB * Can run directly on a ''
bare machine In information technology, bare machine (or bare-metal computer) is a computer which has no operating system. The software executed by a bare machine, commonly called a "bare metal program" or "bare metal application", is designed to interact dir ...
'' with no operating system, or can run on an
operating system An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
(OS) * Supports common embedded peripherals and interconnects, including
flash memory Flash memory is an Integrated circuit, electronic Non-volatile memory, non-volatile computer memory storage medium that can be electrically erased and reprogrammed. The two main types of flash memory, NOR flash and NAND flash, are named for t ...
,
EEPROM EEPROM or E2PROM (electrically erasable programmable read-only memory) is a type of non-volatile memory. It is used in computers, usually integrated in microcontrollers such as smart cards and remote keyless systems, or as a separate chip d ...
, GPIO, I2C,
Serial Peripheral Interface Bus Serial Peripheral Interface (SPI) is a de facto standard (with many #Variations, variants) for Comparison of synchronous and asynchronous signalling, synchronous serial communication, used primarily in embedded systems for short-distance wired c ...
(SPI),
serial port A serial port is a serial communication Interface (computing), 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 Pa ...
,
USB Universal Serial Bus (USB) is an industry standard, developed by USB Implementers Forum (USB-IF), for digital data transmission and power delivery between many types of electronics. It specifies the architecture, in particular the physical ...
* 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 that examines all references to computer memory, memory, and translates the memory addresses being referenced, known as virtual mem ...
* 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 acc ...
allows porting to other architectures * A managed
device driver In the context of an operating system, 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, enabli ...
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 Symmetric multiprocessing or shared-memory multiprocessing (SMP) involves a multiprocessor computer hardware and software architecture where two or more identical processors are connected to a single, shared main memory, have full access to all ...
, 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 A waste collector, also known as a garbage man, garbage collector, trashman (in the U.S), binman or dustman (in the UK), is a person employed by a public or private enterprise to collect and dispose of municipal solid waste (refuse) and recycla ...
instead of a generational method. An ahead-of-time compiler is being developed using a modified
LLVM LLVM, also called LLVM Core, is a target-independent optimizer and code generator. It can be used to develop a Compiler#Front end, frontend for any programming language and a Compiler#Back end, backend for any instruction set architecture. LLVM i ...
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 (ISAs) for central processing unit, com ...
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 corporation, multinational semiconductor company specializing in data conversion, signal processing, and power management technology, headquartered in Wilming ...
Blackfin 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 performed by 16-bit multiply–accumulates (MA ...
in the past. The Porting Kit is now available along with the source code as a free download under the
Apache License The Apache License is a permissive free software license written by the Apache Software Foundation (ASF). It allows users to use the software for any purpose, to distribute it, to modify it, and to distribute modified versions of the software ...
2.0 at the Microsoft Download Center. The Micro Framework has its roots in Microsoft's
Smart Personal Objects Technology The Smart Personal Objects Technology (SPOT) is a discontinued initiative by Microsoft to create intelligent and personal home appliances, consumer electronics, and other objects through new hardware capabilities and software features. Developme ...
(SPOT) initiative and was used in
MSN Direct MSN Direct was an FM radio-based digital service which allowed ' SPOT' portable devices to receive information from MSN services. Devices that supported MSN Direct included wristwatches, desktop clocks, in-car GPS satellite navigation units, and ...
products such as smart watches before being made available to third-party developers early in 2007. It is a common platform for
Windows SideShow Windows SideShow (codenamed Auxiliary Display) was a feature by Microsoft introduced in Windows Vista to supply information such as e-mail, instant messages, and RSS feeds from a personal computer to a local or remote peripheral device or display. ...
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 t ...
(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 software available under a license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term encompassing free ...
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 Open-source hardware (OSH, OSHW) consists of physical artifact (software development), artifacts of technology designed and offered by the open-design movement. Both free and open-source software (FOSS) and open-source hardware are created by th ...
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 2020-06-17 the developers announced release of nanoFramework 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. On 27 April 2022 GHI announced release of TinyCLR OS version 2.2. As of 2023, only nanoFramework and TinyCLR OS continue development of a framework that can run .NET code on a microcontroller.


Hardware

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


Netduino by Wilderness Labs

Netduino Netduino was an open-source electronics prototyping platform based on the .NET Micro Framework. It uses the ARM Cortex-M 32-bit RISC ARM processor core as a 32-bit ARM-microcontroller. The Netduino boards (except the discontinued Mini and Go mo ...
is an open-source electronics platform using the Micro Framework. Originally created by Secret Labs, Netduino has been manufactured and maintained by Wilderness Labs Inc. since the acquisition of Secret Labs in 2017. 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 is 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 Italian open-source hardware and open-source software, software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices. Its hardwar ...
. GHI Electronics does not recommend to use its Micro Framework-based devices for new designs and instead recommends its TinyCLR-based devices.


Mountaineer boards

Mountaineer boards, part of the Mountaineer Group, used to 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 and view the source code, design documents, or content of the product. The open source model is a decentrali ...
open-hardware boards that make use of the Micro Framework. Mountaineer have ported the Micro Framework for use on the STM32 family of
microcontroller A microcontroller (MC, uC, or μC) or microcontroller unit (MCU) is a small computer on a single integrated circuit. A microcontroller contains one or more CPUs (processor cores) along with memory and programmable input/output peripherals. Pro ...
s featured on their Mountaineer boards and elsewhere.


STMicroelectronics

STMicroelectronics STMicroelectronics Naamloze vennootschap, NV (commonly referred to as ST or STMicro) is a European multinational corporation, multinational semiconductor contract manufacturing and design company. It is the largest of such companies in Europe. ...
, creators of the microcontroller family STM32, make low-cost discovery boards to showcase the controllers, and provides ports of the Micro Framework to run on them.


Netmfdevices

Netmfdevices was 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 (MCP) is a microprocessor on a single integrated circuit (IC) with two or more separate central processing units (CPUs), called ''cores'' to emphasize their multiplicity (for example, ''dual-core'' or ''quad-core''). Ea ...
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 (SD) is a proprietary hardware, proprietary, non-volatile memory, non-volatile, flash memory card format developed by the SD Association (SDA). Owing to their compact size, SD cards have been widely adopted in a variety of port ...
socket, and other features.


.NET Gadgeteer devices

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


See also

* DirectBand * .NET Compact Framework * .NET Framework


References


External links

* {{Microsoft FOSS Micro Framework Free computer libraries Microsoft free software Software using the Apache license 2007 software Windows-only free software