Can I write programs in C# on Ubuntu?
Andrew Henderson
I am forced to learn and practice C#, is there any applications that support and can be used to write programs in C#?
74 Answers
Yes you can use mono
For a nice IDE to work in try monodevelop:
sudo apt-get install monodevelopThis will also pull in all the necessary runtimes needed.
1What 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
MonoDevelop
This last package depends on the first one. Installing this package will automatically install the other.
2You can develop C# applications on linux with .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.
2You could use Visual Studio Code using apt:
wget -q -O- | sudo apt-key add -
echo "deb [arch=amd64] stable main" | sudo tee /etc/apt/sources.list.d/vscode.list
sudo apt update
sudo apt install codeor snap:
sudo snap install code --classicAfter the C# package installing, the next dialog box appears:
Clicking the marked button opens the next page, which provides the instructions for .Net Core SDK installation (along with ASP.Net Core runtime and .Net Core runtime installation instructions):
wget -O packages-microsoft-prod.deb
sudo apt install ./packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-3.1monodevelop IDE seems is not an option now, because of I could not find it. But if you want to install the current mono version (For example, on 20.04, amd64 architecture) you could use official mono repository:
sudo apt install gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb [arch=amd64] stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update
sudo apt install mono-develYou could also install additional mono packages, which you could find by:
apt-cache search monoThe man mono will introduce you to its usage:
DESCRIPTION mono is a runtime implementation of the ECMA Common Lan‐ guage Infrastructure. This can be used to run ECMA and .NET applications.