.NET Micro Framework (NETMF) es una plataforma .NET Framework para dispositivos con recursos limitados con al menos 512 kB de memoria 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) utilizando Microsoft Visual Studio . NETMF presenta un subconjunto de bibliotecas de clases base .NET (alrededor de 70 clases con alrededor de 420 métodos), una implementación de Windows Communication Foundation (WCF), un marco GUI basado libremente en Windows Presentation Foundation (WPF) y una pila de servicios web basada sobre Protocolo simple de acceso a objetos ( SOAP ) y 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.
Micro Framework tiene como objetivo hacer que el desarrollo integrado sea más fácil, rápido y menos costoso al brindar a los desarrolladores integrados acceso a las tecnologías y herramientas modernas utilizadas por los desarrolladores de aplicaciones de escritorio. Además, permite a los desarrolladores de .NET de escritorio utilizar sus habilidades en sistemas integrados , ampliando el grupo de desarrolladores integrados calificados.
Micro Framework es parte de .NET Foundation . [3] Anunciada en la conferencia Build 2014, la fundación se creó 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 limitaciones bajo las cuales 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 anticipado [5] utilizando un compilador LLVM modificado . La interoperación entre el código nativo y el administrado tiene actualmente 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 era compatible con procesadores de arquitectura ARM (incluidos ARM7, ARM9 y Cortex-M) y ha sido compatible con Analog Devices Blackfin en el pasado. 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 descarga de Microsoft.
Micro Framework tiene sus raíces en la iniciativa Smart Personal Objects Technology (SPOT) de Microsoft y se utilizó en productos MSN Direct, como relojes inteligentes, antes de estar disponible para desarrolladores externos a principios de 2007. [7] Es una plataforma común para Windows Dispositivos SideShow y se ha adoptado en otros mercados, como gestión de energía, atención médica, automatización industrial y redes de sensores.
Microsoft permite a los desarrolladores crear aplicaciones utilizando Micro Framework sin cargo y ofrece un kit de desarrollo de software (SDK) para descarga gratuita que se puede utilizar con todas las versiones de Visual Studio, incluidas las ediciones Express gratuitas. [8]
En noviembre de 2009, Microsoft lanzó el código fuente de Micro Framework a la comunidad de desarrollo como software gratuito 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 patentada de código cerrado 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 Mono 2.12 C#, 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 comunitaria y a un período de trabajo "en la oscuridad", un grupo de desarrolladores de sistemas integrados anunció públicamente .NET nanoFramework como spin-off de .NET Micro Framework. [16] Una revisión importante del sistema de compilación, una forma más sencilla de agregar nuevos objetivos, una API modernizada siguiendo a UWP , una extensión de Visual Studio con todas las herramientas necesarias para administrar objetivos, experiencia de desarrollo completa desde la codificación hasta la depuración en el código nativo y el soporte para ARM Cortex-M y ESP32 eran 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 vista previa de TinyCLR OS. [20] El 2 de febrero de 2018, GHI anunció la octava vista previa de TinyCLR OS. [21] El 5 de abril de 2018, GHI anunció la décima vista previa del sistema operativo TinyCLR. [22] El 27 de abril de 2022, GHI anunció el lanzamiento de la versión 2.2 del sistema operativo TinyCLR. [23]
A partir de 2023, solo nanoFramework y TinyCLR OS continúan desarrollando un marco que pueda ejecutar código .NET en un microcontrolador.
Varios proveedores 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 Micro Framework. Creado originalmente 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#. Pin compatible con escudos Arduino aunque se requieren controladores para algunos escudos.
GHI Electronics fabrica varios módulos que admiten 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 desean 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 hardware abierto de código abierto que utilizan Micro Framework. Mountaineer ha adaptado Micro Framework para su uso en la familia de microcontroladores STM32 presentes en sus placas Mountaineer y en otros lugares. [33]
STMicroelectronics , creadores de la familia de microcontroladores STM32 , fabrican placas de descubrimiento de bajo costo para mostrar los controladores y proporcionan puertos de Micro Framework para ejecutarlos. [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 SBC multinúcleo compatible con el marco .NET Gadgeteer. [36] El modelo 200 funciona con 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 integrada y 4 MB de flash. El modelo 200E tiene 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.