at college we use Microsoft .NET for developing applications. I recently switched to Ubuntu and would like to know similar tools for making apps on/for ubuntu.
You can program in .NET on ubuntu too. Well, sort of. There is an open source implementation of the .NET platform available called MONO. MONO apps can run on Ubuntu/Linux, Windows and Mac OS. Look for MonoDevelop in Ubuntu Software Center. Learn more about Mono in Ubuntu.
Another option is Quickly. In my opinion Quickly is better for Ubuntu centric app development. You can code you app and release it to a PPA (launchpad-repository) in minutes. Quickly is also available from Ubuntu Software Center. Get started writing apps with Quickly.
Quickly can help you make cool apps using Python (pretty easy to learn and very popular) quickly!
The Vala language is a programming language very similar to C#. It is still very young, but already has a lot of bindings to existing libraries (for example, GTK). It compiles to native binaries, so your users don't need an additional runtime, as they would for .NET.
I see no reason for all these suggestions that you switch application platforms/languages. Use what you're used to and you'll be more productive than having to spend time learning another language.
Monodevelop will give you a better experience of Mono development - its no Visual Studio, but its the best integrated IDE for mono you're gonna get on Ubuntu. Visual design of GTK forms and their controls is a big win (think Winforms but Linux style).
There are all sorts of tools available on Linux which allow you to create rich desktop applications. Bowline is an mvc framework which allows you to create desktop applications in ruby. Shoes is another framework which allows you to create desktop apps in ruby, and it is by far the easiest desktop app framework.
Start learning Qt. It's a framework based on C++. It's cross platform and also works fine in windows. Even it has an add-in for Visual Studio. It's usually used for KDE platform. For GNOME, you can learn GTK#.
In place of the Qt toolkit, GTK+ was chosen as the base of the GNOME desktop.
To develop apps specifically for Ubuntu, head to Ubuntu's developer website. Among other things you can:
They have a framework called Quickly.
There are good references in the other answers to Qt and GTK. An interesting source for guidelines is Gnome's developers website.
The framework/IDE to use will depend on the language you use. You can use MS Visual Studio Code on Ubuntu.
Please always cross reference CoreCLR (.NET Core runtime) with Mono. Furthermore, Please see this question collected related people and official opinion for CoreCLR and project Mono relationship after Microsoft open-sourced the .NET
I think one of good thing from Giants of IT Industry is Official Documentation.
The following command is copy from Getting Started with .NET Hello World Console Application in Ubuntu, except added narration and opinion at the last. Possibly refer the above link, if any of the command failed.
Prerequisite: Getting Started with .NET Hello World Console Application in Ubuntu. The instruction here assumes you're running Ubuntu 16.04 LTS.
In order to install .NET Core on Ubuntu or Linux Mint, you need to first set up the apt-get feed that hosts the package you need. So, setup apt repository with these commands.
sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ xenial main" > /etc/apt/sources.list.d/dotnetdev.list' sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893 sudo apt-get update
Install .NET Core SDK
sudo apt-get install dotnet-dev-1.0.1
Initialize a sample Hello World application
dotnet new console -o hwapp cd hwapp
Look the style, it is almost easier to getting started as Node.js, it is like the CLI tools for all new generation development tool like Spring Boot, Angular 2 etc, which you can just initialize an Hello World apps with command:
Run the app
dotnet restore dotnet run
The first command will restore the packages specified in the project file, and the second command will run the actual sample:
Finally, If you can go through slightly complicated, but if you required UI, I would think this will be easier than working with other C++/C# UI Library. You can choose to work with either .NET or Node.js to communicate with Electron's Web Browser provide UI Through HTML5, CSS.