Friday 29 August 2008

Introduction to the Microsoft .Net Micro Framework

Let's start out with what the Microsoft .NET Micro Framework (.NET MF) is. In a nutshell, it's the future of embedded development. Programming microcontrollers for embedded devices has suffered through a litany of poor man's compilers, custom languages, non-standard development environments and until the arrival of the .NET MF was the province of the specialist low-level programmer. The .NET MF brings the finest development environment on Earth, Visual Studio, and managed C# to the embedded world. No other integrated development environment (IDE) even comes close to Visual Studio, and the debugging experience using C# and .NET MF directly on the device leaves other embedded IDEs for dead and buried. Using the increasingly standard ARM CPU as a platform, the .NET MF enables low-powered, high performance computing in micro sized packages.

The .NET MF is a complete re-write of the .Net common language runtime (CLR), and does not run on a host operating system. It is a 'bootable runtime', meaning that the CLR runs directly on the processor and includes a memory manager. This is a major departure for Microsoft from the existing .Net implementations in the embedded space, such as XPe and Windows CE running the .Net Compact Framework, and removes the massively bloated environment that those systems required - think 12MB->300KB, not to mention the reduced power consumption during operation.

The .NET MF includes these components:

  • Drivers for standard peripherals such as
  • XML and Web Services support
  • Parallelism with threaded applications
  • Simple persistent storage architecture
  • XML based user interface GUI framework for working with LCD screens and touch screens

Best of all, the platform is free with a licensed copy of Visual Studio and there are no runtime licensing fees: these are covered for you by most manufacturers of .NET MF modules.


gideon said...

is the .NET MF any good for an advanced desktop/web programmer(MCTS) to get into robotics?

I'm planning to buy a simple DIY robot kit with an ATMega32 MCU, I barely know anything about electronics and robotics... but if theres a .net option I do want to go there... is it possible to combine the ability of MF with AVR based processors??

Luke Thompson said...

I think it's a great way to get into robotics, particularly if you're a .NET programmer (as I am too).

You can definitely combine .NET MF based and other device platforms, although it will complicate things by needing to create an interface between them and having separate development environments for the code on either side.

.NET MF is particularly strong on rapid development, UIs and communication, all of which can be useful depending on your project.

Talon Giles said...

.NET Micro Framework is a powerful and flexible platform for rapidly creating embedded device firmware with Microsoft Visual Studio.