Is C# a good choice for Ubuntu programming? For example, Unity, or applications that will run on Ubuntu? Am I doing good wanting to learn C# when I'm determined to stick with Ubuntu and develop on it or for it? If not, can you give me reasons why? And which languages would be better than C# for Ubuntu development? I already know C, C++, Java (basics), PHP, MySQL, and Python. I like to learn new stuff, but stuff that worth my time. Is C# worth my time?

If C# is worth my time, here's what I have done and what I need: I installed all mono packages I could find on the Ubuntu standard repositories. Now I want a good tutorial to get me started. I'm a complete noob with C# so a basic tutorial and how to compile run under Ubuntu 12.04 would be great.

  • 5
    developer.ubuntu.com/resources/programming-languages/c-sharp First you need to decide what you want to do.. to learn c# I will always recommend reading a book and use windows+Visual studio.
    – Web-E
    Nov 29 '12 at 5:02
  • Why would you recommend windows + visual studio, I do all my development of widemargin on ubuntu using monodevelop, It even has some features that I wish Visual Studio had, (I have to use VS for work)
    – trampster
    Dec 2 '12 at 9:36

I can give you the perspective of someone who has developed an open source application found in Ubuntu (widemargin) using C# and Mono. Mono is very mature and its core libraries are complete.

For developing I would recommend MonoDevelop which is a free and open source IDE like Visual Studio.

There are a few Microsoft libraries that don't work on Ubuntu. These are mainly GUI libraries (winforms works but not well, WPF does not work at all). This is by design. These are native windows GUI libraries and so would look horrible on Ubuntu anyway.

If you are developing a desktop app I would recommend that you use Gtk# which is C# bindings to the native GTK+ framework on Ubuntu. This will give you a completely native looking application on Ubuntu.

If you are interested in cross platform applications then C# is the only language you can use on Windows, Linux, OS X, iOS, Android and WP7. The Mono people recommend that you write a new GUI for each platform using bindings to Native APIs (like Gtk# on Ubuntu), and share the code for your back end. This means your application will look and feel native on each platform.

Learning C# will also allow you to:

  • develop for the new PlayStation Suite, which is C# only,
  • make games with unity3d (in game scripting is C#),
  • make games like Bastion which use monogame,
  • develop websites using ASP.net MVC (what this site runs on).
  • 1
    GTK is also cross platform,and by no way is C# the only language of choice when it comes to cross-platform programming.
    – Mahesh
    Dec 2 '12 at 9:45
  • @Mahesh that depends on what platforms you want to support, C# is the only language that can target Windows Phone 7
    – trampster
    Dec 5 '12 at 20:39
  • @Mahesh I use GTK for wide margin on windows, and I regret it, it looks craps there (looks great on ubuntu), I should have used a native GUI took kit, WPF or even Windows Store UI.
    – trampster
    Dec 5 '12 at 20:41

I developed an Ubuntu application using Mono C# and found it to be a very effective platform. There is a lot of anti-C# attitude in the community due to C# being created by Microsoft, but the reality is that C# does the job, and does it well. MonoDevelop is a great IDE and GTK# is a joy to use for the interface.

Good luck.


You can also use .NET Core instead of Mono which is open source and blazing fast. Even faster than node js for some cases.

Install .NET Core SDK on Linux Ubuntu 16.04 should be similar to your version

Register Microsoft key and feed

To start installing .NET, you'll need to register the Microsoft signature key and add the Microsoft Product feed. This only needs to be done once per machine.

Open a command prompt and run the following commands:

curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod xenial main" > /etc/apt/sources.list.d/dotnetdev.list'  

Install .NET SDK

Update the products available for installation, then install the .NET SDK.

In your command prompt, run the following commands:

sudo apt install apt-transport-https
sudo apt update
sudo apt install dotnet-sdk-2.1.103
  • Thx for the edit!
    – PmanAce
    Apr 5 '18 at 16:14
  • I'm a windows guy but thanks anyways...I just want to spread the word on how wonderful C# is and now open source and cross platform. :)
    – PmanAce
    Apr 5 '18 at 16:18

Now you can do that with asp.net core install visual studio code https://code.visualstudio.com/download

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.