38

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.

  • 4
    I would like to strongly urge you to consider learning another language like Python or C / C++. A large number (in fact, probably the majority) of applications in the repository are written in those languages. – Nathan Osman Jul 31 '10 at 5:50
  • 2
    Although it'll be pretty easy to pick up another language it's certainly not necessary or particularly desirable (other than exposure to other programming styles). – RAOF Aug 2 '10 at 0:49
  • If you want to use Linux day-to-day but want to develop C# without the compatibility issues of Mono, consider having a Windows virtual machine in VirtualBox. – Mark K Cowan Dec 5 '15 at 0:29
36

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.

  • 1
    +1 for answering the question. (Personally I hate mono, but oh well.) – Nathan Osman Jul 31 '10 at 5:48
  • 3
    your mono-project.com link points to the Quickly URL – McDowell Jul 31 '10 at 12:31
  • 1
    You can use the CLI (.NET) languages and standard libraries just fine - the versions of mono in recent Ubuntu releases support C# 3.0 and (most of) .NET 3.5. You'll want to learn the GTK# UI library, though. System.Winforms & WPF applications will not look native, and WPF is also not fully implemented. – RAOF Aug 2 '10 at 0:52
  • 1
    You'll want to pick up the MonoDevelop IDE. Aside from GUI development (*nix uses GTK# for drag-drop vs Winforms/WPF on windows) development in Ubuntu isn't a whole lot different than development in windows. – Evan Plaice Sep 16 '10 at 23:50
  • @Owais Lone - The links provided in answer are not working please try to renew them or add a substitute – Chinmaya B Apr 23 '15 at 15:24
12

Quickly can help you make cool apps using Python (pretty easy to learn and very popular) quickly!

  • 2
    +1 for suggesting Python/Quickly. I am a professional Python programmer, and I use Ubuntu on my computer. Ubuntu (and Linux in general) is great for doing Python development. – codeape Aug 4 '10 at 20:37
6

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.

See an introduction to Vala for C# programmers.

5

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).

2

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.

2

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

From Wikipedia,

In place of the Qt toolkit, GTK+ was chosen as the base of the GNOME desktop.

  • 1
    Qt works on GNOME – dv3500ea Apr 17 '11 at 11:07
  • @dv3500ea: You didn't get it. QT is used to develop KDE applications, that doesn't mean that applications built by QT won't run on GNOME. The same way GTK applications will run on KDE. But you can't use GTK to build KDE applications – user Apr 17 '11 at 11:11
  • 1
    It's not 'only for KDE platform' though. – dv3500ea Apr 17 '11 at 12:30
  • 1
    QT is not used to build KDE apps. QT is used to build GUIs. KDE uses QT to build it's apps. QT can be used to build GTK apps too. – Owais Lone Apr 17 '11 at 13:11
  • I think i am totally lost here. Marked as community wiki. Thanks for your support and patience. – user Apr 17 '11 at 16:59
2

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.

  • 1
    The bounty I've started is specifically about dotnet. The answer should very easy. You can even find the relevant updated piece from microsoft website – Anwar Mar 14 '17 at 15:01
  • @Anwar I got confused with the description. It was not clear for me if the idea was to do .Net or develop like with .Net. I answered to the second interpretation – Ramon Suarez Mar 16 '17 at 15:56
  • Please add more details to that part of the answer. Should include basic installation process – Anwar Mar 16 '17 at 19:58
  • @Anwar Sorry, I don't understand your comment. – Ramon Suarez Mar 16 '17 at 20:09
2
+50

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.

  1. 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
    
  2. Install .NET Core SDK

    sudo apt-get install dotnet-dev-1.0.1
    
  3. 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:

  4. 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:

  5. 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.

    Electron UI with .NET and Node.js

  • Upvoted. Your MS link has essentially everything I wanted to be included. Can you put the important parts of the link in to the answer? – Anwar Mar 17 '17 at 9:40
  • Sure, Thanks for the upvoted. Been getting treated really nice here, for second Microsoft Question. As long as Microsoft try to be neutral in their Open Source project, I think Unix should welcome them as well, as Friends as the same with Bash on Windows 10. – Edward Chan JW Mar 17 '17 at 12:52

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.