Home > Linux, Programming, Software management > Running .NET applications on Linux Embedded Systems

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 http://www.mono-project.com/Mono:ARM#Building_Mono.

Since Mono 1.2.1, mips targets are also supported.

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

  1. May 19th, 2011 at 13:48 | #1

    Following the acquisition of Novell by Attachmate, and the layoff of mono developers, mono project leader has created http://www.xamarin.com/. Both websites are currently running however.

  1. May 2nd, 2012 at 20:32 | #1
  2. May 2nd, 2012 at 20:37 | #2