Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is C# a good choice for ubuntu programming? E.g 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, python(basics). I like to learn new stuff, but stuff that worth my time. Does C# worth my time?

If c# 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.

share|improve this question
4 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
up vote 3 down vote accepted

I can give you the perspective of someone who has developed and opensource application found in ubuntu (widemargin) using C# and mono. Mono is very mature and its core libs are complete.

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

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

If you are developing a destop 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, OSX, 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 MVC (what this site runs on)
share|improve this answer
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.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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