.NET Micro Framework (NETMF) es una plataforma .NET Framework para dispositivos con recursos limitados con al menos 512 kB de flash y 256 kB de memoria de acceso aleatorio (RAM). Incluye una versión pequeña de .NET Common Language Runtime (CLR) y admite el desarrollo en C# , Visual Basic .NET y la depuración (en un emulador o en hardware) mediante Microsoft Visual Studio . NETMF presenta un subconjunto de las bibliotecas de clases base de .NET (alrededor de 70 clases con alrededor de 420 métodos), una implementación de Windows Communication Foundation (WCF), un marco de GUI basado libremente en Windows Presentation Foundation (WPF) y una pila de servicios web basada en el Protocolo simple de acceso a objetos ( SOAP ) y el Lenguaje de descripción de servicios web (WSDL). NETMF también presenta bibliotecas adicionales específicas para aplicaciones integradas. Es un software gratuito y de código abierto publicado bajo la Licencia Apache 2.0.
El objetivo de Micro Framework es hacer que el desarrollo integrado sea más fácil, rápido y menos costoso al brindarles a los desarrolladores de sistemas integrados acceso a las tecnologías y herramientas modernas que utilizan los desarrolladores de aplicaciones de escritorio. Además, permite que los desarrolladores de .NET de escritorio utilicen sus habilidades en sistemas integrados , lo que amplía el grupo de desarrolladores de sistemas integrados calificados.
Micro Framework es parte de la Fundación .NET . [3] Anunciada en la conferencia Build 2014, la fundación fue creada como un foro independiente para fomentar el desarrollo abierto y la colaboración en torno al creciente conjunto de tecnologías de código abierto para .NET. [4]
En comparación con otras plataformas .NET, las características únicas de Micro Framework son:
Debido a las restricciones bajo las que opera, Micro Framework tiene algunos límites más allá de los impuestos por sus bibliotecas reducidas. Por ejemplo, la plataforma no admite multiprocesamiento simétrico , matrices multidimensionales, tipos dependientes de la máquina o instrucciones no seguras. El CLR es un intérprete en lugar de un compilador justo a tiempo y utiliza un recolector de basura de marcado y barrido más simple en lugar de un método generacional. Se está desarrollando un compilador adelantado en el tiempo [5] utilizando un compilador LLVM modificado . La interoperación entre código administrado y nativo actualmente tiene varias limitaciones. A partir de 2011, Micro Framework admitía dos lenguajes .NET: C# y Visual Basic. [6]
A partir de 2013, .NET Micro Framework fue compatible con procesadores de arquitectura ARM (incluidos ARM7, ARM9 y Cortex-M) y en el pasado fue compatible con Analog Devices Blackfin . El kit de portabilidad ahora está disponible junto con el código fuente como descarga gratuita bajo la licencia Apache 2.0 en el Centro de descargas de Microsoft.
Micro Framework tiene sus raíces en la iniciativa Smart Personal Objects Technology (SPOT) de Microsoft y se utilizó en productos de MSN Direct , como relojes inteligentes, antes de estar disponible para desarrolladores externos a principios de 2007. [7] Es una plataforma común para dispositivos Windows SideShow y se ha adoptado en otros mercados, como la gestión de energía, la atención médica, la automatización industrial y las redes de sensores.
Microsoft permite a los desarrolladores crear aplicaciones utilizando Micro Framework sin cargo y pone a disposición para descarga gratuita un kit de desarrollo de software (SDK) que puede utilizarse con todas las versiones de Visual Studio, incluidas las ediciones gratuitas Express. [8]
En noviembre de 2009, Microsoft publicó el código fuente de Micro Framework a la comunidad de desarrollo como software libre y de código abierto bajo la Licencia Apache 2.0. [9]
En enero de 2010, Microsoft lanzó el sitio de desarrollo comunitario netmf.com para coordinar el desarrollo continuo de la implementación principal con la comunidad de código abierto. [10]
El 9 de enero de 2010, GHI Electronics anunció FEZ Domino, el primer miembro de la línea de productos llamada FEZ (Freakin' Easy!), una combinación de hardware de código abierto con una versión de código cerrado patentada de .NET Micro Framework. [11]
El 3 de agosto de 2010, Secret Labs anunció Netduino, la primera plataforma electrónica de código abierto que utiliza .NET Micro Framework. [12]
En febrero de 2011, Novell publicó una vista previa del compilador C# Mono 2.12, el primer compilador de código abierto para .NET Micro Framework. [13]
El 23 de enero de 2017, después de numerosos intentos ( [14] y [15] ) de revivir el proyecto .NET Microframework y llevarlo a la gobernanza de la comunidad y un período de trabajo "en la oscuridad", un grupo de desarrolladores de sistemas integrados anunció públicamente .NET nanoFramework como un spin-off de .NET Micro Framework. [16] Una importante reelaboración del sistema de compilación, una forma más sencilla de agregar nuevos objetivos, una API modernizada siguiendo UWP , una extensión de Visual Studio con todas las herramientas necesarias para administrar los objetivos, una experiencia de desarrollo completa desde la codificación hasta la depuración en el código nativo y soporte para ARM Cortex-M y ESP32 fueron las diferencias clave en ese momento. El 12 de octubre de 2018 se anunció el primer lanzamiento oficial de las bibliotecas de clases y las imágenes de firmware. [17] El 17 de junio de 2020, los desarrolladores anunciaron el lanzamiento de nanoFramework [18]
El 16 de diciembre de 2016, GHI Electronics anunció su propia implementación de Micro Framework llamada TinyCLR OS, citando la falta de mantenimiento de NETMF por parte de Microsoft. [19] El 7 de julio de 2017, GHI anunció la quinta versión preliminar de TinyCLR OS. [20] El 2 de febrero de 2018, GHI anunció la octava versión preliminar de TinyCLR OS. [21] El 5 de abril de 2018, GHI anunció la décima versión preliminar de TinyCLR OS. [22] El 27 de abril de 2022, GHI anunció el lanzamiento de la versión 2.2 de TinyCLR OS. [23]
A partir de 2023, solo nanoFramework y TinyCLR OS continúan el desarrollo de un marco que pueda ejecutar código .NET en un microcontrolador.
Existen varios proveedores que fabrican chips, kits de desarrollo y más que ejecutan Micro Framework. [24]
Netduino es una plataforma electrónica de código abierto que utiliza el Micro Framework. Originalmente creado por Secret Labs, Netduino ha sido fabricado y mantenido por Wilderness Labs Inc. [25] desde la adquisición de Secret Labs en 2017. [26] Basado en Cortex-M4 de 168 Mhz (STM32F4) con hasta 1408 KB de almacenamiento de código y 164 KB de RAM. USB integrado, Ethernet, Wifi, ranura para tarjeta SD. El entorno de desarrollo es MS Visual Studio y C#. Compatible con pines de los shields Arduino, aunque se requieren controladores para algunos shields.
GHI Electronics fabrica varios módulos que admiten el Micro Framework:
GHI Electronics también fabrica la línea .NET FEZ de placas de hardware de código abierto muy pequeñas con firmware propietario, dirigidas a principiantes. Se basan en el chipset USBizi y todas sus características. La placa FEZ Domino ofrece host USB. Aunque FEZ es para principiantes, también es un punto de partida de bajo costo para profesionales que quieran explorar NETMF. [31] Algunas de estas placas son físicamente compatibles con Arduino .
GHI Electronics no recomienda utilizar sus dispositivos basados en Micro Framework para nuevos diseños y en su lugar recomienda sus dispositivos basados en TinyCLR. [32]
Las placas Mountaineer, parte del grupo Mountaineer, solían fabricar una pequeña gama de placas de código abierto y hardware abierto que utilizaban el Micro Framework. Mountaineer había adaptado el Micro Framework para su uso en la familia de microcontroladores STM32 que se incluyen en sus placas Mountaineer y en otros dispositivos. [33]
STMicroelectronics , creadores de la familia de microcontroladores STM32 , fabrica placas de descubrimiento de bajo costo para exhibir los controladores y proporciona puertos del Micro Framework para ejecutarse en ellos. [34]
Netmfdevices era una plataforma electrónica de código abierto que utilizaba FEZHacker y .NET Micro Framework. [35]
El Micromint Bambino 200 es el primer procesador multinúcleo SBC compatible con el marco .NET Gadgeteer. [36] El modelo 200 está impulsado por un NXP LPC4330, el primer microcontrolador ARM Cortex-M de doble núcleo. Sus núcleos Cortex-M4 y Cortex-M0 son capaces de alcanzar 204 MHz. Tiene 264 KB de SRAM integrado y 4 MB de flash. El modelo 200E tiene todas las mismas características que el modelo 200, y una memoria flash aumentada a 8 MB, 10 zócalos Gadgeteer, un puerto Ethernet , un zócalo microSD y otras características.
Varios fabricantes fabrican placas y módulos compatibles con el estándar de creación rápida de prototipos .NET Gadgeteer para el marco.