.NET Micro Framework
Encyclopedia
The .NET Micro Framework (NETMF) is an Open Source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 .NET platform for resource-constrained devices with at least 256 KBytes of flash and 64 KBytes of RAM
Ram
-Animals:*Ram, an uncastrated male sheep*Ram cichlid, a species of freshwater fish endemic to Colombia and Venezuela-Military:*Battering ram*Ramming, a military tactic in which one vehicle runs into another...

. It includes a small version of the .NET CLR
Common Language Runtime
The Common Language Runtime is the virtual machine component of Microsoft's .NET framework and is responsible for managing the execution of .NET programs. In a process known as just-in-time compilation, the CLR compiles the intermediate language code known as CIL into the machine instructions...

 and supports development in C#, Visual Basic .NET
Visual Basic .NET
Visual Basic .NET , is an object-oriented computer programming language that can be viewed as an evolution of the classic Visual Basic , which is implemented on the .NET Framework...

, and debugging (in an emulator or on hardware) using Microsoft Visual Studio
Microsoft Visual Studio
Microsoft Visual Studio is an integrated development environment from Microsoft. It is used to develop console and graphical user interface applications along with Windows Forms applications, web sites, web applications, and web services in both native code together with managed code for all...

. It also features a subset of the .NET base class libraries (about 70 classes with about 420 methods), a GUI
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

 framework loosely based on Windows Presentation Foundation
Windows Presentation Foundation
Developed by Microsoft, the Windows Presentation Foundation is a computer-software graphical subsystem for rendering user interfaces in Windows-based applications. WPF, previously known as "Avalon", was initially released as part of .NET Framework 3.0. Rather than relying on the older GDI...

 (WPF), and 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.

Features

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
    .NET Compact Framework
    The Microsoft .NET Compact Framework is a version of the .NET Framework that is designed to run on resource constrained mobile/embedded devices such as personal digital assistants , mobile phones, factory controllers, set-top boxes, etc...

     running on Windows CE
    Windows CE
    Microsoft Windows CE is an operating system developed by Microsoft for embedded systems. Windows CE is a distinct operating system and kernel, rather than a trimmed-down version of desktop Windows...

    , 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
    Flash memory
    Flash memory is a non-volatile computer storage chip that can be electrically erased and reprogrammed. It was developed from EEPROM and must be erased in fairly large blocks before these can be rewritten with new data...

    , EEPROM
    EEPROM
    EEPROM stands for Electrically Erasable Programmable Read-Only Memory and is a type of non-volatile memory used in computers and other electronic devices to store small amounts of data that must be saved when power is removed, e.g., calibration...

    , GPIO
    GPIO
    General Purpose Input/Output is a generic pin on a chip whose behavior can be controlled through software....

    , I2C, SPI
    Serial Peripheral Interface Bus
    The Serial Peripheral Interface Bus or SPI bus is a synchronous serial data link standard named by Motorola that operates in full duplex mode. Devices communicate in master/slave mode where the master device initiates the data frame. Multiple slave devices are allowed with individual slave select ...

    , USB
  • Optimized for energy-efficiency in battery-powered devices
  • Does not require a memory management unit
    Memory management unit
    A memory management unit , sometimes called paged memory management unit , is a computer hardware component responsible for handling accesses to memory requested by the CPU...

  • 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
Symmetric multiprocessing
In computing, symmetric multiprocessing involves a multiprocessor computer hardware architecture where two or more identical processors are connected to a single shared main memory and are controlled by a single OS instance. Most common multiprocessor systems today use an SMP architecture...

, 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
Garbage collection (computer science)
In computer science, garbage collection is a form of automatic memory management. The garbage collector, or just collector, attempts to reclaim garbage, or memory occupied by objects that are no longer in use by the program...

 rather than 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# at this time.

Support

The .NET Micro Framework is currently supported on ARM architecture
ARM architecture
ARM is a 32-bit reduced instruction set computer instruction set architecture developed by ARM Holdings. It was named the Advanced RISC Machine, and before that, the Acorn RISC Machine. The ARM architecture is the most widely used 32-bit ISA in numbers produced...

 processors (including ARM7 and ARM9) and on Analog Devices
Analog Devices
Analog Devices, Inc. , known as ADI, is an American multinational semiconductor company specializing in data conversion and signal conditioning technology, headquartered in Norwood, Massachusetts...

 Blackfin
Blackfin
The Blackfin is a family of 16- or 32-bit microprocessors developed, manufactured and marketed by Analog Devices. The family is characterized by their built-in, fixed-point digital signal processor functionality supplied by 16-bit Multiply–accumulates , accompanied on-chip by a small and...

. 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
Smart Personal Objects Technology
Smart Personal Object Technology was developed by Microsoft to personalize household electronics and other everyday devices, through "smart" software and hardware that would make their uses more versatile....

 initiative and was used in MSN Direct
MSN Direct
MSN Direct is an FM radio-based digital service which allows 'SPOT' portable devices to receive information from MSN services. Devices that support MSN Direct include wristwatches, desktop clocks, in-car GPS satellite navigation units, and even small appliances such as coffee makers...

 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
Windows SideShow is a technology introduced in Windows Vista that enables Windows PCs to drive a variety of auxiliary display devices connected to the main PC. These devices can be separate from or integrated into the main PC , enabling access to information and media even when the PC is turned off...

 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 version 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 a community development site to coordinate the ongoing development of the core implementation with the open source community.

Open source

On 16 November 2009, Microsoft announced they would make the source for the .NET Micro Framework 4.0 available under the Apache License
Apache License
The Apache License is a copyfree free software license authored by the Apache Software Foundation . The Apache License requires preservation of the copyright notice and disclaimer....

 2.0.

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.

.NET Micro Framework 4.1

.NET Micro Framework 4.1 is the currently stable version, and was released August 24, 2010.

Netduino by Secret Labs

Netduino is an open source electronics platform using the .NET Micro Framework..

GHI Electronics

GHI Electronics makes several modules that support the .NET Micro Framework.
  • EMX Module.
  • ChipworkX Module
  • USBizi144 Chipset and USBizi140, whose only difference is the lack of USB host support in the USBizi100


GHI 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).

netmfdevices

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

See also

  • DirectBand
    DirectBand
    DirectBand is a North American wireless datacast network owned and operated by Microsoft. It uses FM radio broadcasts in over 100 cities to constantly transmit data to a variety of devices, including portable GPS devices, wristwatches and home weather stations....

  • .NET Compact Framework
    .NET Compact Framework
    The Microsoft .NET Compact Framework is a version of the .NET Framework that is designed to run on resource constrained mobile/embedded devices such as personal digital assistants , mobile phones, factory controllers, set-top boxes, etc...

  • .NET Framework
    .NET Framework
    The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK