Can I write programs in C# on Ubuntu?

Yes you can use mono

For a nice IDE to work in try monodevelop:

sudo apt-get install monodevelop

This will also pull in all the necessary runtimes needed.


What you are looking for is Mono, which is, quoting from the project's website:

An open source, cross-platform, implementation of C# and the CLR that is binary compatible with Microsoft.NET

Mono also comes with an Integrated Development Environment (IDE): MonoDevelop. Both softwares are packaged for Ubuntu.

Mono

Install via the software center

MonoDevelop

Install via the software center

This last package depends on the first one. Installing this package will automatically install the other.


You can develop C# applications on linux with .NET Core: https://www.microsoft.com/net/core

After you install it, type dotnet new in your terminal to get a list of application templates which can be generated for you to start.

As of .NET Core 2.0 today, this is the list:

Templates                                         Short Name       Language          Tags               
--------------------------------------------------------------------------------------------------------
Console Application                               console          [C#], F#, VB      Common/Console     
Class library                                     classlib         [C#], F#, VB      Common/Library     
Unit Test Project                                 mstest           [C#], F#, VB      Test/MSTest        
xUnit Test Project                                xunit            [C#], F#, VB      Test/xUnit         
ASP.NET Core Empty                                web              [C#], F#          Web/Empty          
ASP.NET Core Web App (Model-View-Controller)      mvc              [C#], F#          Web/MVC            
ASP.NET Core Web App                              razor            [C#]              Web/MVC/Razor Pages
ASP.NET Core with Angular                         angular          [C#]              Web/MVC/SPA        
ASP.NET Core with React.js                        react            [C#]              Web/MVC/SPA        
ASP.NET Core with React.js and Redux              reactredux       [C#]              Web/MVC/SPA        
ASP.NET Core Web API                              webapi           [C#], F#          Web/WebAPI         
global.json file                                  globaljson                         Config             
Nuget Config                                      nugetconfig                        Config             
Web Config                                        webconfig                          Config             
Solution File                                     sln                                Solution           
Razor Page                                        page                               Web/ASP.NET        
MVC ViewImports                                   viewimports                        Web/ASP.NET        
MVC ViewStart                                     viewstart                          Web/ASP.NET        

The current latest version is 2.0 and covers all my needs.