| Targeted to Small Devices | <>> Both the CLR and the managed libraries provided in the SDK are carefully designed and crafted to work on small, inexpensive devices. | <>>
| Programming Language | C#. Other programming languages are not supported. Supports v1.1. CLI ECMA standard, with the exception of the native pointer types and relative conversions. Because generics were introduced in CLI v2.0, the .NET Micro Framework does not support them. |
| Libraries | Implementations of several standard .NET namespaces including classes for threading, containers, reflection, TCP/IP, HTTP(S), SSL, IO, XML parsing, Resources and Text. Also implements a number of non-standard namespaces designed specifically for embedded programmers to use on small, resource-constrained hardware. These namespaces include classes for hardware, low-level communication protocols, cryptography, graphics, touch panels, and Web Services. |
| Execution Model | CLR runs natively on hardware so an operating system is not required. However, the framework can be ported so that it runs as a process on top of an operating system. Supports managed multi-threading. |
| Debugging | Supports the standard Visual Studio debugging tools for managed applications such as breakpoints, watches, stepping through code, and so forth. Debugging transport can be UART/USART, USB, or TCP/IP, depending on the hardware. |
| Connectivity | UART/USART, I2C, SPI, USB, support for adding 802.11 |
| Networking and Web Services | TCP/IP, HTTP, SSL, DPWS (Device Profile for Web Services, i.e. SOAP on HTTP). Wi-Fi configuration for most common 802.11 parameters supported. Time Synchronization is supported though SNTP. |
| Cryptography | Provides standard encryption and decryption techniques. Also enables you to extend the cryptographic capabilities for customized cryptography. |
| Globalization | Supports standard .NET globalization techniques. |
| File System | Block storage API and file system API enable your applications to store information on block storage devices such as SD cards. The SDK provides a FAT-compatible file for both FAT32 and FAT16 systems. However, you can also create one of your own. |
| Graphics and LCD | Can handle graphics natively or from the managed application. Managed applications use the Windows Presentation Foundation model for dynamic layout and event dispatching. Native-level bitmaps are based on and include the basic primitives for drawing ellipsis and rectangles in a customizable source code format. Supports using bitmaps as resources in the TinyCLRBitmap (an internal format), BMP, JPG and GIF formats. The following bitmap types are supported. · 24bpp RGB, · 32bpp RGB, · 48bpp RGB, · 16bpp RGB (565 format) · 15bpp RGB (555) format; · 1bpp monochrome All color bitmap formats are silently converted to 16bpp RGB (565) at build time for the managed application. 1bpp monochrome bitmaps are compressed at build-time. When loading bitmap data at run-time: · Only 16bpp (565 format) and 24bpp RGB formats are supported by BitmapImageType.Bmp. · The only supported mechanism for loading 1bpp monochrome bitmaps is embedding them as bitmap resources at compile time. · Bitmap size is unlimited. |
| Touch Screen | Standardized interface for hardware that uses a touch screen and stylus, including gestures and multi-touch support. |
| Graphical User Interfaces (GUIs) | Offers a subset of the Windows Presentation Foundation (WFP) classes. |
| Managed Drivers | Managed C# applications can communicate with peripheral devices through standard connections such as GP I/O, SPI, I2C, and so forth. |
| Versioning | Managed applications can query the HAL, runtime, and assembly version number to ensure that the application is installed on the correct version of the firmware. |
| Emulation | Powerful hardware emulator that you can enhance and extend to suit your needs when creating embedded systems for hardware devices. Sample emulator provided. |
| Real-Time Hardware Access | No real-time hardware access provided. Nevertheless, you can port it as a process on top of a real-time operating system and thereby access real-time features. |