Running .NET applications on Linux Embedded Systems

Orange Pi Development Boards

You may have some applications developed using Microsoft .NET application framework that are running on Windows XP, Windows Vista and Windows 7.

.NET for Linux

dotnet Framework in Linux
Run Microsoft .NET Framework Apps in Linux

If after spending much effort and time, you have a request to port your application to Linux, you don’t need to rewrite everything thanks to Mono, an open source implementation of .NET framework that can be run in Windows, Linux and MacOS.

The development framework is composed of three parts:

  • Mono – An open source, cross-platform, implementation of C# and the CLR that is binary compatible with Microsoft.NET
  • MonoDevelop – An open Source C# and .NET development environment for Linux, Windows, and Mac OS X
  • Mono Tools for Visual Studio – Development Tools to develop and migrate .NET applications to Mono on Linux without leaving Visual Studio. This application can be tried for 30 days and / or purchased. This tools is compatible with Visual Studio 2008 and Visual Studio 2010.

A large number of applications already use mono including:

  • Unity3D – Unity is is a 3D game editor with powerful cross-platform capabilities (also used together with Qualcomm Augmented Reality development kit)
  • gTwitter – A standalone GTK# twitter application
  • Paint.NET – A port of Paint.NET 3.0 to run on Linux
  • Nant – A free .NET build tool.
  • Ayuda OpenSplash – A (soon to be) open source digital signage player

Some limitations

Mono 2.8 is compatible with all versions of .NET  (up to .NET 4.0). However mono is not 100% compatible with all features of the .NET framework, here are the limitations:

  • .NET 4.0 Limitations:
    • CodeContracts – API complete, partial tooling
    • EntityFrameworks – Not available.
    • Server-side OData – Depends on Entity Framework.
  • .NET 3.5 Limitations: N/A
  • .NET 3.0 Limitations:
    • WCF – silverlight 2.0 subset completed
    • WPF – no plans to implement
    • WF – Will implement WF 4 instead on future versions of Mono.
  • .NET 2.0 Limitations: N/A
  • .NET 1.1 Limitations:
    • System.Management – does not map to Linux
    • System.EnterpriseServices – deprecated

Mono .NET Application Framework for Embedded Systems

mono can also be used for ARM and MIPS platforms running Linux and other OS.

It is currently running on iPhone, Linux (Maemo) and Android devices  such as Nokia 770

The best way to cross-compile .NET framework for ARM is to use ScratchBox, a cross-compilation toolkit for Linux.

The instructions to cross-compile Mono native code (Virtual Machine to run on ARM) and managed code (C# toolchain) are available at

Since Mono 1.2.1, mips targets are also supported.

If your systems is low on flash, follow the instructions to reduce mono footprint.

Support CNX Software - Donate via PayPal or become a Patron on Patreon

Leave a Reply

3 Comment threads
0 Thread replies
Most reacted comment
Hottest comment thread
1 Comment authors
Mono for Android 4.0 (.NET Framework) | CNXSoft – Embedded Software DevelopmentXamarin Ported Android to C#. Results: Massive Performance Improvements over Dalvik | CNXSoft – Embedded Software Developmentcnxsoft Recent comment authors
newest oldest most voted
Notify of

[…] over Dalvik May 2nd, 2012 cnxsoft Leave a comment Go to commentsXamarin has been providing Mono, a C# framework that can work on Linux for some years, and more recently they have also launched Mono for Android and iOS so that you can […]


[…] 4.0 (.NET Framework) December 9th, 2011 cnxsoft Leave a comment Go to commentsXamarin has provided .NET support for Linux via the Mono project for a while. It has recently announced the availability of an Android 4.0 version of its Mono […]