What Is the .NET Micro Framework?
Targeted .NET Support for Small Devices
The .NET Micro Framework was created from the ground up with very small devices in mind. The range of functionality in these devices is typically constrained by some combination of cost, memory, processing capability, and power. The framework has been used in some of the smallest devices, including the Microsoft SPOT watches, GPS navigation devices, and the Microsoft Windows® Vista™ SideShow™ displays.
Being targeted at the new, less expensive, and more power-efficient 32-bit processors that are readily available makes it possible for the .NET Micro Framework platform to run on significantly reduced resources. Additionally, it offers power management interfaces to your code, thus maximizing the battery life of your devices. You get all of this in a flash or ROM footprint that starts at about 250 KB of RAM, depending on which of the many supported features you use.
To make the .NET Micro Framework available with the smallest possible memory footprint, it is designed to contain only those pieces of the .NET Framework that are most relevant to small devices. These include the major portions of the System.Collections, System.Diagnostics, System.Globalization, System.IO, System.Reflection, System.Resources, System.Runtime, and System.Threading namespaces, among others.
Increasing Your Productivity
With the .NET Micro Framework, Microsoft has extended the reach of managed code environments below where it was previously possible. Before the .NET Micro Framework, developers of embedded applications on very small devices were forced to use older and more primitive development tools than Microsoft Visual Studio. The use of such limited tools slowed application development and increased its cost. With .NET Micro Framework, the tools you have at your disposal are the same premier tools that are available on the other Microsoft .NET development platforms. Writing managed C# applications enables you to focus powerful .NET tools on your development process, thus shortening your development time.
In addition, the .NET Micro Framework can help you write code that is more portable and reusable across a range of similar devices in your product line. With the .NET Micro Framework tools, you can extend and enhance code from existing products and employ it in applications for new devices much more quickly and easily than you could by using more primitive toolsets. This means that you can more rapidly design and develop high-quality products and deploy them to ever-changing markets.
The .NET Micro Framework provides you with a broad range of high-level tools and support that are unprecedented in deeply embedded applications, including the following: globalized language support, thread support, garbage collection, managed drivers for LCDs, Universal Asynchronous Receiver/Transmitter (USART), I2C™, General Purpose Input/Output (GPIO), pulse-width modulation (PWM), graphics primitives, BMP and JPG image support, and text manipulation.
The .NET Micro Framework tools are seamlessly integrated with Visual Studio. This integration happens throughout the entire development process, from the creation of projects using .NET Micro Framework templates, through application development on the computer using the .NET Micro Framework extensible emulator, to downloading the applications to the device running .NET Micro Framework, and finally to debugging (in Visual Studio) the code that's executing directly on the device.
Vertically Integrated Platforms
In vertically integrated embedded applications, such as those created for industrial automation, it is possible to build applications deployable from the smallest Windows CE device up to the largest corporate network, all with the same tools, while maintaining code compatibility on all of the platforms involved. Before the advent of the .NET Micro Framework, you were forced to move to an incompatible platform if you needed to go even smaller or cheaper or have longer battery life. The addition of the .NET Micro Framework to Microsoft's suite of development options opens the door for you to work with the entire range of embedded applications — for virtually any applicable device — with a single, robust set of tools.