Today I had a briefing from Colin Miller of Microsoft about the .NET Micro Framework, a very small footprint version of the .NET Framework targeted for the embedded development space. The official description goes like this: The Microsoft .NET Micro Framework is an environment that extends the advantages of Microsoft .NET and the toolset in the Microsoft Visual Studio development system into a class of smal The Microsoft .NET Micro Framework is an environment that extends the advantages of Microsoft .NET and the toolset in the Microsoft Visual Studio development system into a class of smaller, less expensive, and more resource-constrained devices than previously possible with other Microsoft embedded offerings.According to Miller, the Micro Framework is not as compatible with the desktop as the .NET Compact Framework, because compatibility wasn’t the primary goal. For example, they didn’t implement the Forms namespace, because the Forms footprint is too big: interestingly enough, they used part of the Windows Presentation Framework object model instead. The Micro Framework does support most of the .NET System namespace, but none of the Data namespace. Basically, they built the .NET Micro Framework up from scratch based on the needs of the embedded devices they and partners key customers were building.Note that the .NET Micro Framework is not suitable for hard real-time. While they have a JIT compiler on the shelf, it requires too much of a memory footprint, so the Micro Framework runtime is still interpreted. It’s also not as feature-rich as Windows CE or Windows XP Embedded. According to Miller, embedded development hasn’t changed much since 1970s, despite all the changes in desktop programming. There are fewer 8-bit devices being used: in the 1970s and early 1980s, when I did most of my embedded system development, a lot of embedded systems were built around 6502s and Z80s. There are still many 16-bit processors in use, but newer 32-bit processors are coming down in power and becoming appropriate for embedded systems, for example the ARM Cortex.When Miller’s group started talking about embedded programming with some version of the .NET Framework, they got a great response from embedded developers, and not the die-hard push-back you might have expected. They started cherry-picking things from desktop, and they are still doing it: one of the future releases will include web services for devices.Colin had a lot more to say to me, but perhaps it would be better if you heard it directly from him. This video shows Colin, Mike Hall, Craig Mundie and others talking about the .NET Micro Framework, its applications, and the reasons for it. Basically, if you know how to write C# for the desktop, you should be able to write for embedded devices with the .NET Micro Framework. Download the .NET Micro Framework SDK from here if you already have Visual Studio 2005. A white paper is here, and the official book site is here. Software Development