Running .NET applications on Linux Embedded Systems

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.

Share this:
FacebookTwitterHacker NewsSlashdotRedditLinkedInPinterestFlipboardMeWeLineEmailShare

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK 5 ITX RK3588 mini-ITX motherboard

One Reply to “Running .NET applications on Linux Embedded Systems”

Leave a Reply

Your email address will not be published. Required fields are marked *

Khadas VIM4 SBC
Khadas VIM4 SBC